abl-tmlanguage 1.3.28 → 1.3.30

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 (142) hide show
  1. package/README.md +8 -9
  2. package/abl.tmLanguage.json +60 -79
  3. package/package.json +5 -2
  4. package/.github/workflows/ci.yml +0 -36
  5. package/CHANGELOG.md +0 -139
  6. package/abl-functions.txt +0 -548
  7. package/abl-keywords.txt +0 -416
  8. package/abl-methods.txt +0 -1053
  9. package/index.mjs +0 -508
  10. package/spec/analyze-suspend-resume/analyze-suspend-resume.spec.js +0 -17
  11. package/spec/annotations/annotation.spec.js +0 -366
  12. package/spec/array-extent/issue#5.spec.js +0 -26
  13. package/spec/blocks/block-labels.spec.js +0 -201
  14. package/spec/blocks/block-options.spec.js +0 -174
  15. package/spec/blocks/finally-blocks.spec.js +0 -90
  16. package/spec/blocks/on-quit.spec.js +0 -59
  17. package/spec/comments/comment-in-block-statement.spec.js +0 -153
  18. package/spec/comments/comment-in-for-each.spec.js +0 -105
  19. package/spec/comments/comment-in-function-args.spec.js +0 -88
  20. package/spec/comments/spacious-comment.spec.js +0 -73
  21. package/spec/comments/vscode-abl-issue#127.spec.js +0 -165
  22. package/spec/create-widgets/create-window.spec.js +0 -224
  23. package/spec/db-table-and-field/buffer-copy.spec.js +0 -246
  24. package/spec/db-table-and-field/create-alias.spec.js +0 -131
  25. package/spec/db-table-and-field/create-record.spec.js +0 -75
  26. package/spec/db-table-and-field/double-colon-access.spec.js +0 -154
  27. package/spec/db-table-and-field/field-in-function.spec.js +0 -58
  28. package/spec/db-table-and-field/fields-except.spec.js +0 -68
  29. package/spec/db-table-and-field/find-record.spec.js +0 -158
  30. package/spec/db-table-and-field/foreach.spec.js +0 -588
  31. package/spec/db-table-and-field/issue#88.spec.js +0 -121
  32. package/spec/db-table-and-field/new-record.spec.js +0 -250
  33. package/spec/db-table-and-field/query-get.spec.js +0 -137
  34. package/spec/define/define-browse.spec.js +0 -454
  35. package/spec/define/define-button.spec.js +0 -233
  36. package/spec/define/define-query.spec.js +0 -144
  37. package/spec/define/define-rectangle.spec.js +0 -47
  38. package/spec/define-buffer/create-buffer.spec.js +0 -212
  39. package/spec/define-buffer/simple-single-line.spec.js +0 -155
  40. package/spec/define-enum/type-name.spec.js +0 -200
  41. package/spec/define-event/simple-single-line.spec.js +0 -61
  42. package/spec/define-frame/issue#173.spec.js +0 -580
  43. package/spec/define-parameter/simple-single-line.spec.js +0 -228
  44. package/spec/define-property/property-getter.spec.js +0 -70
  45. package/spec/define-stream/simple-single-line.spec.js +0 -42
  46. package/spec/define-temp-table/define-dataset.spec.js +0 -217
  47. package/spec/define-temp-table/define-temp-table.spec.js +0 -605
  48. package/spec/define-variable/define-like.spec.js +0 -78
  49. package/spec/define-variable/extent.spec.js +0 -778
  50. package/spec/define-variable/initial.spec.js +0 -126
  51. package/spec/define-variable/issue#6.spec.js +0 -280
  52. package/spec/define-variable/issue#9.spec.js +0 -45
  53. package/spec/define-variable/simple-single-line.spec.js +0 -181
  54. package/spec/define-variable/single-line-with-a-comment-at-the-end.spec.js +0 -62
  55. package/spec/define-variable/single-line-with-a-space-and-a-comment-at-the-end.spec.js +0 -65
  56. package/spec/define-variable/tm-issue#2.spec.js +0 -25
  57. package/spec/define-variable/var-statement.spec.js +0 -467
  58. package/spec/do/do-blocks.spec.js +0 -289
  59. package/spec/do/issue#3.spec.js +0 -83
  60. package/spec/do/stop-after.spec.js +0 -79
  61. package/spec/for-each/for-each.spec.js +0 -111
  62. package/spec/for-each/issue#321.spec.js +0 -116
  63. package/spec/for-each/vscode-abl.issue#166.spec.js +0 -83
  64. package/spec/function-call/can-find.spec.js +0 -239
  65. package/spec/function-call/include-in-argument.spec.js +0 -120
  66. package/spec/function-call/misc-abl-functions.spec.js +0 -59
  67. package/spec/function-call/nested-functions.spec.js +0 -245
  68. package/spec/function-call/pass-table.spec.js +0 -116
  69. package/spec/function-call/set-size.spec.js +0 -56
  70. package/spec/function-call/udf-calls.spec.js +0 -50
  71. package/spec/function-call/vscode-abl-issue#19.spec.js +0 -129
  72. package/spec/function-definition/vscode-abl-issue#166.spec.js +0 -446
  73. package/spec/global-scoped-define/global-define.spec.js +0 -64
  74. package/spec/global-scoped-define/scoped-define-with-procedure-keyword.spec.js +0 -70
  75. package/spec/global-scoped-define/undefine.spec.js +0 -44
  76. package/spec/include/abl-tmlanguage-issues#5.spec.js +0 -40
  77. package/spec/include/include-file-name.spec.js +0 -267
  78. package/spec/include/unnamed-arguments.spec.js +0 -38
  79. package/spec/include/vscode-abl-issue#45.spec.js +0 -20
  80. package/spec/include/vscode-abl-issue#77.spec.js +0 -128
  81. package/spec/include/vscode-abl-issue#80.spec.js +0 -50
  82. package/spec/input-output/input-from.spec.js +0 -504
  83. package/spec/input-output/output-to.spec.js +0 -456
  84. package/spec/method-attribute-property-call/abl-method-attribute-call.spec.js +0 -98
  85. package/spec/method-attribute-property-call/connected-method.spec.js +0 -29
  86. package/spec/method-attribute-property-call/datset-table-attribute-method-call.spec.js +0 -53
  87. package/spec/method-attribute-property-call/get-set-method-name.spec.js +0 -140
  88. package/spec/method-attribute-property-call/method-call.spec.js +0 -268
  89. package/spec/method-attribute-property-call/nested-property-call.spec.js +0 -18
  90. package/spec/method-attribute-property-call/unqualified-method-call.spec.js +0 -41
  91. package/spec/method-definition/constructor.spec.js +0 -174
  92. package/spec/method-definition/method.spec.js +0 -541
  93. package/spec/misc-statements/array-for.spec.js +0 -21
  94. package/spec/misc-statements/case-statement.spec.js +0 -96
  95. package/spec/misc-statements/class-in-var-name.spec.js +0 -204
  96. package/spec/misc-statements/copy-lob.spec.js +0 -144
  97. package/spec/misc-statements/def-in-name.spec.js +0 -20
  98. package/spec/misc-statements/delete-objects.spec.js +0 -65
  99. package/spec/misc-statements/do-in-name.spec.js +0 -259
  100. package/spec/misc-statements/event-subscribe.spec.js +0 -308
  101. package/spec/misc-statements/export-delimiter.spec.js +0 -37
  102. package/spec/misc-statements/guid.spec.js +0 -97
  103. package/spec/misc-statements/if-then.spec.js +0 -454
  104. package/spec/misc-statements/issue#173.spec.js +0 -99
  105. package/spec/misc-statements/message-statement.spec.js +0 -21
  106. package/spec/misc-statements/record-buffer-functions.spec.js +0 -73
  107. package/spec/misc-statements/release.spec.js +0 -41
  108. package/spec/misc-statements/return-statement.spec.js +0 -64
  109. package/spec/misc-statements/skip-statement-and-fuction.spec.js +0 -35
  110. package/spec/misc-statements/system-handles.spec.js +0 -122
  111. package/spec/numbers/scientific-notation.spec.js +0 -212
  112. package/spec/operators/operators.spec.js +0 -149
  113. package/spec/operators/safe-navigation-operator.spec.js +0 -246
  114. package/spec/preprocesors/issue166.spec.js +0 -91
  115. package/spec/preprocesors/preprocessor-functions.spec.js +0 -77
  116. package/spec/preprocesors/proparse-preprocessor.spec.js +0 -90
  117. package/spec/procedure-definition/empty-proc.spec.js +0 -134
  118. package/spec/procedure-definition/trigger-procedure.spec.js +0 -132
  119. package/spec/procedure-definition/vscode-abl-issue#22.spec.js +0 -46
  120. package/spec/procedure-definition/vscode-abl-issue#26.spec.js +0 -31
  121. package/spec/procedure-definition/vscode-abl-issue#325.spec.js +0 -88
  122. package/spec/procedure-definition/vscode-abl-issue#62.spec.js +0 -39
  123. package/spec/run-statement/run-statement.spec.js +0 -868
  124. package/spec/shared.js +0 -104
  125. package/spec/strings/translation-attribute.spec.js +0 -52
  126. package/spec/strings/vscode-abl-issue#11.spec.js +0 -56
  127. package/spec/strings/vscode-abl-issue#28.spec.js +0 -31
  128. package/spec/type-name/argument.spec.js +0 -206
  129. package/spec/type-name/cast.spec.js +0 -163
  130. package/spec/type-name/define-class.spec.js +0 -555
  131. package/spec/type-name/define-enum.spec.js +0 -44
  132. package/spec/type-name/define-interface.spec.js +0 -159
  133. package/spec/type-name/define-property.spec.js +0 -301
  134. package/spec/type-name/define-temp-table.spec.js +0 -434
  135. package/spec/type-name/define-type-spec.js +0 -435
  136. package/spec/type-name/define-variable-property.spec.js +0 -264
  137. package/spec/type-name/define-variable.spec.js +0 -386
  138. package/spec/type-name/get-class.spec.js +0 -91
  139. package/spec/type-name/new.spec.js +0 -185
  140. package/spec/type-name/parameter-as.spec.js +0 -978
  141. package/spec/type-name/type-name.spec.js +0 -880
  142. package/spec/type-name/using.spec.js +0 -160
@@ -1,868 +0,0 @@
1
- const { assert, expect } = require('chai');
2
- const shared = require('../shared.js');
3
-
4
- describe('', () => {
5
- let statement =
6
- `run foo.p.`;
7
-
8
- let expectedTokens = [
9
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
10
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
11
- { "startIndex": 4, "endIndex": 9, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'foo.p'
12
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
13
- ];
14
-
15
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
16
- })
17
-
18
- describe('', () => {
19
- let statement =
20
- ` run destry-object.`;
21
-
22
- let expectedTokens = [
23
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
24
- { "startIndex": 3, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
25
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
26
- { "startIndex": 7, "endIndex": 20, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'destry-object'
27
- { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
28
- ];
29
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
30
- })
31
-
32
- describe('', () => {
33
- let statement =
34
- ` run a/b\\c\\program.p (today).`;
35
-
36
- let expectedTokens = [
37
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
38
- { "startIndex": 3, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
39
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
40
- { "startIndex": 7, "endIndex": 22, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'a/b\c\program.p'
41
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl"] }, // ' '
42
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
43
- { "startIndex": 24, "endIndex": 29, "scopes": ["source.abl", "meta.function.arguments.abl", "support.function.abl"] }, // 'today'
44
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
45
- { "startIndex": 30, "endIndex": 31, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
46
- ];
47
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
48
- })
49
-
50
- describe('', () => {
51
- let statement =
52
- ` run value(cPriogram).`;
53
-
54
- let expectedTokens = [
55
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
56
- { "startIndex": 3, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
57
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
58
- { "startIndex": 7, "endIndex": 12, "scopes": ["source.abl", "support.function.abl"] }, // 'value'
59
- { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
60
- { "startIndex": 13, "endIndex": 22, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'cPriogram'
61
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
62
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
63
- ];
64
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
65
- })
66
-
67
- describe('', () => {
68
- let statement = ` run a\\program.p.`;
69
-
70
- let expectedTokens = [
71
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
72
- { "startIndex": 3, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
73
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
74
- { "startIndex": 7, "endIndex": 18, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'a\program.p'
75
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
76
- ];
77
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
78
- })
79
-
80
- describe('', () => {
81
- let statement = ` run a/b/c/program.p.`;
82
-
83
- let expectedTokens = [
84
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
85
- { "startIndex": 3, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
86
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
87
- { "startIndex": 7, "endIndex": 22, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'a/b/c/program.p'
88
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
89
- ];
90
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
91
- })
92
-
93
- describe('', () => {
94
- let statement =
95
- ` run "a/program.p".`;
96
-
97
- let expectedTokens = [
98
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
99
- { "startIndex": 3, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
100
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
101
- { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
102
- { "startIndex": 8, "endIndex": 19, "scopes": ["source.abl", "string.quoted.double.abl"] }, // 'a/program.p'
103
- { "startIndex": 19, "endIndex": 20, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] }, // '"'
104
- { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
105
- ];
106
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
107
- })
108
-
109
- describe('', () => {
110
- let statement =
111
- ` run a/program.p (input 0x4, output cData).`;
112
-
113
- let expectedTokens = [
114
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
115
- { "startIndex": 3, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
116
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
117
- { "startIndex": 7, "endIndex": 18, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'a/program.p'
118
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl"] }, // ' '
119
- { "startIndex": 19, "endIndex": 20, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
120
- { "startIndex": 20, "endIndex": 25, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'input'
121
- { "startIndex": 25, "endIndex": 26, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
122
- { "startIndex": 26, "endIndex": 29, "scopes": ["source.abl", "meta.function.arguments.abl", "constant.numeric.source.abl"] }, // '0x4'
123
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] }, // ','
124
- { "startIndex": 30, "endIndex": 31, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
125
- { "startIndex": 31, "endIndex": 37, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'output'
126
- { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
127
- { "startIndex": 38, "endIndex": 43, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'cData'
128
- { "startIndex": 43, "endIndex": 44, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
129
- { "startIndex": 44, "endIndex": 45, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
130
- ];
131
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
132
- })
133
-
134
- describe('', () => {
135
- let statement =
136
- `run a/program.p on hAppServer single-run (input 0x4, output cData).`;
137
-
138
- let expectedTokens = [
139
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
140
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
141
- { "startIndex": 4, "endIndex": 15, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'a/program.p'
142
- { "startIndex": 15, "endIndex": 16, "scopes": ["source.abl"] }, // ' '
143
- { "startIndex": 16, "endIndex": 18, "scopes": ["source.abl", "keyword.other.abl"] }, // 'on'
144
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl"] }, // ' '
145
- { "startIndex": 19, "endIndex": 29, "scopes": ["source.abl", "variable.other.abl"] }, // 'hAppServer'
146
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl"] }, // ' '
147
- { "startIndex": 30, "endIndex": 40, "scopes": ["source.abl", "keyword.other.abl"] }, // 'single-run'
148
- { "startIndex": 40, "endIndex": 41, "scopes": ["source.abl"] }, // ' '
149
- { "startIndex": 41, "endIndex": 42, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
150
- { "startIndex": 42, "endIndex": 47, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'input'
151
- { "startIndex": 47, "endIndex": 48, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
152
- { "startIndex": 48, "endIndex": 51, "scopes": ["source.abl", "meta.function.arguments.abl", "constant.numeric.source.abl"] }, // '0x4'
153
- { "startIndex": 51, "endIndex": 52, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] }, // ','
154
- { "startIndex": 52, "endIndex": 53, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
155
- { "startIndex": 53, "endIndex": 59, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'output'
156
- { "startIndex": 59, "endIndex": 60, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
157
- { "startIndex": 60, "endIndex": 65, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'cData'
158
- { "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
159
- { "startIndex": 66, "endIndex": 67, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
160
- ];
161
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
162
- })
163
-
164
- describe('', () => {
165
- let statement = `run $SYSSYS\\P\\TestServerSockAppSrv.p(31000).`;
166
-
167
- let expectedTokens = [
168
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
169
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
170
- { "startIndex": 4, "endIndex": 36, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // '$SYSSYS\P\TestServerSockAppSrv.p'
171
- { "startIndex": 36, "endIndex": 37, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
172
- { "startIndex": 37, "endIndex": 42, "scopes": ["source.abl", "meta.function.arguments.abl", "constant.numeric.source.abl"] }, // '31000'
173
- { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
174
- { "startIndex": 43, "endIndex": 44, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
175
- ];
176
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
177
- })
178
-
179
- describe('', () => {
180
- let statement = `run $SYSSYS/P/TestServerSockAppSrv.p(31000).`;
181
-
182
- let expectedTokens = [
183
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
184
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
185
- { "startIndex": 4, "endIndex": 36, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // '$SYSSYS/P/TestServerSockAppSrv.p'
186
- { "startIndex": 36, "endIndex": 37, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
187
- { "startIndex": 37, "endIndex": 42, "scopes": ["source.abl", "meta.function.arguments.abl", "constant.numeric.source.abl"] }, // '31000'
188
- { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
189
- { "startIndex": 43, "endIndex": 44, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
190
- ];
191
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
192
- })
193
-
194
- describe('', () => {
195
- let statement = `run "$SYSSYS/P/TestServerSockAppSrv.p"(31000).`;
196
-
197
- let expectedTokens = [
198
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
199
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
200
- { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
201
- { "startIndex": 5, "endIndex": 37, "scopes": ["source.abl", "string.quoted.double.abl"] }, // '$SYSSYS/P/TestServerSockAppSrv.p'
202
- { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] }, // '"'
203
- { "startIndex": 38, "endIndex": 39, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
204
- { "startIndex": 39, "endIndex": 44, "scopes": ["source.abl", "meta.function.arguments.abl", "constant.numeric.source.abl"] }, // '31000'
205
- { "startIndex": 44, "endIndex": 45, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
206
- { "startIndex": 45, "endIndex": 46, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
207
- ];
208
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
209
- })
210
-
211
- describe('', () => {
212
- let statement = `run '$SYSSYS/P/TestServerSockAppSrv.p' (31000).`;
213
-
214
- let expectedTokens = [
215
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
216
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
217
- { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl", "string.quoted.single.abl", "punctuation.definition.string.begin.abl"] }, // '''
218
- { "startIndex": 5, "endIndex": 37, "scopes": ["source.abl", "string.quoted.single.abl"] }, // '$SYSSYS/P/TestServerSockAppSrv.p'
219
- { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl", "string.quoted.single.abl", "punctuation.definition.string.end.abl"] }, // '''
220
- { "startIndex": 38, "endIndex": 39, "scopes": ["source.abl"] }, // ' '
221
- { "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
222
- { "startIndex": 40, "endIndex": 45, "scopes": ["source.abl", "meta.function.arguments.abl", "constant.numeric.source.abl"] }, // '31000'
223
- { "startIndex": 45, "endIndex": 46, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
224
- { "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
225
- ];
226
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
227
- })
228
-
229
- describe('', () => {
230
- let statement = `run value(SYSSYS) (31000).`;
231
-
232
- let expectedTokens = [
233
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
234
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
235
- { "startIndex": 4, "endIndex": 9, "scopes": ["source.abl", "support.function.abl"] }, // 'value'
236
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
237
- { "startIndex": 10, "endIndex": 16, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'SYSSYS'
238
- { "startIndex": 16, "endIndex": 17, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
239
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl"] }, // ' '
240
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
241
- { "startIndex": 19, "endIndex": 24, "scopes": ["source.abl", "meta.function.arguments.abl", "constant.numeric.source.abl"] }, // '31000'
242
- { "startIndex": 24, "endIndex": 25, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
243
- { "startIndex": 25, "endIndex": 26, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
244
- ];
245
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
246
- })
247
-
248
- describe('', () => {
249
- let statement = `run temprunprogram.p@.`;
250
-
251
- let expectedTokens = [
252
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
253
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
254
- { "startIndex": 4, "endIndex": 21, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'temprunprogram.p@'
255
- { "startIndex": 21, "endIndex": 22, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
256
- ];
257
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
258
- })
259
-
260
- describe('', () => {
261
- let statement = `run me.p`;
262
-
263
- let expectedTokens = [
264
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
265
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
266
- { "startIndex": 4, "endIndex": 8, "scopes": ["source.abl", "entity.name.procedure.abl"] } // 'me.p'
267
- ];
268
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
269
- })
270
-
271
- describe('', () => {
272
- let statement = `run foo.`;
273
-
274
- let expectedTokens = [
275
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
276
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
277
- { "startIndex": 4, "endIndex": 7, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'foo'
278
- { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
279
- ];
280
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
281
- })
282
-
283
- describe('', () => {
284
- let statement = `run foo/blah.r.`;
285
-
286
- let expectedTokens = [
287
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
288
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
289
- { "startIndex": 4, "endIndex": 14, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'foo/blah.r'
290
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
291
- ];
292
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
293
- })
294
-
295
- describe('', () => {
296
- let statement = `RUN {&rhdr}brslsag3.p{&rtrl} .`;
297
-
298
- let expectedTokens = [
299
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'RUN'
300
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
301
- { "startIndex": 4, "endIndex": 5, "scopes": ["source.abl", "meta.preprocessor.abl", "punctuation.section.abl"] }, // '{'
302
- { "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.preprocessor.abl", "punctuation.definition.preprocessor.abl"] }, // '&'
303
- { "startIndex": 6, "endIndex": 10, "scopes": ["source.abl", "meta.preprocessor.abl", "entity.name.function.preprocessor.abl"] }, // 'rhdr'
304
- { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl", "meta.preprocessor.abl", "punctuation.section.abl"] }, // '}'
305
- { "startIndex": 11, "endIndex": 21, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'brslsag3.p'
306
- { "startIndex": 21, "endIndex": 22, "scopes": ["source.abl", "meta.preprocessor.abl", "punctuation.section.abl"] }, // '{'
307
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.preprocessor.abl", "punctuation.definition.preprocessor.abl"] }, // '&'
308
- { "startIndex": 23, "endIndex": 27, "scopes": ["source.abl", "meta.preprocessor.abl", "entity.name.function.preprocessor.abl"] }, // 'rtrl'
309
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.preprocessor.abl", "punctuation.section.abl"] }, // '}'
310
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl"] }, // ' '
311
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
312
- ];
313
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
314
- })
315
-
316
- describe('', () => {
317
- let statement = `RUN /*debug remove / path */ {&rhdr}brslsag3.p{&rtrl} .`;
318
-
319
- let expectedTokens = [
320
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'RUN'
321
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
322
- { "startIndex": 4, "endIndex": 6, "scopes": ["source.abl", "comment.block.source.abl"] }, // '/*'
323
- { "startIndex": 6, "endIndex": 26, "scopes": ["source.abl", "comment.block.source.abl", "comment"] }, // 'debug remove / path '
324
- { "startIndex": 26, "endIndex": 28, "scopes": ["source.abl", "comment.block.source.abl"] }, // '*/'
325
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl"] }, // ' '
326
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.preprocessor.abl", "punctuation.section.abl"] }, // '{'
327
- { "startIndex": 30, "endIndex": 31, "scopes": ["source.abl", "meta.preprocessor.abl", "punctuation.definition.preprocessor.abl"] }, // '&'
328
- { "startIndex": 31, "endIndex": 35, "scopes": ["source.abl", "meta.preprocessor.abl", "entity.name.function.preprocessor.abl"] }, // 'rhdr'
329
- { "startIndex": 35, "endIndex": 36, "scopes": ["source.abl", "meta.preprocessor.abl", "punctuation.section.abl"] }, // '}'
330
- { "startIndex": 36, "endIndex": 46, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'brslsag3.p'
331
- { "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "meta.preprocessor.abl", "punctuation.section.abl"] }, // '{'
332
- { "startIndex": 47, "endIndex": 48, "scopes": ["source.abl", "meta.preprocessor.abl", "punctuation.definition.preprocessor.abl"] }, // '&'
333
- { "startIndex": 48, "endIndex": 52, "scopes": ["source.abl", "meta.preprocessor.abl", "entity.name.function.preprocessor.abl"] }, // 'rtrl'
334
- { "startIndex": 52, "endIndex": 53, "scopes": ["source.abl", "meta.preprocessor.abl", "punctuation.section.abl"] }, // '}'
335
- { "startIndex": 53, "endIndex": 54, "scopes": ["source.abl"] }, // ' '
336
- { "startIndex": 54, "endIndex": 55, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
337
- ];
338
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
339
- })
340
-
341
- describe('', () => {
342
- let statement = `RUN VALUE(THIS-OBJECT:ServiceInterfacePath + "/proSIinvokeTaskAsync2.p":U)
343
- ON hAppServer
344
- ASYNCHRONOUS
345
- (INPUT pcTaskName,
346
- INPUT pcMethodName,
347
- {1},
348
- lcDataset1,
349
- lcDataset2,
350
- lcDataset3,
351
- lcDataset4,
352
- lcDataset5,
353
- lcParameter,
354
- lcContext) .`;
355
-
356
- let expectedTokens = [
357
- [
358
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'RUN'
359
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
360
- { "startIndex": 4, "endIndex": 9, "scopes": ["source.abl", "support.function.abl"] }, // 'VALUE'
361
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
362
- { "startIndex": 10, "endIndex": 21, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.language.abl"] }, // 'THIS-OBJECT'
363
- { "startIndex": 21, "endIndex": 22, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.colon.abl"] }, // ':'
364
- { "startIndex": 22, "endIndex": 42, "scopes": ["source.abl", "meta.function.arguments.abl", "entity.name.function.abl"] }, // 'ServiceInterfacePath'
365
- { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
366
- { "startIndex": 43, "endIndex": 44, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.operator.source.abl"] }, // '+'
367
- { "startIndex": 44, "endIndex": 45, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
368
- { "startIndex": 45, "endIndex": 46, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
369
- { "startIndex": 46, "endIndex": 70, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl"] }, // '/proSIinvokeTaskAsync2.p'
370
- { "startIndex": 70, "endIndex": 71, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] }, // '"'
371
- { "startIndex": 71, "endIndex": 73, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "support.other.abl"] }, // ':U'
372
- { "startIndex": 73, "endIndex": 74, "scopes": ["source.abl", "meta.brace.round.js"] } // ')'
373
- ],
374
- [
375
- { "startIndex": 0, "endIndex": 8, "scopes": ["source.abl"] }, // ' '
376
- { "startIndex": 8, "endIndex": 10, "scopes": ["source.abl", "keyword.other.abl"] }, // 'ON'
377
- { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl"] }, // ' '
378
- { "startIndex": 11, "endIndex": 21, "scopes": ["source.abl", "variable.other.abl"] } // 'hAppServer'
379
- ],
380
- [
381
- { "startIndex": 0, "endIndex": 8, "scopes": ["source.abl"] }, // ' '
382
- { "startIndex": 8, "endIndex": 20, "scopes": ["source.abl", "keyword.other.abl"] } // 'ASYNCHRONOUS'
383
- ],
384
- [
385
- { "startIndex": 0, "endIndex": 8, "scopes": ["source.abl"] }, // ' '
386
- { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
387
- { "startIndex": 9, "endIndex": 14, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'INPUT'
388
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
389
- { "startIndex": 15, "endIndex": 25, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'pcTaskName'
390
- { "startIndex": 25, "endIndex": 26, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] } // ','
391
- ],
392
- [
393
- { "startIndex": 0, "endIndex": 10, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
394
- { "startIndex": 10, "endIndex": 15, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'INPUT'
395
- { "startIndex": 15, "endIndex": 16, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
396
- { "startIndex": 16, "endIndex": 28, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'pcMethodName'
397
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] } // ','
398
- ],
399
- [
400
- { "startIndex": 0, "endIndex": 10, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
401
- { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.argument.abl", "punctuation.section.abl"] }, // '{'
402
- { "startIndex": 11, "endIndex": 12, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.argument.abl", "support.other.argument.abl"] }, // '1'
403
- { "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.argument.abl", "punctuation.section.abl"] }, // '}'
404
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] } // ','
405
- ],
406
- [
407
- { "startIndex": 0, "endIndex": 10, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
408
- { "startIndex": 10, "endIndex": 20, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'lcDataset1'
409
- { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] } // ','
410
- ],
411
- [
412
- { "startIndex": 0, "endIndex": 10, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
413
- { "startIndex": 10, "endIndex": 20, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'lcDataset2'
414
- { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] } // ','
415
- ],
416
- [
417
- { "startIndex": 0, "endIndex": 10, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
418
- { "startIndex": 10, "endIndex": 20, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'lcDataset3'
419
- { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] } // ','
420
- ],
421
- [
422
- { "startIndex": 0, "endIndex": 10, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
423
- { "startIndex": 10, "endIndex": 20, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'lcDataset4'
424
- { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] } // ','
425
- ],
426
- [
427
- { "startIndex": 0, "endIndex": 10, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
428
- { "startIndex": 10, "endIndex": 20, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'lcDataset5'
429
- { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] } // ','
430
- ],
431
- [
432
- { "startIndex": 0, "endIndex": 10, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
433
- { "startIndex": 10, "endIndex": 21, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'lcParameter'
434
- { "startIndex": 21, "endIndex": 22, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] } // ','
435
- ],
436
- [
437
- { "startIndex": 0, "endIndex": 10, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
438
- { "startIndex": 10, "endIndex": 19, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'lcContext'
439
- { "startIndex": 19, "endIndex": 20, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
440
- { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl"] }, // ' '
441
- { "startIndex": 21, "endIndex": 22, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
442
- ]
443
- ];
444
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
445
- })
446
-
447
- describe('', () => {
448
- let statement = `run Bar in vProcedureHandle(input "hello World").`;
449
-
450
- let expectedTokens = [
451
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
452
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
453
- { "startIndex": 4, "endIndex": 7, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'Bar'
454
- { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl"] }, // ' '
455
- { "startIndex": 8, "endIndex": 10, "scopes": ["source.abl", "keyword.other.abl"] }, // 'in'
456
- { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl"] }, // ' '
457
- { "startIndex": 11, "endIndex": 27, "scopes": ["source.abl", "variable.other.abl"] }, // 'vProcedureHandle'
458
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
459
- { "startIndex": 28, "endIndex": 33, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'input'
460
- { "startIndex": 33, "endIndex": 34, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
461
- { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
462
- { "startIndex": 35, "endIndex": 46, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl"] }, // 'hello World'
463
- { "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] }, // '"'
464
- { "startIndex": 47, "endIndex": 48, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
465
- { "startIndex": 48, "endIndex": 49, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
466
- ];
467
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
468
- })
469
-
470
- describe('', () => {
471
- let statement = `RUN test.p
472
- ON hServer
473
- ASYNCHRONOUS
474
- EVENT-HANDLER "test"
475
- EVENT-HANDLER-CONTEXT o .`;
476
-
477
- let expectedTokens = [
478
- [
479
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'RUN'
480
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
481
- { "startIndex": 4, "endIndex": 10, "scopes": ["source.abl", "entity.name.procedure.abl"] } // 'test.p'
482
- ],
483
- [
484
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
485
- { "startIndex": 4, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'ON'
486
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
487
- { "startIndex": 7, "endIndex": 14, "scopes": ["source.abl", "variable.other.abl"] } // 'hServer'
488
- ],
489
- [
490
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
491
- { "startIndex": 4, "endIndex": 16, "scopes": ["source.abl", "keyword.other.abl"] } // 'ASYNCHRONOUS'
492
- ],
493
- [
494
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
495
- { "startIndex": 4, "endIndex": 17, "scopes": ["source.abl", "keyword.other.abl"] }, // 'EVENT-HANDLER'
496
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl"] }, // ' '
497
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
498
- { "startIndex": 19, "endIndex": 23, "scopes": ["source.abl", "string.quoted.double.abl"] }, // 'test'
499
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] } // '"'
500
- ],
501
- [
502
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
503
- { "startIndex": 4, "endIndex": 25, "scopes": ["source.abl", "keyword.other.abl"] }, // 'EVENT-HANDLER-CONTEXT'
504
- { "startIndex": 25, "endIndex": 26, "scopes": ["source.abl"] }, // ' '
505
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "variable.other.abl"] }, // 'o'
506
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl"] }, // ' '
507
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
508
- ]
509
- ];
510
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
511
- })
512
-
513
- describe('', () => {
514
- let statement = `RUN test.p
515
- ON SERVER hServer
516
- ASYNCHRONOUS
517
- EVENT-HANDLER "test"
518
- EVENT-HANDLER-CONTEXT o .`;
519
-
520
- let expectedTokens = [
521
- [
522
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'RUN'
523
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
524
- { "startIndex": 4, "endIndex": 10, "scopes": ["source.abl", "entity.name.procedure.abl"] } // 'test.p'
525
- ],
526
- [
527
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
528
- { "startIndex": 4, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'ON'
529
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
530
- { "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "keyword.other.abl"] }, // 'SERVER'
531
- { "startIndex": 13, "endIndex": 14, "scopes": ["source.abl"] }, // ' '
532
- { "startIndex": 14, "endIndex": 21, "scopes": ["source.abl", "variable.other.abl"] } // 'hServer'
533
- ],
534
- [
535
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
536
- { "startIndex": 4, "endIndex": 16, "scopes": ["source.abl", "keyword.other.abl"] } // 'ASYNCHRONOUS'
537
- ],
538
- [
539
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
540
- { "startIndex": 4, "endIndex": 17, "scopes": ["source.abl", "keyword.other.abl"] }, // 'EVENT-HANDLER'
541
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl"] }, // ' '
542
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
543
- { "startIndex": 19, "endIndex": 23, "scopes": ["source.abl", "string.quoted.double.abl"] }, // 'test'
544
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] } // '"'
545
- ],
546
- [
547
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
548
- { "startIndex": 4, "endIndex": 25, "scopes": ["source.abl", "keyword.other.abl"] }, // 'EVENT-HANDLER-CONTEXT'
549
- { "startIndex": 25, "endIndex": 26, "scopes": ["source.abl"] }, // ' '
550
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "variable.other.abl"] }, // 'o'
551
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl"] }, // ' '
552
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
553
- ]
554
- ];
555
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
556
- })
557
-
558
- describe('', () => {
559
- let statement = `RUN test.p
560
- ON SESSION
561
- ASYNCHRONOUS
562
- EVENT-HANDLER "test"
563
- EVENT-HANDLER-CONTEXT o .`;
564
-
565
- let expectedTokens = [
566
- [
567
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'RUN'
568
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
569
- { "startIndex": 4, "endIndex": 10, "scopes": ["source.abl", "entity.name.procedure.abl"] } // 'test.p'
570
- ],
571
- [
572
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
573
- { "startIndex": 4, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'ON'
574
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
575
- { "startIndex": 7, "endIndex": 14, "scopes": ["source.abl", "variable.language.abl"] } // 'SESSION'
576
- ],
577
- [
578
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
579
- { "startIndex": 4, "endIndex": 16, "scopes": ["source.abl", "keyword.other.abl"] } // 'ASYNCHRONOUS'
580
- ],
581
- [
582
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
583
- { "startIndex": 4, "endIndex": 17, "scopes": ["source.abl", "keyword.other.abl"] }, // 'EVENT-HANDLER'
584
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl"] }, // ' '
585
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
586
- { "startIndex": 19, "endIndex": 23, "scopes": ["source.abl", "string.quoted.double.abl"] }, // 'test'
587
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] } // '"'
588
- ],
589
- [
590
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
591
- { "startIndex": 4, "endIndex": 25, "scopes": ["source.abl", "keyword.other.abl"] }, // 'EVENT-HANDLER-CONTEXT'
592
- { "startIndex": 25, "endIndex": 26, "scopes": ["source.abl"] }, // ' '
593
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "variable.other.abl"] }, // 'o'
594
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl"] }, // ' '
595
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
596
- ]
597
- ];
598
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
599
- })
600
-
601
- describe('', () => {
602
- let statement = `RUN test.p
603
- ON SESSION:HANDLE
604
- ASYNCHRONOUS
605
- EVENT-HANDLER "test"
606
- EVENT-HANDLER-CONTEXT o .`;
607
-
608
- let expectedTokens = [
609
- [
610
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'RUN'
611
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
612
- { "startIndex": 4, "endIndex": 10, "scopes": ["source.abl", "entity.name.procedure.abl"] } // 'test.p'
613
- ],
614
- [
615
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
616
- { "startIndex": 4, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'ON'
617
- { "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
618
- { "startIndex": 7, "endIndex": 14, "scopes": ["source.abl", "variable.language.abl"] }, // 'SESSION'
619
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "punctuation.separator.colon.abl"] }, // ':'
620
- { "startIndex": 15, "endIndex": 21, "scopes": ["source.abl", "entity.name.function.abl"] } // 'HANDLE'
621
- ],
622
- [
623
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
624
- { "startIndex": 4, "endIndex": 16, "scopes": ["source.abl", "keyword.other.abl"] } // 'ASYNCHRONOUS'
625
- ],
626
- [
627
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
628
- { "startIndex": 4, "endIndex": 17, "scopes": ["source.abl", "keyword.other.abl"] }, // 'EVENT-HANDLER'
629
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl"] }, // ' '
630
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
631
- { "startIndex": 19, "endIndex": 23, "scopes": ["source.abl", "string.quoted.double.abl"] }, // 'test'
632
- { "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] } // '"'
633
- ],
634
- [
635
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
636
- { "startIndex": 4, "endIndex": 25, "scopes": ["source.abl", "keyword.other.abl"] }, // 'EVENT-HANDLER-CONTEXT'
637
- { "startIndex": 25, "endIndex": 26, "scopes": ["source.abl"] }, // ' '
638
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "variable.other.abl"] }, // 'o'
639
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl"] }, // ' '
640
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
641
- ]
642
- ];
643
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
644
- })
645
-
646
- describe('', () => {
647
- let statement = `run Foo.Bar in vProcedureHandle(input "goodbye").`;
648
-
649
- let expectedTokens = [
650
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
651
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
652
- { "startIndex": 4, "endIndex": 11, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'Foo.Bar'
653
- { "startIndex": 11, "endIndex": 12, "scopes": ["source.abl"] }, // ' '
654
- { "startIndex": 12, "endIndex": 14, "scopes": ["source.abl", "keyword.other.abl"] }, // 'in'
655
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl"] }, // ' '
656
- { "startIndex": 15, "endIndex": 31, "scopes": ["source.abl", "variable.other.abl"] }, // 'vProcedureHandle'
657
- { "startIndex": 31, "endIndex": 32, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
658
- { "startIndex": 32, "endIndex": 37, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'input'
659
- { "startIndex": 37, "endIndex": 38, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
660
- { "startIndex": 38, "endIndex": 39, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
661
- { "startIndex": 39, "endIndex": 46, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl"] }, // 'goodbye'
662
- { "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] }, // '"'
663
- { "startIndex": 47, "endIndex": 48, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
664
- { "startIndex": 48, "endIndex": 49, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
665
- ];
666
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
667
- })
668
-
669
- describe('', () => {
670
- let statement = `run foo.p persistent set vProcedureHandle.
671
- run Bar in vProcedureHandle(input "hello World").`;
672
-
673
- let expectedTokens = [
674
- [
675
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
676
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
677
- { "startIndex": 4, "endIndex": 9, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'foo.p'
678
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl"] }, // ' '
679
- { "startIndex": 10, "endIndex": 20, "scopes": ["source.abl", "keyword.other.abl"] }, // 'persistent'
680
- { "startIndex": 20, "endIndex": 21, "scopes": ["source.abl"] }, // ' '
681
- { "startIndex": 21, "endIndex": 24, "scopes": ["source.abl", "keyword.other.abl"] }, // 'set'
682
- { "startIndex": 24, "endIndex": 25, "scopes": ["source.abl"] }, // ' '
683
- { "startIndex": 25, "endIndex": 41, "scopes": ["source.abl", "variable.other.abl"] }, // 'vProcedureHandle'
684
- { "startIndex": 41, "endIndex": 42, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
685
- ],
686
- [
687
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
688
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
689
- { "startIndex": 4, "endIndex": 7, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'Bar'
690
- { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl"] }, // ' '
691
- { "startIndex": 8, "endIndex": 10, "scopes": ["source.abl", "keyword.other.abl"] }, // 'in'
692
- { "startIndex": 10, "endIndex": 11, "scopes": ["source.abl"] }, // ' '
693
- { "startIndex": 11, "endIndex": 27, "scopes": ["source.abl", "variable.other.abl"] }, // 'vProcedureHandle'
694
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
695
- { "startIndex": 28, "endIndex": 33, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'input'
696
- { "startIndex": 33, "endIndex": 34, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
697
- { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
698
- { "startIndex": 35, "endIndex": 46, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl"] }, // 'hello World'
699
- { "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] }, // '"'
700
- { "startIndex": 47, "endIndex": 48, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
701
- { "startIndex": 48, "endIndex": 49, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
702
- ]
703
- ];
704
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
705
- })
706
-
707
- describe('', () => {
708
- let statement = `run gfgg.p persistent set h on oT:GetHdl().`;
709
-
710
- let expectedTokens = [
711
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
712
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
713
- { "startIndex": 4, "endIndex": 10, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'gfgg.p'
714
- { "startIndex": 10, "endIndex": 12, "scopes": ["source.abl"] }, // ' '
715
- { "startIndex": 12, "endIndex": 22, "scopes": ["source.abl", "keyword.other.abl"] }, // 'persistent'
716
- { "startIndex": 22, "endIndex": 23, "scopes": ["source.abl"] }, // ' '
717
- { "startIndex": 23, "endIndex": 26, "scopes": ["source.abl", "keyword.other.abl"] }, // 'set'
718
- { "startIndex": 26, "endIndex": 27, "scopes": ["source.abl"] }, // ' '
719
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "variable.other.abl"] }, // 'h'
720
- { "startIndex": 28, "endIndex": 29, "scopes": ["source.abl"] }, // ' '
721
- { "startIndex": 29, "endIndex": 31, "scopes": ["source.abl", "keyword.other.abl"] }, // 'on'
722
- { "startIndex": 31, "endIndex": 32, "scopes": ["source.abl"] }, // ' '
723
- { "startIndex": 32, "endIndex": 34, "scopes": ["source.abl", "variable.other.abl"] }, // 'oT'
724
- { "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "punctuation.separator.colon.abl"] }, // ':'
725
- { "startIndex": 35, "endIndex": 41, "scopes": ["source.abl", "entity.name.function.abl"] }, // 'GetHdl'
726
- { "startIndex": 41, "endIndex": 42, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
727
- { "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
728
- { "startIndex": 43, "endIndex": 44, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
729
- ];
730
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
731
- })
732
-
733
- describe('', () => {
734
- let statement = `run adfasf.p EVENT-PROCEDURE "event-internal-procedure".
735
- run adfasf.p EVENT-PROCEDURE 'event-internal-procedure':u.`;
736
-
737
- let expectedTokens = [
738
- [
739
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
740
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
741
- { "startIndex": 4, "endIndex": 12, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'adfasf.p'
742
- { "startIndex": 12, "endIndex": 14, "scopes": ["source.abl"] }, // ' '
743
- { "startIndex": 14, "endIndex": 29, "scopes": ["source.abl", "keyword.other.abl"] }, // 'EVENT-PROCEDURE'
744
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl"] }, // ' '
745
- { "startIndex": 30, "endIndex": 31, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
746
- { "startIndex": 31, "endIndex": 55, "scopes": ["source.abl", "string.quoted.double.abl"] }, // 'event-internal-procedure'
747
- { "startIndex": 55, "endIndex": 56, "scopes": ["source.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] }, // '"'
748
- { "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
749
- ],
750
- [
751
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
752
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
753
- { "startIndex": 4, "endIndex": 12, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'adfasf.p'
754
- { "startIndex": 12, "endIndex": 14, "scopes": ["source.abl"] }, // ' '
755
- { "startIndex": 14, "endIndex": 29, "scopes": ["source.abl", "keyword.other.abl"] }, // 'EVENT-PROCEDURE'
756
- { "startIndex": 29, "endIndex": 30, "scopes": ["source.abl"] }, // ' '
757
- { "startIndex": 30, "endIndex": 31, "scopes": ["source.abl", "string.quoted.single.abl", "punctuation.definition.string.begin.abl"] }, // '''
758
- { "startIndex": 31, "endIndex": 55, "scopes": ["source.abl", "string.quoted.single.abl"] }, // 'event-internal-procedure'
759
- { "startIndex": 55, "endIndex": 56, "scopes": ["source.abl", "string.quoted.single.abl", "punctuation.definition.string.end.abl"] }, // '''
760
- { "startIndex": 56, "endIndex": 58, "scopes": ["source.abl", "string.quoted.single.abl", "support.other.abl"] }, // ':u'
761
- { "startIndex": 58, "endIndex": 59, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
762
- ]
763
- ];
764
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
765
- })
766
-
767
- describe('', () => {
768
- let statement = `RUN
769
- extern-proc-name
770
- SINGLETON SET proc-handle
771
- ON SERVER session
772
- TRANSACTION DISTINCT
773
- ASYNCHRONOUS
774
- SET async-request-handle
775
- EVENT-PROCEDURE event-internal-procedure
776
- IN procedure-context
777
- EVENT-HANDLER string(event-handler-name:Method())
778
- EVENT-HANDLER-CONTEXT this-procedure
779
- ( "abc", objRef) .`;
780
-
781
- let expectedTokens = [
782
- [
783
- { "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] } // 'RUN'
784
- ],
785
- [
786
- { "startIndex": 0, "endIndex": 5, "scopes": ["source.abl"] }, // ' '
787
- { "startIndex": 5, "endIndex": 21, "scopes": ["source.abl", "entity.name.procedure.abl"] } // 'extern-proc-name'
788
- ],
789
- [
790
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
791
- { "startIndex": 4, "endIndex": 13, "scopes": ["source.abl", "keyword.other.abl"] }, // 'SINGLETON'
792
- { "startIndex": 13, "endIndex": 15, "scopes": ["source.abl"] }, // ' '
793
- { "startIndex": 15, "endIndex": 18, "scopes": ["source.abl", "keyword.other.abl"] }, // 'SET'
794
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl"] }, // ' '
795
- { "startIndex": 19, "endIndex": 30, "scopes": ["source.abl", "variable.other.abl"] } // 'proc-handle'
796
- ],
797
- [
798
- { "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
799
- { "startIndex": 4, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'ON'
800
- { "startIndex": 6, "endIndex": 8, "scopes": ["source.abl"] }, // ' '
801
- { "startIndex": 8, "endIndex": 14, "scopes": ["source.abl", "keyword.other.abl"] }, // 'SERVER'
802
- { "startIndex": 14, "endIndex": 15, "scopes": ["source.abl"] }, // ' '
803
- { "startIndex": 15, "endIndex": 22, "scopes": ["source.abl", "variable.language.abl"] } // 'session'
804
- ],
805
- [
806
- { "startIndex": 0, "endIndex": 8, "scopes": ["source.abl"] }, // ' '
807
- { "startIndex": 8, "endIndex": 19, "scopes": ["source.abl", "keyword.other.abl"] }, // 'TRANSACTION'
808
- { "startIndex": 19, "endIndex": 20, "scopes": ["source.abl"] }, // ' '
809
- { "startIndex": 20, "endIndex": 28, "scopes": ["source.abl", "keyword.other.abl"] } // 'DISTINCT'
810
- ],
811
- [
812
- { "startIndex": 0, "endIndex": 8, "scopes": ["source.abl"] }, // ' '
813
- { "startIndex": 8, "endIndex": 20, "scopes": ["source.abl", "keyword.other.abl"] } // 'ASYNCHRONOUS'
814
- ],
815
- [
816
- { "startIndex": 0, "endIndex": 12, "scopes": ["source.abl"] }, // ' '
817
- { "startIndex": 12, "endIndex": 15, "scopes": ["source.abl", "keyword.other.abl"] }, // 'SET'
818
- { "startIndex": 15, "endIndex": 16, "scopes": ["source.abl"] }, // ' '
819
- { "startIndex": 16, "endIndex": 36, "scopes": ["source.abl", "variable.other.abl"] } // 'async-request-handle'
820
- ],
821
- [
822
- { "startIndex": 0, "endIndex": 12, "scopes": ["source.abl"] }, // ' '
823
- { "startIndex": 12, "endIndex": 27, "scopes": ["source.abl", "keyword.other.abl"] }, // 'EVENT-PROCEDURE'
824
- { "startIndex": 27, "endIndex": 28, "scopes": ["source.abl"] }, // ' '
825
- { "startIndex": 28, "endIndex": 52, "scopes": ["source.abl", "variable.other.abl"] } // 'event-internal-procedure'
826
- ],
827
- [
828
- { "startIndex": 0, "endIndex": 16, "scopes": ["source.abl"] }, // ' '
829
- { "startIndex": 16, "endIndex": 18, "scopes": ["source.abl", "keyword.other.abl"] }, // 'IN'
830
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl"] }, // ' '
831
- { "startIndex": 19, "endIndex": 36, "scopes": ["source.abl", "variable.other.abl"] } // 'procedure-context'
832
- ],
833
- [
834
- { "startIndex": 0, "endIndex": 12, "scopes": ["source.abl"] }, // ' '
835
- { "startIndex": 12, "endIndex": 25, "scopes": ["source.abl", "keyword.other.abl"] }, // 'EVENT-HANDLER'
836
- { "startIndex": 25, "endIndex": 26, "scopes": ["source.abl"] }, // ' '
837
- { "startIndex": 26, "endIndex": 32, "scopes": ["source.abl", "support.function.abl"] }, // 'string'
838
- { "startIndex": 32, "endIndex": 33, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
839
- { "startIndex": 33, "endIndex": 51, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'event-handler-name'
840
- { "startIndex": 51, "endIndex": 52, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.colon.abl"] }, // ':'
841
- { "startIndex": 52, "endIndex": 58, "scopes": ["source.abl", "meta.function.arguments.abl", "entity.name.function.abl"] }, // 'Method'
842
- { "startIndex": 58, "endIndex": 59, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
843
- { "startIndex": 59, "endIndex": 60, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
844
- { "startIndex": 60, "endIndex": 61, "scopes": ["source.abl", "meta.brace.round.js"] } // ')'
845
- ],
846
- [
847
- { "startIndex": 0, "endIndex": 15, "scopes": ["source.abl"] }, // ' '
848
- { "startIndex": 15, "endIndex": 36, "scopes": ["source.abl", "keyword.other.abl"] }, // 'EVENT-HANDLER-CONTEXT'
849
- { "startIndex": 36, "endIndex": 37, "scopes": ["source.abl"] }, // ' '
850
- { "startIndex": 37, "endIndex": 51, "scopes": ["source.abl", "variable.language.abl"] } // 'this-procedure'
851
- ],
852
- [
853
- { "startIndex": 0, "endIndex": 1, "scopes": ["source.abl"] }, // ' '
854
- { "startIndex": 1, "endIndex": 2, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
855
- { "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
856
- { "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "punctuation.definition.string.begin.abl"] }, // '"'
857
- { "startIndex": 4, "endIndex": 7, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl"] }, // 'abc'
858
- { "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "meta.function.arguments.abl", "string.quoted.double.abl", "punctuation.definition.string.end.abl"] }, // '"'
859
- { "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.comma.abl"] }, // ','
860
- { "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
861
- { "startIndex": 10, "endIndex": 16, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'objRef'
862
- { "startIndex": 16, "endIndex": 17, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
863
- { "startIndex": 17, "endIndex": 18, "scopes": ["source.abl"] }, // ' '
864
- { "startIndex": 18, "endIndex": 19, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
865
- ]
866
- ];
867
- shared.itShouldMatchExpectedScopes(statement, expectedTokens);
868
- })