vedeu 0.7.4 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/docs/api.md +5 -1
  4. data/docs/borders.md +2 -26
  5. data/docs/dsl.md +4 -4
  6. data/docs/dsl_elements.md +100 -0
  7. data/docs/events/by_name/action.md +3 -0
  8. data/docs/events/by_name/cursor_hide.md +3 -0
  9. data/docs/events/by_name/cursor_reset.md +3 -0
  10. data/docs/events/by_name/cursor_show.md +3 -0
  11. data/docs/events/by_name/geometry_down.md +3 -0
  12. data/docs/events/by_name/geometry_left.md +3 -0
  13. data/docs/events/by_name/geometry_right.md +3 -0
  14. data/docs/events/by_name/geometry_up.md +3 -0
  15. data/docs/events/by_name/hide_view.md +3 -0
  16. data/docs/events/by_name/set_border_caption.md +13 -0
  17. data/docs/events/by_name/set_border_title.md +13 -0
  18. data/docs/events/by_name/show_view.md +3 -0
  19. data/docs/events/by_name/standalone.md +3 -0
  20. data/docs/events/by_name/toggle_view.md +3 -0
  21. data/docs/events/by_name/view_down.md +4 -0
  22. data/docs/events/by_name/view_left.md +4 -0
  23. data/docs/events/by_name/view_right.md +4 -0
  24. data/docs/events/by_name/view_up.md +4 -0
  25. data/examples/views/empty_template.rb +46 -0
  26. data/examples/views/expected/line.out +1 -0
  27. data/examples/views/expected/lines.out +1 -0
  28. data/examples/views/expected/lines_alignment.out +1 -0
  29. data/examples/views/line.rb +220 -0
  30. data/examples/views/lines.rb +281 -0
  31. data/examples/views/lines_alignment.rb +231 -0
  32. data/examples/views/lines_line_stream.rb +99 -0
  33. data/examples/views/lines_line_streams.rb +73 -0
  34. data/examples/views/lines_line_streams_stream.rb +83 -0
  35. data/examples/views/lines_line_streams_stream_stream.rb +53 -0
  36. data/examples/views/lines_streams.rb +50 -0
  37. data/examples/views/lines_streams_stream.rb +51 -0
  38. data/examples/views/runner.sh +27 -0
  39. data/lib/vedeu/all.rb +6 -2
  40. data/lib/vedeu/application/controller.rb +1 -1
  41. data/lib/vedeu/boolean.rb +35 -0
  42. data/lib/vedeu/borders/border.rb +3 -3
  43. data/lib/vedeu/borders/caption.rb +1 -1
  44. data/lib/vedeu/borders/dsl.rb +1 -20
  45. data/lib/vedeu/borders/title.rb +6 -8
  46. data/lib/vedeu/buffers/buffer.rb +2 -2
  47. data/lib/vedeu/buffers/refresh.rb +1 -1
  48. data/lib/vedeu/cells/border.rb +0 -11
  49. data/lib/vedeu/cells/empty.rb +4 -4
  50. data/lib/vedeu/{geometries/alignment → coercers}/alignment.rb +50 -53
  51. data/lib/vedeu/coercers/all.rb +16 -0
  52. data/lib/vedeu/coercers/colour.rb +78 -0
  53. data/lib/vedeu/coercers/colour_attributes.rb +122 -0
  54. data/lib/vedeu/coercers/horizontal_alignment.rb +28 -0
  55. data/lib/vedeu/coercers/vertical_alignment.rb +27 -0
  56. data/lib/vedeu/colours/all.rb +1 -0
  57. data/lib/vedeu/colours/background.rb +13 -2
  58. data/lib/vedeu/colours/colour.rb +16 -31
  59. data/lib/vedeu/colours/foreground.rb +13 -2
  60. data/lib/vedeu/colours/translator.rb +21 -59
  61. data/lib/vedeu/colours/validator.rb +84 -0
  62. data/lib/vedeu/common.rb +52 -0
  63. data/lib/vedeu/configuration/api.rb +4 -10
  64. data/lib/vedeu/configuration/configuration.rb +4 -4
  65. data/lib/vedeu/cursors/coordinate.rb +1 -1
  66. data/lib/vedeu/cursors/cursor.rb +1 -1
  67. data/lib/vedeu/cursors/dsl.rb +1 -28
  68. data/lib/vedeu/dsl/all.rb +7 -7
  69. data/lib/vedeu/dsl/attributes.rb +224 -0
  70. data/lib/vedeu/dsl/border.rb +127 -0
  71. data/lib/vedeu/dsl/cursors.rb +44 -0
  72. data/lib/vedeu/dsl/dsl.rb +9 -0
  73. data/lib/vedeu/dsl/elements.rb +335 -0
  74. data/lib/vedeu/dsl/geometry.rb +113 -0
  75. data/lib/vedeu/dsl/string/align.rb +127 -0
  76. data/lib/vedeu/dsl/string/all.rb +14 -0
  77. data/lib/vedeu/dsl/string/text.rb +107 -0
  78. data/lib/vedeu/dsl/string/truncate.rb +111 -0
  79. data/lib/vedeu/{output → dsl/string}/wordwrap.rb +10 -6
  80. data/lib/vedeu/dsl/view.rb +124 -248
  81. data/lib/vedeu/dsl/views.rb +244 -0
  82. data/lib/vedeu/editor/cursor.rb +1 -1
  83. data/lib/vedeu/editor/delete.rb +3 -1
  84. data/lib/vedeu/editor/insert.rb +22 -6
  85. data/lib/vedeu/editor/line.rb +15 -9
  86. data/lib/vedeu/editor/lines.rb +27 -18
  87. data/lib/vedeu/esc/actions.rb +73 -26
  88. data/lib/vedeu/esc/all.rb +2 -0
  89. data/lib/vedeu/esc/background.rb +219 -0
  90. data/lib/vedeu/esc/borders.rb +72 -26
  91. data/lib/vedeu/esc/colours.rb +26 -27
  92. data/lib/vedeu/esc/esc.rb +4 -4
  93. data/lib/vedeu/esc/foreground.rb +219 -0
  94. data/lib/vedeu/esc/mouse.rb +16 -13
  95. data/lib/vedeu/events/aliases.rb +2 -2
  96. data/lib/vedeu/events/event.rb +1 -1
  97. data/lib/vedeu/geometries/all.rb +0 -1
  98. data/lib/vedeu/geometries/area/dimension.rb +2 -2
  99. data/lib/vedeu/geometries/dsl/dsl.rb +3 -51
  100. data/lib/vedeu/geometries/dsl/validator.rb +4 -4
  101. data/lib/vedeu/geometries/geometry.rb +10 -10
  102. data/lib/vedeu/geometries/move.rb +4 -4
  103. data/lib/vedeu/groups/dsl.rb +1 -0
  104. data/lib/vedeu/groups/group.rb +1 -1
  105. data/lib/vedeu/input/all.rb +1 -0
  106. data/lib/vedeu/input/capture.rb +14 -10
  107. data/lib/vedeu/input/dsl.rb +20 -26
  108. data/lib/vedeu/input/key.rb +0 -6
  109. data/lib/vedeu/input/keymap.rb +4 -9
  110. data/lib/vedeu/input/keys.rb +13 -0
  111. data/lib/vedeu/input/mapper.rb +29 -14
  112. data/lib/vedeu/input/read.rb +4 -2
  113. data/lib/vedeu/interfaces/dsl.rb +23 -22
  114. data/lib/vedeu/interfaces/interface.rb +2 -2
  115. data/lib/vedeu/logging/debug.rb +33 -0
  116. data/lib/vedeu/logging/log.rb +42 -33
  117. data/lib/vedeu/menus/dsl.rb +7 -18
  118. data/lib/vedeu/menus/menu.rb +1 -1
  119. data/lib/vedeu/models/focus.rb +1 -1
  120. data/lib/vedeu/models/toggleable.rb +4 -4
  121. data/lib/vedeu/null/generic.rb +2 -2
  122. data/lib/vedeu/output/all.rb +0 -2
  123. data/lib/vedeu/output/compressor_cache.rb +1 -1
  124. data/lib/vedeu/output/output.rb +5 -20
  125. data/lib/vedeu/presentation/colour.rb +39 -7
  126. data/lib/vedeu/presentation/style.rb +25 -11
  127. data/lib/vedeu/renderers/html.rb +11 -11
  128. data/lib/vedeu/repositories/assemblage.rb +9 -0
  129. data/lib/vedeu/repositories/collection.rb +1 -0
  130. data/lib/vedeu/repositories/defaults.rb +4 -1
  131. data/lib/vedeu/repositories/model.rb +7 -37
  132. data/lib/vedeu/repositories/parent.rb +6 -6
  133. data/lib/vedeu/repositories/registerable.rb +16 -2
  134. data/lib/vedeu/repositories/repositories.rb +1 -1
  135. data/lib/vedeu/repositories/repository.rb +2 -12
  136. data/lib/vedeu/runtime/flags.rb +1 -1
  137. data/lib/vedeu/terminal/terminal.rb +7 -2
  138. data/lib/vedeu/version.rb +1 -1
  139. data/lib/vedeu/views/all.rb +4 -1
  140. data/lib/vedeu/views/char.rb +5 -4
  141. data/lib/vedeu/views/chars.rb +42 -0
  142. data/lib/vedeu/views/composition.rb +15 -30
  143. data/lib/vedeu/views/default_attributes.rb +74 -0
  144. data/lib/vedeu/views/html_char.rb +2 -2
  145. data/lib/vedeu/views/line.rb +27 -53
  146. data/lib/vedeu/views/lines.rb +31 -0
  147. data/lib/vedeu/views/stream.rb +31 -78
  148. data/lib/vedeu/views/streams.rb +42 -0
  149. data/lib/vedeu/views/value.rb +150 -0
  150. data/lib/vedeu/views/view.rb +32 -36
  151. data/lib/vedeu/views/{view_collection.rb → views.rb} +2 -2
  152. data/test/lib/vedeu/application/application_controller_test.rb +5 -0
  153. data/test/lib/vedeu/application/controller_test.rb +22 -28
  154. data/test/lib/vedeu/boolean_test.rb +57 -0
  155. data/test/lib/vedeu/borders/border_test.rb +130 -36
  156. data/test/lib/vedeu/borders/dsl_test.rb +63 -10
  157. data/test/lib/vedeu/borders/title_test.rb +16 -5
  158. data/test/lib/vedeu/buffers/buffer_test.rb +26 -10
  159. data/test/lib/vedeu/buffers/empty_test.rb +1 -1
  160. data/test/lib/vedeu/cells/border_test.rb +0 -6
  161. data/test/lib/vedeu/cells/clear_test.rb +2 -0
  162. data/test/lib/vedeu/cells/empty_test.rb +12 -2
  163. data/test/lib/vedeu/cells/escape_test.rb +7 -2
  164. data/test/lib/vedeu/{geometries/alignment → coercers}/alignment_test.rb +44 -19
  165. data/test/lib/vedeu/coercers/colour_attributes_test.rb +168 -0
  166. data/test/lib/vedeu/coercers/colour_test.rb +75 -0
  167. data/test/lib/vedeu/{geometries/alignment → coercers}/horizontal_alignment_test.rb +6 -6
  168. data/test/lib/vedeu/{geometries/alignment → coercers}/vertical_alignment_test.rb +6 -6
  169. data/test/lib/vedeu/colours/background_test.rb +17 -1
  170. data/test/lib/vedeu/colours/colour_test.rb +74 -2
  171. data/test/lib/vedeu/colours/foreground_test.rb +17 -1
  172. data/test/lib/vedeu/colours/repository_test.rb +1 -1
  173. data/test/lib/vedeu/colours/translator_test.rb +8 -1
  174. data/test/lib/vedeu/colours/validator_test.rb +60 -0
  175. data/test/lib/vedeu/common_test.rb +138 -0
  176. data/test/lib/vedeu/configuration/api_test.rb +96 -51
  177. data/test/lib/vedeu/cursors/coordinate_test.rb +58 -117
  178. data/test/lib/vedeu/cursors/cursor_test.rb +46 -17
  179. data/test/lib/vedeu/cursors/dsl_test.rb +19 -5
  180. data/test/lib/vedeu/distributed/client_test.rb +8 -3
  181. data/test/lib/vedeu/distributed/server_test.rb +8 -0
  182. data/test/lib/vedeu/distributed/test_application_test.rb +62 -19
  183. data/test/lib/vedeu/distributed/uri_test.rb +4 -2
  184. data/test/lib/vedeu/dsl/attributes_test.rb +212 -0
  185. data/test/lib/vedeu/dsl/border_test.rb +51 -0
  186. data/test/lib/vedeu/dsl/{lines_test.rb → cursors_test.rb} +2 -2
  187. data/test/lib/vedeu/dsl/dsl_test.rb +44 -0
  188. data/test/lib/vedeu/dsl/elements_test.rb +118 -0
  189. data/test/lib/vedeu/dsl/geometry_test.rb +35 -0
  190. data/test/lib/vedeu/dsl/presentation_test.rb +52 -11
  191. data/test/lib/vedeu/dsl/string/align_test.rb +147 -0
  192. data/test/lib/vedeu/dsl/string/text_test.rb +213 -0
  193. data/test/lib/vedeu/dsl/string/truncate_test.rb +97 -0
  194. data/test/lib/vedeu/{output → dsl/string}/wordwrap_test.rb +3 -3
  195. data/test/lib/vedeu/dsl/view_test.rb +30 -42
  196. data/test/lib/vedeu/dsl/views_test.rb +61 -0
  197. data/test/lib/vedeu/editor/cursor_test.rb +30 -12
  198. data/test/lib/vedeu/editor/document_test.rb +18 -10
  199. data/test/lib/vedeu/editor/line_test.rb +4 -1
  200. data/test/lib/vedeu/editor/lines_test.rb +11 -3
  201. data/test/lib/vedeu/esc/actions_test.rb +42 -4
  202. data/test/lib/vedeu/esc/background_test.rb +185 -0
  203. data/test/lib/vedeu/esc/borders_test.rb +37 -9
  204. data/test/lib/vedeu/esc/colours_test.rb +0 -59
  205. data/test/lib/vedeu/esc/foreground_test.rb +185 -0
  206. data/test/lib/vedeu/esc/mouse_test.rb +9 -4
  207. data/test/lib/vedeu/geometries/area/area_test.rb +34 -11
  208. data/test/lib/vedeu/geometries/dsl/dsl_test.rb +52 -61
  209. data/test/lib/vedeu/geometries/geometry_test.rb +62 -18
  210. data/test/lib/vedeu/geometries/position_test.rb +14 -7
  211. data/test/lib/vedeu/groups/dsl_test.rb +24 -15
  212. data/test/lib/vedeu/groups/group_test.rb +18 -8
  213. data/test/lib/vedeu/input/dsl_test.rb +33 -16
  214. data/test/lib/vedeu/input/key_test.rb +8 -1
  215. data/test/lib/vedeu/input/keymap_test.rb +4 -1
  216. data/test/lib/vedeu/input/keys_test.rb +16 -0
  217. data/test/lib/vedeu/interfaces/dsl_test.rb +24 -30
  218. data/test/lib/vedeu/interfaces/interface_test.rb +79 -24
  219. data/test/lib/vedeu/logging/ips_test.rb +10 -1
  220. data/test/lib/vedeu/menus/dsl_test.rb +24 -23
  221. data/test/lib/vedeu/menus/menu_test.rb +18 -8
  222. data/test/lib/vedeu/models/page_test.rb +5 -1
  223. data/test/lib/vedeu/models/row_test.rb +4 -0
  224. data/test/lib/vedeu/models/toggleable_test.rb +10 -6
  225. data/test/lib/vedeu/null/generic_test.rb +90 -1
  226. data/test/lib/vedeu/output/viewport_test.rb +11 -10
  227. data/test/lib/vedeu/plugins/plugin_test.rb +22 -9
  228. data/test/lib/vedeu/presentation/colour_test.rb +2 -1
  229. data/test/lib/vedeu/presentation/presentation_test.rb +13 -8
  230. data/test/lib/vedeu/presentation/style_test.rb +28 -13
  231. data/test/lib/vedeu/renderers/file_test.rb +4 -2
  232. data/test/lib/vedeu/renderers/options_test.rb +1 -1
  233. data/test/lib/vedeu/repositories/assemblage_test.rb +18 -0
  234. data/test/lib/vedeu/repositories/collection_test.rb +34 -10
  235. data/test/lib/vedeu/repositories/defaults_test.rb +6 -0
  236. data/test/lib/vedeu/repositories/model_test.rb +4 -13
  237. data/test/lib/vedeu/repositories/repository_test.rb +12 -5
  238. data/test/lib/vedeu/repositories/store_test.rb +9 -0
  239. data/test/lib/vedeu/runtime/flags_test.rb +6 -4
  240. data/test/lib/vedeu/runtime/launcher_test.rb +1 -1
  241. data/test/lib/vedeu/templating/helpers_test.rb +93 -65
  242. data/test/lib/vedeu/templating/view_template_test.rb +26 -26
  243. data/test/lib/vedeu/views/char_test.rb +36 -11
  244. data/test/lib/vedeu/views/chars_test.rb +71 -0
  245. data/test/lib/vedeu/views/composition_test.rb +17 -16
  246. data/test/lib/vedeu/views/default_attributes_test.rb +97 -0
  247. data/test/lib/vedeu/views/line_test.rb +20 -75
  248. data/test/lib/vedeu/views/lines_test.rb +47 -0
  249. data/test/lib/vedeu/views/stream_test.rb +38 -63
  250. data/test/lib/vedeu/views/streams_test.rb +9 -0
  251. data/test/lib/vedeu/views/value_test.rb +112 -0
  252. data/test/lib/vedeu/views/view_test.rb +67 -45
  253. data/test/lib/vedeu/views/views_test.rb +22 -0
  254. data/test/support/examples/material_colours_app.rb +2 -2
  255. data/test/support/helpers/model_test_class.rb +1 -0
  256. data/test/test_helper.rb +3 -1
  257. data/vedeu.gemspec +2 -2
  258. metadata +124 -58
  259. data/lib/vedeu/dsl/composition.rb +0 -150
  260. data/lib/vedeu/dsl/line.rb +0 -119
  261. data/lib/vedeu/dsl/lines.rb +0 -23
  262. data/lib/vedeu/dsl/shared.rb +0 -85
  263. data/lib/vedeu/dsl/stream.rb +0 -40
  264. data/lib/vedeu/dsl/streams.rb +0 -23
  265. data/lib/vedeu/dsl/text.rb +0 -98
  266. data/lib/vedeu/geometries/alignment/all.rb +0 -11
  267. data/lib/vedeu/geometries/alignment/horizontal_alignment.rb +0 -27
  268. data/lib/vedeu/geometries/alignment/vertical_alignment.rb +0 -27
  269. data/lib/vedeu/output/text.rb +0 -275
  270. data/test/lib/vedeu/dsl/composition_test.rb +0 -67
  271. data/test/lib/vedeu/dsl/line_test.rb +0 -85
  272. data/test/lib/vedeu/dsl/shared_test.rb +0 -66
  273. data/test/lib/vedeu/dsl/stream_test.rb +0 -30
  274. data/test/lib/vedeu/dsl/streams_test.rb +0 -13
  275. data/test/lib/vedeu/dsl/text_test.rb +0 -122
  276. data/test/lib/vedeu/output/text_test.rb +0 -156
  277. data/test/lib/vedeu/views/view_collection_test.rb +0 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0bb1e8c2812d147e206fcf64ca9368aeb8279173
4
- data.tar.gz: f33d3cde6d4bf100b6bde1a0c5ccc957ee6e21ae
3
+ metadata.gz: 8df3b0bf5973c1141fa43aec3158ed216111732e
4
+ data.tar.gz: 2e83e12eccb80ba91665e2b7968f7d51565c0a1f
5
5
  SHA512:
6
- metadata.gz: 664f3b8051ec7c810b0d1f06899136a021a0a32daadd17b8d0585387266547302ba4e9c9e78b1cd0854751a42d6be17b5424a46414c687666d54f1b9523537ff
7
- data.tar.gz: 3a6915c9877f6a1ad8487c09be66d5033ee3b948cbaa3ceac51b25ade8781d08976dc0cb6ba8d5c1bea3b3d93656e8f10052ce41c17a091aff9cc6dd0444b670
6
+ metadata.gz: 156f3f9c49999d8aa267e4724291edf9894670502e90807af499089e60827473d1daf349f0fd4f294fd103da0729dd9a388cbf081f2d31da60822c332558dcb8
7
+ data.tar.gz: 9aaa4e225c60ced5c75a7b2d64f5406e4c728000780e75af9c3eeeecf84329e298aaa233e0ef4512e17f1c87ea9b9a3bf43993a785f0461cd2b21f68032adac4
data/.rubocop.yml CHANGED
@@ -108,5 +108,8 @@ Metrics/MethodLength:
108
108
  CountComments: false
109
109
  Max: 30
110
110
 
111
+ Metrics/ModuleLength:
112
+ Max: 200
113
+
111
114
  Metrics/PerceivedComplexity:
112
115
  Max: 10
data/docs/api.md CHANGED
@@ -175,7 +175,7 @@ Repository method. Access registered background colours.
175
175
 
176
176
  ### Vedeu.border
177
177
 
178
- See {Vedeu::Borders::DSL.border}
178
+ See {Vedeu::DSL::Border::ClassMethods.border}
179
179
 
180
180
  ### Vedeu.borders
181
181
 
@@ -245,6 +245,10 @@ Repository method. Access registered cursors.
245
245
 
246
246
  Vedeu.cursors.all # [Array<Vedeu::Cursors::Cursor>]
247
247
 
248
+ ### Vedeu.debug
249
+
250
+ @todo Add more documentation.
251
+
248
252
  ### Vedeu.direct_write
249
253
 
250
254
  @todo Add more documentation.
data/docs/borders.md CHANGED
@@ -29,30 +29,6 @@ substituted for `Vedeu.focus` to use the interface currently in focus.
29
29
 
30
30
  {include:file:docs/events/by_name/refresh_border.md}
31
31
 
32
- ### `:_set_border_title_`
33
- This event changes the title of the border of the named view to the
34
- value given.
32
+ {include:file:docs/events/by_name/set_border_title.md}
35
33
 
36
- Vedeu.trigger(:_set_border_title_, name, title)
37
-
38
- - The title must be a string or nil.
39
- - If the title is an empty string or nil, then the title will not be
40
- shown, and an existing title will be removed.
41
- - If the name is nil, then the view currently focussed will be used.
42
- - When triggering this event, the border will automatically be
43
- refreshed, unless the view does not have a border, or the border is
44
- not enabled, or the top border is set not to be shown.
45
-
46
- ### `:_set_border_caption_`
47
- This event changes the caption of the border of the named view to the
48
- value given.
49
-
50
- Vedeu.trigger(:_set_border_caption_, name, caption)
51
-
52
- - The caption must be a string or nil.
53
- - If the caption is an empty string or nil, then the caption will not
54
- be shown, and an existing caption will be removed.
55
- - If the name is nil, then the view currently focussed will be used.
56
- - When triggering this event, the border will automatically be
57
- refreshed, unless the view does not have a border, or the border is
58
- not enabled, or the bottom border is set not to be shown.
34
+ {include:file:docs/events/by_name/set_border_caption.md}
data/docs/dsl.md CHANGED
@@ -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::DSL::Geometry::ClassMethods.geometry}
117
117
 
118
118
  ### Setting the interface dimensions
119
119
 
@@ -169,16 +169,16 @@ end
169
169
 
170
170
  ## Views
171
171
 
172
- {include:Vedeu::DSL::View}
172
+ {include:Vedeu::DSL::Views}
173
173
  {include:Vedeu::Interfaces::DSL.interface}
174
174
 
175
175
  ### Immediate rendering
176
176
 
177
- {include:Vedeu::DSL::View.renders}
177
+ {include:Vedeu::DSL::Views.renders}
178
178
 
179
179
  ### Deferred rendering
180
180
 
181
- {include:Vedeu::DSL::View.views}
181
+ {include:Vedeu::DSL::Views.views}
182
182
 
183
183
  ### Specifying view content
184
184
 
@@ -0,0 +1,100 @@
1
+ # view :name do
2
+ # lines do
3
+ # line 'view->lines->line', {}
4
+ #
5
+ # line do
6
+ # streams do
7
+ # stream 'view->lines->line->streams->stream', {}
8
+ # stream do
9
+ # text 'view->lines->line->streams->stream->text', {}
10
+ # end
11
+ # text 'view->lines->line->streams->text', {}
12
+ # end
13
+ #
14
+ # stream 'view->lines->line->stream', {}
15
+ #
16
+ # stream do
17
+ # text 'view->lines->line->stream->text', {}
18
+ # end
19
+ #
20
+ # text 'view->lines->line->text', {}
21
+ # end
22
+ #
23
+ # streams do
24
+ # stream 'view->lines->streams->stream', {}
25
+ # stream do
26
+ # text 'view->lines->streams->stream->text', {}
27
+ # end
28
+ # text 'view->lines->streams->text', {}
29
+ # end
30
+ #
31
+ # stream 'view->lines->stream', {}
32
+ # stream do
33
+ # text 'view->lines->stream->text', {}
34
+ # end
35
+ #
36
+ # text 'view->lines->text', {}
37
+ # end
38
+ #
39
+ # line 'view->line', {}
40
+ #
41
+ # line do
42
+ # streams do
43
+ # stream 'view->line->streams->stream', {}
44
+ # stream do
45
+ # text 'view->line->streams->stream->text', {}
46
+ # end
47
+ # text 'view->line->streams->text', {}
48
+ # end
49
+ #
50
+ # stream 'view->line->stream->stream', {}
51
+ # stream do
52
+ # text 'view->line->stream->text', {}
53
+ # end
54
+ #
55
+ # text 'view->line->text', {}
56
+ # end
57
+ #
58
+ # streams do
59
+ # stream 'view->streams->stream', {}
60
+ # stream do
61
+ # text 'view->streams->stream->text', {}
62
+ # end
63
+ # text 'view->streams->text', {}
64
+ # end
65
+ #
66
+ # stream 'view->stream', {}
67
+ #
68
+ # stream do
69
+ # text 'view->stream->text', {}
70
+ # end
71
+ #
72
+ # text 'view->text', {}
73
+ # end
74
+ #
75
+ # 'view->line'
76
+ # 'view->line->stream->stream'
77
+ # 'view->line->stream->text'
78
+ # 'view->line->streams->stream'
79
+ # 'view->line->streams->stream->text'
80
+ # 'view->line->streams->text'
81
+ # 'view->line->text'
82
+ # 'view->lines->line'
83
+ # 'view->lines->line->stream'
84
+ # 'view->lines->line->stream->text'
85
+ # 'view->lines->line->streams->stream'
86
+ # 'view->lines->line->streams->stream->text'
87
+ # 'view->lines->line->streams->text'
88
+ # 'view->lines->line->text'
89
+ # 'view->lines->stream'
90
+ # 'view->lines->stream->text'
91
+ # 'view->lines->streams->stream'
92
+ # 'view->lines->streams->stream->text'
93
+ # 'view->lines->streams->text'
94
+ # 'view->lines->text'
95
+ # 'view->stream'
96
+ # 'view->stream->text'
97
+ # 'view->streams->stream'
98
+ # 'view->streams->stream->text'
99
+ # 'view->streams->text'
100
+ # 'view->text'
@@ -0,0 +1,3 @@
1
+ ### `:_action_`
2
+
3
+ See {file:docs/events/by_name/goto.md}
@@ -0,0 +1,3 @@
1
+ ### `:_cursor_hide_`
2
+
3
+ See {file:docs/events/by_name/hide_cursor.md}
@@ -0,0 +1,3 @@
1
+ ### `:_cursor_reset_`
2
+
3
+ See {file:docs/events/by_name/cursor_origin.md}
@@ -0,0 +1,3 @@
1
+ ### `:_cursor_show_`
2
+
3
+ See {file:docs/events/by_name/show_cursor.md}
@@ -0,0 +1,3 @@
1
+ ### `:_geometry_down_`
2
+
3
+ See {file:docs/events/by_name/view_down.md}
@@ -0,0 +1,3 @@
1
+ ### `:_geometry_left_`
2
+
3
+ See {file:docs/events/by_name/view_left.md}
@@ -0,0 +1,3 @@
1
+ ### `:_geometry_right_`
2
+
3
+ See {file:docs/events/by_name/view_right.md}
@@ -0,0 +1,3 @@
1
+ ### `:_geometry_up_`
2
+
3
+ See {file:docs/events/by_name/view_up.md}
@@ -0,0 +1,3 @@
1
+ ### `:_hide_view_`
2
+
3
+ See {file:docs/events/by_name/hide_interface.md}
@@ -0,0 +1,13 @@
1
+ ### `:_set_border_caption_`
2
+ This event changes the caption of the border of the named view to the
3
+ value given.
4
+
5
+ Vedeu.trigger(:_set_border_caption_, name, caption)
6
+
7
+ - The caption must be a string or nil.
8
+ - If the caption is an empty string or nil, then the caption will not
9
+ be shown, and an existing caption will be removed.
10
+ - If the name is nil, then the view currently focussed will be used.
11
+ - When triggering this event, the border will automatically be
12
+ refreshed, unless the view does not have a border, or the border is
13
+ not enabled, or the bottom border is set not to be shown.
@@ -0,0 +1,13 @@
1
+ ### `:_set_border_title_`
2
+ This event changes the title of the border of the named view to the
3
+ value given.
4
+
5
+ Vedeu.trigger(:_set_border_title_, name, title)
6
+
7
+ - The title must be a string or nil.
8
+ - If the title is an empty string or nil, then the title will not be
9
+ shown, and an existing title will be removed.
10
+ - If the name is nil, then the view currently focussed will be used.
11
+ - When triggering this event, the border will automatically be
12
+ refreshed, unless the view does not have a border, or the border is
13
+ not enabled, or the top border is set not to be shown.
@@ -0,0 +1,3 @@
1
+ ### `:_show_view_`
2
+
3
+ See {file:docs/events/by_name/show_interface.md}
@@ -0,0 +1,3 @@
1
+ ### `:_standalone_`
2
+
3
+ Triggered by Vedeu when the `standalone` configuration option is used.
@@ -0,0 +1,3 @@
1
+ ### `:_toggle_view_`
2
+
3
+ See {file:docs/events/by_name/toggle_interface.md}
@@ -0,0 +1,4 @@
1
+ ### `:_view_down_`
2
+
3
+ Vedeu.trigger(:_view_down_, name)
4
+ Vedeu.trigger(:_view_down_, Vedeu.focus)
@@ -0,0 +1,4 @@
1
+ ### `:_view_left_`
2
+
3
+ Vedeu.trigger(:_view_left_, name)
4
+ Vedeu.trigger(:_view_left_, Vedeu.focus)
@@ -0,0 +1,4 @@
1
+ ### `:_view_right_`
2
+
3
+ Vedeu.trigger(:_view_right_, name)
4
+ Vedeu.trigger(:_view_right_, Vedeu.focus)
@@ -0,0 +1,4 @@
1
+ ### `:_view_up_`
2
+
3
+ Vedeu.trigger(:_view_up_, name)
4
+ Vedeu.trigger(:_view_up_, Vedeu.focus)
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'vedeu'
5
+
6
+ class DSLApp
7
+
8
+ Vedeu.bind(:_initialize_) { Vedeu.trigger(:_refresh_) }
9
+
10
+ Vedeu.configure do
11
+ debug!
12
+ log '/tmp/vedeu_views_dsl.log'
13
+ run_once!
14
+ standalone!
15
+ end
16
+
17
+ Vedeu.interface :test1_interface do
18
+ border do
19
+ title 'Test 1'
20
+ end
21
+ geometry do
22
+ x 4
23
+ y 3
24
+ xn 34
25
+ yn 8
26
+ end
27
+ end
28
+
29
+ Vedeu.keymap '_global_' do
30
+ key('q') { Vedeu.exit }
31
+ end
32
+
33
+ Vedeu.render do
34
+ view(:test1_interface) do
35
+ lines do
36
+ end
37
+ end
38
+ end
39
+
40
+ def self.start(argv = ARGV)
41
+ Vedeu::Launcher.execute!(argv)
42
+ end
43
+
44
+ end # EditorApp
45
+
46
+ DSLApp.start
@@ -0,0 +1 @@
1
+ (0l(B(0q(B Test 1 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0l(B(0q(B Test 2 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->line                   (0x(B(0x(Bview->line 1                 (0x(B(0x(B                             (0x(B(0x(Bview->line 2                 (0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(BA single line within a view.   Multiple lines within a view.                                 (No block)                                                                                   (0l(B(0q(B Test 3 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0l(B(0q(B Test 4 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->text 1                 (0x(B(0x(Bview->line 1->text           (0x(B(0x(Bview->text 2                 (0x(B(0x(Bview->line 2->text 1view->lin(0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(BMultiple `text` keywords withinLine `block` syntax.           a view are treated as separate A single `text` is just a      lines.                         stream within a line, whilst                                  multiple `text`s are treated                                  as separate streams.           (0l(B(0q(B Test 5 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->lines->line 1          (0x(B(0x(Bview->lines->line 2          (0x(B(0x(Bview->lines->line 3          (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(BMultiple `line` keywords withina `lines` block view are       treated as separate lines.                                                                   
@@ -0,0 +1 @@
1
+ (0l(B(0q(B Test 1 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0l(B(0q(B Test 2 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->stream                 (0x(B(0x(Bview->stream 1               (0x(B(0x(B                             (0x(B(0x(Bview->stream 2               (0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(BA single stream within a view. Multiple streams within a view.                               (No line/lines block)                                                                        (0l(B(0q(B Test 3 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0l(B(0q(B Test 4 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->line 1->stream         (0x(B(0x(Bview->lines->line->stream    (0x(B(0x(Bview->line 2->stream 1view->l(0x(B(0x(Bview->stream 2->text 1view->s(0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(BMultiple `stream` keywords     A single stream within a line  within a line (block) are      block, is treated as a single  treated as separate streams.   line. Multiple `stream` entries                               are treated as separate streams                               in the line.                   (0l(B(0q(B Test 5 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0l(B(0q(B Test 6 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->stream->text 1view->str(0x(B(0x(Bv->l->ss->stream 1v->l->ss->s(0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0x(B                             (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(BMultiple `text` keywords withinMultiple `stream` within a     a `stream` block view are      `streams` within a `line`.     treated as separate streams.                                                                                                                                                              
@@ -0,0 +1 @@
1
+ (0l(B(0q(B Test 1 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0l(B(0q(B Test 2 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->line (align: :left)     (0x(B(0x(Bview->left                    (0x(B(0x(B view->line (align: :center)  (0x(B(0x(B         view->center         (0x(B(0x(B view->line (align: :centre)  (0x(B(0x(B         view->centre         (0x(B(0x(B    view->line (align: :right)(0x(B(0x(B                   view->right(0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B`:align` option on the `line`                                   DSL method. (no width or name                                   set)                                                                                                                                                                                            (0l(B(0q(B Test 3 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0l(B(0q(B Test 4 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(Bview->lines->left 1           (0x(B(0x(B          view->lines->right 1(0x(B(0x(Bview->lines->left 2           (0x(B(0x(B          view->lines->right 2(0x(B(0x(B                              (0x(B(0x(B                              (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B                                                                                                                                                                                                                                                                                                                                (0l(B(0q(B Test 5 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0l(B(0q(B Test 6 (0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0k(B(0x(B    view->lines->centre 1     (0x(B(0x(Bv->l->left         v->l->right(0x(B(0x(B    view->lines->centre 2     (0x(B(0x(B         v->l->centre         (0x(B(0x(B                              (0x(B(0x(B                              (0x(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B(0m(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0q(B(0j(B                                                                                                                                                                                                                                                                                                                                
@@ -0,0 +1,220 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'vedeu'
5
+
6
+ class DSLApp
7
+
8
+ Vedeu.bind(:_initialize_) { Vedeu.trigger(:_refresh_) }
9
+
10
+ Vedeu.configure do
11
+ debug!
12
+ log '/tmp/vedeu_views_dsl.log'
13
+ renderers Vedeu::Renderers::File.new(filename: '/tmp/line.out')
14
+ run_once!
15
+ standalone!
16
+ end
17
+
18
+ Vedeu.interface :test1_interface do
19
+ border do
20
+ title 'Test 1'
21
+ end
22
+ geometry do
23
+ x 4
24
+ y 3
25
+ xn 34
26
+ yn 8
27
+ end
28
+ end
29
+
30
+ Vedeu.interface :help1_interface do
31
+ geometry do
32
+ x use(:test1_interface).x
33
+ y use(:test1_interface).south
34
+ xn use(:test1_interface).xn
35
+ yn use(:test1_interface).south(3)
36
+ end
37
+ end
38
+
39
+ Vedeu.interface :test2_interface do
40
+ border do
41
+ title 'Test 2'
42
+ end
43
+ geometry do
44
+ x use(:test1_interface).east(6)
45
+ y use(:test1_interface).y
46
+ width use(:test1_interface).width
47
+ height use(:test1_interface).height
48
+ end
49
+ end
50
+
51
+ Vedeu.interface :help2_interface do
52
+ geometry do
53
+ x use(:test2_interface).x
54
+ y use(:test2_interface).south
55
+ xn use(:test2_interface).xn
56
+ yn use(:test2_interface).south(3)
57
+ end
58
+ end
59
+
60
+ Vedeu.interface :test3_interface do
61
+ border do
62
+ title 'Test 3'
63
+ end
64
+ geometry do
65
+ x use(:help1_interface).x
66
+ y use(:help1_interface).south
67
+ xn use(:help1_interface).xn
68
+ yn use(:help1_interface).south(5)
69
+ end
70
+ end
71
+
72
+ Vedeu.interface :help3_interface do
73
+ geometry do
74
+ x use(:test3_interface).x
75
+ y use(:test3_interface).south
76
+ xn use(:test3_interface).xn
77
+ yn use(:test3_interface).south(5)
78
+ end
79
+ end
80
+
81
+ Vedeu.interface :test4_interface do
82
+ border do
83
+ title 'Test 4'
84
+ end
85
+ geometry do
86
+ x use(:help2_interface).x
87
+ y use(:help2_interface).south
88
+ xn use(:help2_interface).xn
89
+ yn use(:help2_interface).south(5)
90
+ end
91
+ end
92
+
93
+ Vedeu.interface :help4_interface do
94
+ geometry do
95
+ x use(:test4_interface).x
96
+ y use(:test4_interface).south
97
+ xn use(:test4_interface).xn
98
+ yn use(:test4_interface).south(5)
99
+ end
100
+ end
101
+
102
+ Vedeu.interface :test5_interface do
103
+ border do
104
+ title 'Test 5'
105
+ end
106
+ geometry do
107
+ x use(:help1_interface).x
108
+ y use(:help3_interface).south
109
+ xn use(:help1_interface).xn
110
+ yn use(:help3_interface).south(5)
111
+ end
112
+ end
113
+
114
+ Vedeu.interface :help5_interface do
115
+ geometry do
116
+ x use(:test5_interface).x
117
+ y use(:test5_interface).south
118
+ xn use(:test5_interface).xn
119
+ yn use(:test5_interface).south(5)
120
+ end
121
+ end
122
+
123
+ Vedeu.render do
124
+ view(:test1_interface) do
125
+ background '#440000'
126
+ line 'view->line', { foreground: '#ff0000' }
127
+ end
128
+
129
+ view(:help1_interface) do
130
+ line 'A single line within a view.'
131
+ end
132
+
133
+ view(:test2_interface) do
134
+ line 'view->line 1', { foreground: '#ff7f00' }
135
+ line 'view->line 2', { foreground: '#ffff00' }
136
+ end
137
+
138
+ view(:help2_interface) do
139
+ line 'Multiple lines within a view.'
140
+ line '(No block)'
141
+ end
142
+
143
+ view(:test3_interface) do
144
+ text 'view->text 1', { foreground: '#00ff00' }
145
+ text 'view->text 2', { foreground: '#007fff' }
146
+ end
147
+
148
+ view(:help3_interface) do
149
+ text 'Multiple `text` keywords within'
150
+ text 'a view are treated as separate'
151
+ text 'lines.'
152
+ end
153
+
154
+ view(:test4_interface) do
155
+ line do
156
+ text 'view->line 1->text', { foreground: '#5500cc' }
157
+ end
158
+ line do
159
+ text 'view->line 2->text 1', { foreground: '#ff00ff' }
160
+ text 'view->line 2->text 2', { foreground: '#ffffff' }
161
+ end
162
+ end
163
+
164
+ view(:help4_interface) do
165
+ line do
166
+ foreground '#ff0000'
167
+ text 'Line `block` syntax.'
168
+ end
169
+ line do
170
+ background '#ffff00'
171
+ foreground '#000000'
172
+ text 'A single '
173
+ text '`text` ', { background: '#000000', foreground: '#ffff00' }
174
+ text 'is just a'
175
+ end
176
+ line do
177
+ colour background: '#ff0000'
178
+ text 'stream within a line, whilst'
179
+ end
180
+ line do
181
+ colour foreground: '#006600'
182
+ text 'multiple '
183
+ text '`text`', { foreground: '#ff0000' }
184
+ text 's are treated'
185
+ end
186
+ line do
187
+ colour background: '#000066', foreground: '#ff9999'
188
+ text 'as separate streams.'
189
+ end
190
+ line do
191
+ foreground '#ff0000'
192
+ text 'Line `block` syntax.', { background: '#00ff00' }
193
+ end
194
+ end
195
+
196
+ view(:test5_interface) do
197
+ lines do
198
+ background '#000066'
199
+ line 'view->lines->line 1', { foreground: '#00ff00' }
200
+ line 'view->lines->line 2', { background: '#000000', foreground: '#007fff' }
201
+ line 'view->lines->line 3', { foreground: '#55aa00' }
202
+ end
203
+ end
204
+
205
+ view(:help5_interface) do
206
+ lines do
207
+ line 'Multiple `line` keywords within'
208
+ line 'a `lines` block view are'
209
+ line 'treated as separate lines.'
210
+ end
211
+ end
212
+ end
213
+
214
+ def self.start(argv = ARGV)
215
+ Vedeu::Launcher.execute!(argv)
216
+ end
217
+
218
+ end # EditorApp
219
+
220
+ DSLApp.start