rtext 0.8.1 → 0.10.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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +120 -89
  3. data/Project.yaml +15 -0
  4. data/RText_Protocol +47 -4
  5. data/lib/rtext/context_builder.rb +49 -8
  6. data/lib/rtext/default_completer.rb +212 -163
  7. data/lib/rtext/default_service_provider.rb +3 -3
  8. data/lib/rtext/frontend/connector.rb +130 -56
  9. data/lib/rtext/instantiator.rb +11 -3
  10. data/lib/rtext/language.rb +5 -5
  11. data/lib/rtext/serializer.rb +3 -3
  12. data/lib/rtext/service.rb +281 -253
  13. data/lib/rtext/tokenizer.rb +2 -2
  14. metadata +33 -33
  15. data/Rakefile +0 -46
  16. data/test/completer_test.rb +0 -606
  17. data/test/context_builder_test.rb +0 -948
  18. data/test/frontend/context_test.rb +0 -301
  19. data/test/instantiator_test.rb +0 -1704
  20. data/test/integration/backend.out +0 -13
  21. data/test/integration/crash_on_request_editor.rb +0 -12
  22. data/test/integration/ecore_editor.rb +0 -50
  23. data/test/integration/frontend.log +0 -38203
  24. data/test/integration/model/invalid_encoding.invenc +0 -2
  25. data/test/integration/model/test.crash_on_request +0 -18
  26. data/test/integration/model/test.crashing_backend +0 -18
  27. data/test/integration/model/test.dont_open_socket +0 -0
  28. data/test/integration/model/test.invalid_cmd_line +0 -0
  29. data/test/integration/model/test.not_in_rtext +0 -0
  30. data/test/integration/model/test_large_with_errors.ect3 +0 -43523
  31. data/test/integration/model/test_metamodel.ect +0 -24
  32. data/test/integration/model/test_metamodel2.ect +0 -5
  33. data/test/integration/model/test_metamodel3.ect4 +0 -7
  34. data/test/integration/model/test_metamodel_error.ect2 +0 -3
  35. data/test/integration/model/test_metamodel_ok.ect2 +0 -18
  36. data/test/integration/test.rb +0 -966
  37. data/test/link_detector_test.rb +0 -287
  38. data/test/message_helper_test.rb +0 -118
  39. data/test/rtext_test.rb +0 -11
  40. data/test/serializer_test.rb +0 -1004
  41. data/test/tokenizer_test.rb +0 -173
@@ -1,301 +0,0 @@
1
- $:.unshift File.join(File.dirname(__FILE__),"..","..","lib")
2
-
3
- require 'test/unit'
4
- require 'rtext/frontend/context'
5
-
6
- class ContextTest < Test::Unit::TestCase
7
-
8
- def test_simple
9
- assert_context(
10
- %Q(
11
- A {
12
- B {
13
- |F bla
14
- ),
15
- %Q(
16
- A {
17
- B {
18
- C a1: v1, a2: "v2"
19
- D {
20
- E a1: 5
21
- }
22
- |F bla
23
- ))
24
- end
25
-
26
- def test_child_label
27
- assert_context(
28
- %Q(
29
- A {
30
- sub:
31
- B {
32
- F bla|
33
- ),
34
- %Q(
35
- A {
36
- sub:
37
- B {
38
- C a1: v1, a2: "v2"
39
- D {
40
- E a1: 5
41
- }
42
- F bla|
43
- ))
44
- end
45
-
46
- def test_child_label_array
47
- assert_context(
48
- %Q(
49
- A {
50
- sub: [
51
- B {
52
- F| bla
53
- ),
54
- %Q(
55
- A {
56
- sub: [
57
- B {
58
- C
59
- }
60
- B {
61
- C a1: v1, a2: "v2"
62
- D {
63
- E a1: 5
64
- }
65
- F| bla
66
- ))
67
- end
68
-
69
- def test_child_label_array2
70
- assert_context(
71
- %Q(
72
- A {
73
- B |
74
- ),
75
- %Q(
76
- A {
77
- sub: [
78
- ]
79
- B |
80
- ))
81
- end
82
-
83
- def test_child_label_array3
84
- assert_context(
85
- %Q(
86
- A {
87
- sub: [
88
- ] |
89
- ),
90
- %Q(
91
- A {
92
- sub: [
93
- ] |
94
- ))
95
- end
96
-
97
-
98
- def test_ignore_child_lables
99
- assert_context(
100
- %Q(
101
- A {
102
- B {
103
- F bl|a
104
- ),
105
- %Q(
106
- A {
107
- B {
108
- sub:
109
- C a1: v1, a2: "v2"
110
- sub2: [
111
- D {
112
- E a1: 5
113
- }
114
- ]
115
- F bl|a
116
- ))
117
- end
118
-
119
- def test_linebreak
120
- assert_context(
121
- %Q(
122
- A {
123
- B {
124
- C name, a1: v1, a2: "v2"|
125
- ),
126
- %Q(
127
- A {
128
- B {
129
- C name,
130
- a1: v1,
131
- a2: "v2"|
132
- ))
133
- end
134
-
135
- def test_linebreak_arg_array
136
- assert_context(
137
- %Q(
138
- A {
139
- B {
140
- C name, a1: [ v1, v2 ], a2: |5
141
- ),
142
- %Q(
143
- A {
144
- B {
145
- C name,
146
- a1: [
147
- v1,
148
- v2
149
- ],
150
- a2: |5
151
- ))
152
- end
153
-
154
- def test_linebreak_empty_last_line
155
- assert_context(
156
- %Q(
157
- A {
158
- B name, |
159
- ),
160
- %Q(
161
- A {
162
- B name,
163
- |
164
- ))
165
- end
166
-
167
- def test_linebreak_empty_last_line2
168
- assert_context(
169
- %Q(
170
- A {
171
- B name, |
172
- ),
173
- %Q(
174
- A {
175
- B name,
176
- |
177
- ))
178
- end
179
-
180
- def test_linebreak_empty_lines
181
- assert_context(
182
- %Q(
183
- A {
184
- B name, a1: |
185
- ),
186
- %Q(
187
- A {
188
- B name,
189
-
190
- a1: |
191
- ))
192
- end
193
-
194
- def test_linebreak_first_arg_array
195
- assert_context(
196
- %Q(
197
- A {
198
- B [ |
199
- ),
200
- %Q(
201
- A {
202
- B [
203
- |
204
- ))
205
- end
206
-
207
- def test_linebreak_first_arg_array2
208
- assert_context(
209
- %Q(
210
- A {
211
- B [ 2, |
212
- ),
213
- %Q(
214
- A {
215
- B [
216
- 2,
217
- |
218
- ))
219
- end
220
-
221
- def test_linebreak_first_arg_array3
222
- assert_context(
223
- %Q(
224
- A {
225
- B [ 2 ], |
226
- ),
227
- %Q(
228
- A {
229
- B [
230
- 2
231
- ], |
232
- ))
233
- end
234
-
235
- def test_linebreak_backslash
236
- assert_context(
237
- %Q(
238
- A {
239
- B arg: 1,|
240
- ),
241
- %Q(
242
- A {
243
- B \\
244
- arg: 1,|
245
- ))
246
- end
247
-
248
- def test_linebreak_whitespace_after_backslash
249
- assert_context(
250
- %Q(
251
- A {
252
- B arg: 1,|
253
- ),
254
- %Q(
255
- A {
256
- B \\
257
- arg: 1,|
258
- ))
259
- end
260
-
261
- def test_comment_annotation
262
- assert_context(
263
- %Q(
264
- A {
265
- B {
266
- |F bla
267
- ),
268
- %Q(
269
- A {
270
- # bla
271
- B {
272
- C a1: v1, a2: "v2"
273
- # bla
274
- D {
275
- E a1: 5
276
- }
277
- @ anno
278
- |F bla
279
- ))
280
- end
281
-
282
- def assert_context(expected, text)
283
- # remove first and last lines
284
- # these are empty because of the use of %Q
285
- exp_lines = expected.split("\n")[1..-2]
286
- exp_col = exp_lines.last.index("|")
287
- exp_lines.last.sub!("|","")
288
- in_lines = text.split("\n")[1..-2]
289
- in_col = in_lines.last.index("|")
290
- in_lines.last.sub!("|","")
291
- ctx = RText::Frontend::Context.new
292
- lines, out_col = ctx.extract(in_lines, in_col)
293
- assert_equal exp_lines, lines
294
- if exp_col && in_col
295
- assert_equal exp_col, out_col
296
- end
297
- end
298
-
299
- end
300
-
301
-