vedeu 0.6.68 → 0.6.69

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +34 -66
  3. data/docs/api.md +3 -3
  4. data/docs/borders.md +3 -3
  5. data/docs/cursors.md +109 -10
  6. data/docs/debugging.md +2 -2
  7. data/docs/dsl.md +2 -2
  8. data/docs/events/application.md +1 -1
  9. data/docs/events/document.md +9 -9
  10. data/docs/events/drb.md +7 -7
  11. data/docs/events/focus.md +3 -3
  12. data/docs/events/menu.md +10 -10
  13. data/docs/events/movement.md +5 -3
  14. data/docs/events/refresh.md +5 -5
  15. data/docs/events/system.md +8 -8
  16. data/docs/events/view.md +4 -4
  17. data/docs/events/visibility.md +10 -32
  18. data/docs/input.md +1 -1
  19. data/lib/vedeu/colours/background.rb +4 -9
  20. data/lib/vedeu/colours/foreground.rb +4 -9
  21. data/lib/vedeu/colours/translator.rb +8 -3
  22. data/lib/vedeu/cursors/all.rb +1 -0
  23. data/lib/vedeu/{geometries → cursors}/coordinate.rb +4 -4
  24. data/lib/vedeu/cursors/cursor.rb +10 -10
  25. data/lib/vedeu/cursors/dsl.rb +3 -27
  26. data/lib/vedeu/cursors/reposition.rb +4 -4
  27. data/lib/vedeu/esc/esc.rb +13 -17
  28. data/lib/vedeu/geometries/{alignment.rb → alignment/alignment.rb} +0 -0
  29. data/lib/vedeu/geometries/alignment/all.rb +11 -0
  30. data/lib/vedeu/geometries/{horizontal_alignment.rb → alignment/horizontal_alignment.rb} +0 -0
  31. data/lib/vedeu/geometries/{vertical_alignment.rb → alignment/vertical_alignment.rb} +0 -0
  32. data/lib/vedeu/geometries/all.rb +4 -12
  33. data/lib/vedeu/geometries/area/all.rb +12 -0
  34. data/lib/vedeu/geometries/{area.rb → area/area.rb} +0 -0
  35. data/lib/vedeu/geometries/{dimension.rb → area/dimension.rb} +0 -0
  36. data/lib/vedeu/geometries/{x_dimension.rb → area/x_dimension.rb} +0 -0
  37. data/lib/vedeu/geometries/{y_dimension.rb → area/y_dimension.rb} +0 -0
  38. data/lib/vedeu/geometries/dsl/all.rb +11 -0
  39. data/lib/vedeu/geometries/{dsl.rb → dsl/dsl.rb} +0 -0
  40. data/lib/vedeu/geometries/{grid.rb → dsl/grid.rb} +0 -0
  41. data/lib/vedeu/geometries/{validator.rb → dsl/validator.rb} +0 -0
  42. data/lib/vedeu/input/raw.rb +5 -0
  43. data/lib/vedeu/input/read.rb +2 -2
  44. data/lib/vedeu/output/compressor.rb +1 -1
  45. data/lib/vedeu/output/compressor_cache.rb +7 -0
  46. data/lib/vedeu/terminal/terminal.rb +4 -4
  47. data/lib/vedeu/version.rb +1 -1
  48. data/test/lib/vedeu/{geometries/coordinate.rb → cursors/coordinate_test.rb} +4 -4
  49. data/test/lib/vedeu/esc/esc_test.rb +18 -0
  50. data/test/lib/vedeu/geometries/{alignment_test.rb → alignment/alignment_test.rb} +0 -0
  51. data/test/lib/vedeu/geometries/{horizontal_alignment_test.rb → alignment/horizontal_alignment_test.rb} +0 -0
  52. data/test/lib/vedeu/geometries/{vertical_alignment_test.rb → alignment/vertical_alignment_test.rb} +0 -0
  53. data/test/lib/vedeu/geometries/{area_test.rb → area/area_test.rb} +0 -0
  54. data/test/lib/vedeu/geometries/{dimension_test.rb → area/dimension_test.rb} +0 -0
  55. data/test/lib/vedeu/geometries/{x_dimension_test.rb → area/x_dimension_test.rb} +0 -0
  56. data/test/lib/vedeu/geometries/{y_dimension_test.rb → area/y_dimension_test.rb} +0 -0
  57. data/test/lib/vedeu/geometries/{dsl_test.rb → dsl/dsl_test.rb} +0 -0
  58. data/test/lib/vedeu/geometries/{grid_test.rb → dsl/grid_test.rb} +0 -0
  59. data/test/lib/vedeu/geometries/{validator_test.rb → dsl/validator_test.rb} +0 -0
  60. data/vedeu.gemspec +2 -2
  61. metadata +42 -39
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 850ce1133d6018ed381e4ddbb4ee9bdff12e4bbb
4
- data.tar.gz: bb06f89c8568103c095e448fab6a2fc3eef3dfb8
3
+ metadata.gz: 0a0211b4a6e94bd7926f99ff108861471ea89615
4
+ data.tar.gz: e083d41fa583f3ef357d1814c17fe7bd36357e46
5
5
  SHA512:
6
- metadata.gz: 2cdb5a8f19a21d62dd57faead71646070464ac3072e3945d08b534a642be3ad52004e53bf8af4614c870cf18f332888595805e280f6863b8a18c36d8f07bc347
7
- data.tar.gz: e045c49ba37aaf20676442a648f8e5c84bc99181835c3fd09f00b349aa21dd15926a5a76216cf6618bdf1af4e51dc60ffc3c422ab32cc869cec4281986a30e59
6
+ metadata.gz: f8c146bd737d56df2eda77f1b8d762b80da4f2321240df7d29d4a48904276b7932d5bf11b59e773822e7456c895c3ed84277075bd4d1ed6ad1b7fb03acb333f7
7
+ data.tar.gz: d46ceb3d84bc7782854ca90aebc88bef0b9c397a120b5c23514e6827f860bea645f41fe751b61160acd0d9409dc7cfa0244dc163185374e339b32207eaa32629
data/.rubocop.yml CHANGED
@@ -1,9 +1,7 @@
1
1
  inherit_from:
2
2
  - config/rubocop_enabled.yml
3
3
 
4
- # Common configuration.
5
4
  AllCops:
6
- # Include gemspec and Rakefile
7
5
  Include:
8
6
  - '**/*.gemspec'
9
7
  - '**/*.podspec'
@@ -25,20 +23,9 @@ AllCops:
25
23
  - 'examples/**/*'
26
24
  - 'test/**/*'
27
25
  - 'vendor/**/*'
28
- # By default, the rails cops are not run. Override in project or home
29
- # directory .rubocop.yml files, or by giving the -R/--rails option.
30
26
  RunRailsCops: false
31
- # Cop names are not displayed in offense messages by default. Change behavior
32
- # by overriding DisplayCopNames, or by giving the -D/--display-cop-names
33
- # option.
34
27
  DisplayCopNames: true
35
- # Style guide URLs are not displayed in offense messages by default. Change
36
- # behavior by overriding DisplayStyleGuide, or by giving the
37
- # -S/--display-style-guide option.
38
28
  DisplayStyleGuide: true
39
- # Additional cops that do not reference a style guide rule may be enabled by
40
- # default. Change behavior by overriding StyleGuideCopsOnly, or by giving
41
- # the --only-guide-cops option.
42
29
  StyleGuideCopsOnly: false
43
30
 
44
31
  Style/EmptyLinesAroundBlockBody:
@@ -50,34 +37,23 @@ Style/EmptyLinesAroundClassBody:
50
37
  Style/EmptyLinesAroundModuleBody:
51
38
  EnforcedStyle: empty_lines
52
39
 
53
- # Built-in global variables are allowed by default.
54
- Style/GlobalVars:
55
- AllowedVariables: [$LIB_DIR]
56
-
57
- # `MinBodyLength` defines the number of lines of the a body of an if / unless
58
- # needs to have to trigger this cop
59
- Style/GuardClause:
60
- MinBodyLength: 1
61
-
62
- Style/IfUnlessModifier:
63
- MaxLineLength: 80
64
-
65
- Style/IndentationWidth:
66
- Width: 2
67
-
68
- # Checks the indentation of the first key in a hash literal.
69
- Style/IndentHash:
70
- # The value `special_inside_parentheses` means that hash literals with braces
71
- # that have their opening brace on the same line as a surrounding opening
72
- # round parenthesis, shall have their first key indented relative to the
73
- # first position inside the parenthesis.
74
- # The value `consistent` means that the indentation of the first key shall
75
- # always be relative to the first position of the line where the opening
76
- # brace is.
77
- EnforcedStyle: special_inside_parentheses
78
- SupportedStyles:
79
- - special_inside_parentheses
80
- - consistent
40
+ # Style/GlobalVars:
41
+ # AllowedVariables: [$LIB_DIR]
42
+
43
+ # Style/GuardClause:
44
+ # MinBodyLength: 1
45
+
46
+ # Style/IfUnlessModifier:
47
+ # MaxLineLength: 80
48
+
49
+ # Style/IndentationWidth:
50
+ # Width: 2
51
+
52
+ # Style/IndentHash:
53
+ # EnforcedStyle: special_inside_parentheses
54
+ # SupportedStyles:
55
+ # - special_inside_parentheses
56
+ # - consistent
81
57
 
82
58
  Style/MultilineOperationIndentation:
83
59
  Enabled: false
@@ -85,17 +61,12 @@ Style/MultilineOperationIndentation:
85
61
  Style/ModuleFunction:
86
62
  Enabled: false
87
63
 
88
- Style/Next:
89
- # With `always` all conditions at the end of an iteration needs to be
90
- # replaced by next - with `skip_modifier_ifs` the modifier if like this one
91
- # are ignored: [1, 2].each { |a| return 'yes' if a == 1 }
92
- EnforcedStyle: skip_modifier_ifs
93
- # `MinBodyLength` defines the number of lines of the a body of an if / unless
94
- # needs to have to trigger this cop
95
- MinBodyLength: 3
96
- SupportedStyles:
97
- - skip_modifier_ifs
98
- - always
64
+ # Style/Next:
65
+ # EnforcedStyle: skip_modifier_ifs
66
+ # MinBodyLength: 3
67
+ # SupportedStyles:
68
+ # - skip_modifier_ifs
69
+ # - always
99
70
 
100
71
  Style/RescueModifier:
101
72
  Enabled: false
@@ -103,17 +74,17 @@ Style/RescueModifier:
103
74
  Style/SpaceAroundOperators:
104
75
  Enabled: false
105
76
 
106
- Style/SpaceAroundEqualsInParameterDefault:
107
- EnforcedStyle: space
77
+ # Style/SpaceAroundEqualsInParameterDefault:
78
+ # EnforcedStyle: space
108
79
 
109
- Style/SpaceBeforeBlockBraces:
110
- EnforcedStyle: space
80
+ # Style/SpaceBeforeBlockBraces:
81
+ # EnforcedStyle: space
111
82
 
112
- Style/SpaceInsideBlockBraces:
113
- EnforcedStyle: space
83
+ # Style/SpaceInsideBlockBraces:
84
+ # EnforcedStyle: space
114
85
 
115
- Style/SpaceInsideHashLiteralBraces:
116
- EnforcedStyle: space
86
+ # Style/SpaceInsideHashLiteralBraces:
87
+ # EnforcedStyle: space
117
88
 
118
89
  Style/TrailingBlankLines:
119
90
  EnforcedStyle: final_newline
@@ -122,19 +93,16 @@ Style/TrailingComma:
122
93
  EnforcedStyleForMultiline: comma
123
94
 
124
95
  Metrics/AbcSize:
125
- # The ABC size is a calculated magnitude, so this number can be a Fixnum or
126
- # a Float.
127
96
  Max: 25
128
97
 
129
- Metrics/BlockNesting:
130
- Max: 3
98
+ # Metrics/BlockNesting:
99
+ # Max: 3
131
100
 
132
- # Avoid complex methods.
133
101
  Metrics/CyclomaticComplexity:
134
102
  Max: 12
135
103
 
136
104
  Metrics/MethodLength:
137
- CountComments: false # count full line comments?
105
+ CountComments: false
138
106
  Max: 30
139
107
 
140
108
  Metrics/PerceivedComplexity:
data/docs/api.md CHANGED
@@ -343,7 +343,7 @@ Repository method. Access registered groups.
343
343
 
344
344
  ### Vedeu.hide_cursor
345
345
 
346
- @todo Add more documentation.
346
+ See {file:docs/cursors.md#vedeuhide_cursor__}
347
347
 
348
348
  ### Vedeu.hide_group
349
349
 
@@ -506,7 +506,7 @@ Repository method. Access registered renderers.
506
506
 
507
507
  ### Vedeu.show_cursor
508
508
 
509
- @todo Add more documentation.
509
+ See {file:docs/cursors.md#vedeushow_cursor__}
510
510
 
511
511
  ### Vedeu.show_group
512
512
 
@@ -522,7 +522,7 @@ Repository method. Access registered renderers.
522
522
 
523
523
  ### Vedeu.toggle_cursor
524
524
 
525
- @todo Add more documentation.
525
+ See {file:docs/cursors.md#vedeutoggle_cursor__}
526
526
 
527
527
  ### Vedeu.toggle_group
528
528
 
data/docs/borders.md CHANGED
@@ -27,13 +27,13 @@ The interfaces of Vedeu can each have their own border.
27
27
  Note: 'name' is a Symbol unless mentioned otherwise, and can be
28
28
  substituted for `Vedeu.focus` to use the interface currently in focus.
29
29
 
30
- ### `:\_refresh_border\_`
30
+ ### `:_refresh_border_`
31
31
  This event refreshes the border of the named view, unless the view
32
32
  does not have a border, or the border is not enabled.
33
33
 
34
34
  Vedeu.trigger(:_refresh_border_, name)
35
35
 
36
- ### `:\_set_border_title\_`
36
+ ### `:_set_border_title_`
37
37
  This event changes the title of the border of the named view to the
38
38
  value given.
39
39
 
@@ -47,7 +47,7 @@ value given.
47
47
  refreshed, unless the view does not have a border, or the border is
48
48
  not enabled, or the top border is set not to be shown.
49
49
 
50
- ### `:\_set_border_caption\_`
50
+ ### `:_set_border_caption_`
51
51
  This event changes the caption of the border of the named view to the
52
52
  value given.
53
53
 
data/docs/cursors.md CHANGED
@@ -22,19 +22,79 @@ conveniently after the interface itself.
22
22
  the content of the interface can change position if needed.
23
23
 
24
24
 
25
- ## Cursor Events
25
+ ## Cursor API, DSL & Events
26
26
 
27
27
  Note: 'name' is a Symbol unless mentioned otherwise, and can be
28
28
  substituted for 'Vedeu.focus' to use the interface currently in focus.
29
29
 
30
- ### `:\_cursor_origin\_`
30
+ Cursors are automatically created for each interface defined. You can
31
+ specify at the interface, or view level whether a cursor is shown or
32
+ hidden.
33
+
34
+ ### Interface Cursors
35
+ The initial state of visible (true) or invisible (false) for a cursor
36
+ can be specified when defining the interface.
37
+
38
+ Each example within each interface definition is equivalent.
39
+
40
+ #### Showing the cursor
41
+
42
+ Vedeu.interface :my_interface do
43
+ cursor true
44
+
45
+ # or...
46
+
47
+ cursor!
48
+
49
+ # ...
50
+ end
51
+
52
+ #### Hiding the cursor
53
+
54
+ Vedeu.interface :my_interface do
55
+ cursor false
56
+
57
+ # or...
58
+
59
+ no_cursor!
60
+
61
+ # ...
62
+ end
63
+
64
+ ### View Cursors
65
+ The view cursor is the same as the interface cursor with the same
66
+ name. However, view cursors can be made visible or invisible when the
67
+ view is rendered, overriding the initial or current state.
68
+
69
+ Vedeu.views do
70
+ view :my_interface do
71
+ cursor true # => Specify the visibility of the cursor when
72
+ # the view is rendered.
73
+
74
+ # see other examples for other settings for cursor
75
+ end
76
+ end
77
+
78
+ Vedeu.renders do
79
+ view :my_interface do
80
+ cursor false # => Specify the visibility of the cursor when
81
+ # the view is rendered.
82
+
83
+ # see other examples for other settings for cursor
84
+ end
85
+ end
86
+
87
+
88
+ ## Cursor Positioning Events
89
+
90
+ ### `:_cursor_origin_`
31
91
  This event moves the cursor to the interface origin; the top left
32
92
  corner of the named interface.
33
93
 
34
94
  Vedeu.trigger(:_cursor_origin_, name)
35
95
  Vedeu.trigger(:_cursor_reset_, name)
36
96
 
37
- ### `:\_cursor_position\_`
97
+ ### `:_cursor_position_`
38
98
  To ascertain the position of a cursor in a named interface, use the
39
99
  following event (substituting 'name' for the interface name):
40
100
 
@@ -45,7 +105,7 @@ name, you can check which interface is in focus:
45
105
 
46
106
  Vedeu.trigger(:_cursor_position_, Vedeu.focus)
47
107
 
48
- ### `:\_cursor_reposition\_`
108
+ ### `:_cursor_reposition_`
49
109
  Moves the cursor to a relative position inside the interface.
50
110
 
51
111
  Vedeu.trigger(:_cursor_reposition_, name, y, x)
@@ -56,31 +116,31 @@ Adjusts the position of the named cursor or view in the direction
56
116
  specified. If 'name' is unknown, using 'Vedeu.focus' will use the
57
117
  interface currently in focus.
58
118
 
59
- ### `:\_cursor_left\_`
119
+ ### `:_cursor_left_`
60
120
  Moves the cursor one character left, unless the left-most position
61
121
  for the view or terminal is reached.
62
122
 
63
123
  Vedeu.trigger(:_cursor_left_, name)
64
124
  Vedeu.trigger(:_cursor_left_, Vedeu.focus)
65
125
 
66
- ### `:\_cursor_down\_`
126
+ ### `:_cursor_down_`
67
127
 
68
128
  Vedeu.trigger(:_cursor_down_, name)
69
129
  Vedeu.trigger(:_cursor_down_, Vedeu.focus)
70
130
 
71
- ### `:\_cursor_up\_`
131
+ ### `:_cursor_up_`
72
132
  Moves the cursor one line up, unless the top-most position for the
73
133
  view or terminal is reached.
74
134
 
75
135
  Vedeu.trigger(:_cursor_up_, name)
76
136
  Vedeu.trigger(:_cursor_up_, Vedeu.focus)
77
137
 
78
- ### `:\_cursor_right\_`
138
+ ### `:_cursor_right_`
79
139
 
80
140
  Vedeu.trigger(:_cursor_right_, name)
81
141
  Vedeu.trigger(:_cursor_right_, Vedeu.focus)
82
142
 
83
- ### `:\_cursor_top\_`
143
+ ### `:_cursor_top_`
84
144
  Moves the cursor to the top-most position for the view or terminal.
85
145
  If the view contains content, then this event will effectively scroll
86
146
  to the first line of the content.
@@ -88,10 +148,49 @@ to the first line of the content.
88
148
  Vedeu.trigger(:_cursor_top_, name)
89
149
  Vedeu.trigger(:_cursor_top_, Vedeu.focus)
90
150
 
91
- ### `:\_cursor_bottom\_`
151
+ ### `:_cursor_bottom_`
92
152
  Moves the cursor to the bottom-most position for the view or terminal.
93
153
  If the view contains content, then this event will effectively scroll
94
154
  to the last line of the content.
95
155
 
96
156
  Vedeu.trigger(:_cursor_bottom_, name)
97
157
  Vedeu.trigger(:_cursor_bottom_, Vedeu.focus)
158
+
159
+ ## Cursor Visibility API & Events
160
+
161
+ Change the visibility of the cursor via an event or API call. These
162
+ can be called at any time and affect the cursor of the named
163
+ interface, or when a name is not given, the interface currently in
164
+ focus.
165
+
166
+ ### Vedeu.hide_cursor / `:_cursor_hide_`
167
+ Hide the cursor.
168
+
169
+ Vedeu.trigger(:_hide_cursor_, name)
170
+ Vedeu.trigger(:_hide_cursor_, Vedeu.focus)
171
+ Vedeu.trigger(:_cursor_hide_, name)
172
+ Vedeu.trigger(:_cursor_hide_, Vedeu.focus)
173
+
174
+ Vedeu.hide_cursor(name)
175
+ Vedeu.hide_cursor(Vedeu.focus)
176
+
177
+ ### Vedeu.show_cursor / `:_show_cursor_`
178
+ Show the cursor.
179
+
180
+ Vedeu.trigger(:_show_cursor_, name)
181
+ Vedeu.trigger(:_show_cursor_, Vedeu.focus)
182
+ Vedeu.trigger(:_cursor_show_, name)
183
+ Vedeu.trigger(:_cursor_show_, Vedeu.focus)
184
+
185
+ Vedeu.show_cursor(name)
186
+ Vedeu.show_cursor(Vedeu.focus)
187
+
188
+ ### Vedeu.toggle_cursor / `:_toggle_cursor_`
189
+ Toggle the visibility of the cursor. If hidden, then show. If shown,
190
+ then hide.
191
+
192
+ Vedeu.trigger(:_toggle_cursor_, name)
193
+ Vedeu.trigger(:_toggle_cursor_, Vedeu.focus)
194
+
195
+ Vedeu.toggle_cursor(name)
196
+ Vedeu.toggle_cursor(Vedeu.focus)
data/docs/debugging.md CHANGED
@@ -8,8 +8,8 @@ and hopefully be dropped into a Pry debuggging session:
8
8
 
9
9
  Vedeu::Terminal.cooked_mode!
10
10
  Vedeu::Terminal.open do
11
- mouse_off = Vedeu::EscapeSequences::Esc.string('mouse_x10_off')
12
- show_cursor = Vedeu::EscapeSequences::Esc.string('show_cursor')
11
+ mouse_off = Vedeu::EscapeSequences::Esc.mouse_x10_off
12
+ show_cursor = Vedeu::EscapeSequences::Esc.show_cursor
13
13
  Vedeu::Terminal.output(mouse_off + show_cursor)
14
14
 
15
15
  require 'pry'
data/docs/dsl.md CHANGED
@@ -80,7 +80,7 @@ end
80
80
 
81
81
  ### Creating a new named border
82
82
 
83
- {include:Vedeu::Borders::DSL#border}
83
+ {include:Vedeu::Borders::DSL.border}
84
84
 
85
85
  ### Setting a title for the border
86
86
 
@@ -113,7 +113,7 @@ end
113
113
 
114
114
  ### Creating a new named geometry
115
115
 
116
- {include:Vedeu::Geometries::DSL#geometry}
116
+ {include:Vedeu::Geometries::DSL.geometry}
117
117
 
118
118
  ### Setting the interface dimensions
119
119
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Application Events
4
4
 
5
- ### `:\_goto\_`
5
+ ### `:_goto_`
6
6
  Call a client application controller's action with parameters.
7
7
 
8
8
  Vedeu.trigger(:_goto_,
@@ -4,29 +4,29 @@
4
4
 
5
5
  Note: 'name' is a Symbol unless mentioned otherwise.
6
6
 
7
- ### `:\_editor_execute\_`
7
+ ### `:_editor_execute_`
8
8
 
9
9
  Vedeu.trigger(:_editor_execute_, name)
10
10
 
11
- ### `:\_editor_delete_character\_`
11
+ ### `:_editor_delete_character_`
12
12
  This event attempts to delete the character in the named
13
13
  document at the current virtual cursor position.
14
14
 
15
15
  Vedeu.trigger(:_editor_delete_character_, name)
16
16
 
17
- ### `:\_editor_delete_line\_`
17
+ ### `:_editor_delete_line_`
18
18
  This event attempts to delete the line in the named document
19
19
  at the current virtual cursor position.
20
20
 
21
21
  Vedeu.trigger(:_editor_delete_line_, name)
22
22
 
23
- ### `:\_editor_down\_`
23
+ ### `:_editor_down_`
24
24
  This event attempts to move the virtual cursor down by one
25
25
  line in the named document.
26
26
 
27
27
  Vedeu.trigger(:_editor_down_, name)
28
28
 
29
- ### `:\_editor_insert_character\_`
29
+ ### `:_editor_insert_character_`
30
30
  This event attempts to insert the given character in the named
31
31
  document at the current virtual cursor position.
32
32
 
@@ -34,25 +34,25 @@ Note: 'character' is a string.
34
34
 
35
35
  Vedeu.trigger(:_editor_insert_character_, name, character)
36
36
 
37
- ### `:\_editor_insert_line\_`
37
+ ### `:_editor_insert_line_`
38
38
  This event attempts to insert a new line in the named document
39
39
  at the current virtual cursor position.
40
40
 
41
41
  Vedeu.trigger(:_editor_insert_line_, name)
42
42
 
43
- ### `:\_editor_left\_`
43
+ ### `:_editor_left_`
44
44
  This event attempts to move the virtual cursor left by one
45
45
  character in the named document.
46
46
 
47
47
  Vedeu.trigger(:_editor_left_, name)
48
48
 
49
- ### `:\_editor_right\_`
49
+ ### `:_editor_right_`
50
50
  This event attempts to move the virtual cursor right by one
51
51
  character in the named document.
52
52
 
53
53
  Vedeu.trigger(:_editor_right_, name)
54
54
 
55
- ### `:\_editor_up\_`
55
+ ### `:_editor_up_`
56
56
  This event attempts to move the virtual cursor up by one line
57
57
  in the named document.
58
58