abl-tmlanguage 1.3.2 → 1.3.4
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.
- package/abl.tmLanguage.json +107 -7
- package/package.json +1 -1
- package/spec/blocks/block-labels.spec.js +153 -0
- package/spec/db-table-and-field/foreach.spec.js +2 -2
- package/spec/define-parameter/simple-single-line.spec.js +72 -0
- package/spec/do/do-blocks.spec.js +68 -0
- package/spec/function-call/pass-table.spec.js +82 -1
- package/spec/method-attribute-property-call/method-call.spec.js +63 -0
- package/spec/method-definition/constructor.spec.js +1 -1
- package/spec/method-definition/method.spec.js +1 -1
- package/spec/preprocesors/issue166.spec.js +83 -0
- package/spec/type-name/parameter-as.spec.js +1 -1
package/abl.tmLanguage.json
CHANGED
|
@@ -223,7 +223,18 @@
|
|
|
223
223
|
}
|
|
224
224
|
},
|
|
225
225
|
{
|
|
226
|
-
"match": "(?i)\\s*(dataset
|
|
226
|
+
"match": "(?i)\\s*(dataset)\\s+([\\w\\-]+)\\s*",
|
|
227
|
+
"captures": {
|
|
228
|
+
"1": {
|
|
229
|
+
"name": "keyword.other.abl"
|
|
230
|
+
},
|
|
231
|
+
"2": {
|
|
232
|
+
"name": "storage.data.dataset.abl"
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"match": "(?i)\\s*(table)\\s+([\\w\\-]+)\\s*",
|
|
227
238
|
"captures": {
|
|
228
239
|
"1": {
|
|
229
240
|
"name": "keyword.other.abl"
|
|
@@ -1067,7 +1078,7 @@
|
|
|
1067
1078
|
},
|
|
1068
1079
|
"for-join": {
|
|
1069
1080
|
"comment": "Captures something like ', salesrep where' or 'salesrep where', when the latter is at the beginning of a line. 'OF' phrases handled by of-phrase",
|
|
1070
|
-
"match": "(?i)(?<=,|^)\\s*([\\w\\-#$%]+(\\.[\\w\\-#$%]+)?)\\s+(?=where|no-lock|
|
|
1081
|
+
"match": "(?i)(?<=,|^)\\s*([\\w\\-#$%]+(\\.[\\w\\-#$%]+)?)\\s+(?=where|no-lock|exclusive-lock|exclusive-loc|exclusive-lo|exclusive-l|share-lock|share-loc|share-lo|share-|share|tenant-where|use-index|table-scan|using|no-prefetch|left|outer-join|break|by|transaction)",
|
|
1071
1082
|
"captures": {
|
|
1072
1083
|
"1": {
|
|
1073
1084
|
"name": "storage.data.table.abl"
|
|
@@ -1084,7 +1095,7 @@
|
|
|
1084
1095
|
"name": "storage.data.table.abl"
|
|
1085
1096
|
}
|
|
1086
1097
|
},
|
|
1087
|
-
"end": "(?i)\\s*(?=where|no-lock|
|
|
1098
|
+
"end": "(?i)\\s*(?=where|no-lock|exclusive-lock|exclusive-loc|exclusive-lo|exclusive-l|share-lock|share-loc|share-lo|share-|share|tenant-where|use-index|table-scan|using|no-prefetch|left|outer-join|break|by|transaction|,|:)\\s*",
|
|
1088
1099
|
"patterns": [
|
|
1089
1100
|
{
|
|
1090
1101
|
"include": "#fields-except-list"
|
|
@@ -1122,7 +1133,7 @@
|
|
|
1122
1133
|
"name": "keyword.other.abl"
|
|
1123
1134
|
}
|
|
1124
1135
|
},
|
|
1125
|
-
"end": "(?i)\\s*(?=where|no-lock|
|
|
1136
|
+
"end": "(?i)\\s*(?=where|no-lock|exclusive-lock|exclusive-loc|exclusive-lo|exclusive-l|share-lock|share-loc|share-lo|share-|share|tenant-where|use-index|table-scan|using|no-prefetch|left|outer-join|break|by|transaction|,|:|on)\\s*",
|
|
1126
1137
|
"patterns": [
|
|
1127
1138
|
{
|
|
1128
1139
|
"match": "(?i)\\s*(each|first|last|of)\\s*",
|
|
@@ -1604,6 +1615,9 @@
|
|
|
1604
1615
|
{
|
|
1605
1616
|
"include": "#define-variable"
|
|
1606
1617
|
},
|
|
1618
|
+
{
|
|
1619
|
+
"include": "#define-parameter"
|
|
1620
|
+
},
|
|
1607
1621
|
{
|
|
1608
1622
|
"include": "#define-dataset"
|
|
1609
1623
|
},
|
|
@@ -1731,6 +1745,66 @@
|
|
|
1731
1745
|
}
|
|
1732
1746
|
}
|
|
1733
1747
|
},
|
|
1748
|
+
"define-parameter": {
|
|
1749
|
+
"begin": "(?i)\\b(parameter|paramete|paramet|parame|param)\\b",
|
|
1750
|
+
"beginCaptures": {
|
|
1751
|
+
"1": {
|
|
1752
|
+
"name": "keyword.other.abl"
|
|
1753
|
+
}
|
|
1754
|
+
},
|
|
1755
|
+
"end": "(?i)(?=\\.)|\\b(?=bgcolor|column-label|contet-help-id|dcolor|decimals|drop-target|extent|font|fgcolor|format|initial|label|mouse-pointer|no-undo|not|case-sensitive|pfcolor|view-as|triggers)\\b",
|
|
1756
|
+
"comment": "The end capture does a lookahead on . so that the 'define' capture can end ",
|
|
1757
|
+
"patterns": [
|
|
1758
|
+
{
|
|
1759
|
+
"match": "(?i)\\b(table)\\s+(for)\\s+([\\w\\-#$%]+(\\.[\\w\\-#$%]+)?)\\b",
|
|
1760
|
+
"captures": {
|
|
1761
|
+
"1": {
|
|
1762
|
+
"name": "keyword.other.abl"
|
|
1763
|
+
},
|
|
1764
|
+
"2": {
|
|
1765
|
+
"name": "keyword.other.abl"
|
|
1766
|
+
},
|
|
1767
|
+
"3": {
|
|
1768
|
+
"name": "storage.data.table.abl"
|
|
1769
|
+
}
|
|
1770
|
+
}
|
|
1771
|
+
},
|
|
1772
|
+
{
|
|
1773
|
+
"match": "(?i)\\b(table-handle|dataset-handle)\\s+([a-zA-Z][a-zA-Z0-9\\#\\$\\-\\_\\%\\&]*)\\b",
|
|
1774
|
+
"captures": {
|
|
1775
|
+
"1": {
|
|
1776
|
+
"name": "keyword.other.abl"
|
|
1777
|
+
},
|
|
1778
|
+
"2": {
|
|
1779
|
+
"name": "variable.other.abl"
|
|
1780
|
+
}
|
|
1781
|
+
}
|
|
1782
|
+
},
|
|
1783
|
+
{
|
|
1784
|
+
"match": "(?i)\\b(dataset)\\s+(for)\\s+([\\w\\-#$%]+(\\.[\\w\\-#$%]+)?)\\b",
|
|
1785
|
+
"captures": {
|
|
1786
|
+
"1": {
|
|
1787
|
+
"name": "keyword.other.abl"
|
|
1788
|
+
},
|
|
1789
|
+
"2": {
|
|
1790
|
+
"name": "keyword.other.abl"
|
|
1791
|
+
},
|
|
1792
|
+
"3": {
|
|
1793
|
+
"name": "storage.data.dataset.abl"
|
|
1794
|
+
}
|
|
1795
|
+
}
|
|
1796
|
+
},
|
|
1797
|
+
{
|
|
1798
|
+
"include": "#parameter-as"
|
|
1799
|
+
},
|
|
1800
|
+
{
|
|
1801
|
+
"include": "#keywords"
|
|
1802
|
+
},
|
|
1803
|
+
{
|
|
1804
|
+
"include": "#expression"
|
|
1805
|
+
}
|
|
1806
|
+
]
|
|
1807
|
+
},
|
|
1734
1808
|
"define-property": {
|
|
1735
1809
|
"begin": "(?i)\\b(property|prop)\\b",
|
|
1736
1810
|
"beginCaptures": {
|
|
@@ -2169,11 +2243,14 @@
|
|
|
2169
2243
|
}
|
|
2170
2244
|
},
|
|
2171
2245
|
"block-label": {
|
|
2172
|
-
"match": "(?i)^\\s*(([a-z][a-z0-9
|
|
2173
|
-
"comment": "A colon followed by a space is only legal is for block labels.
|
|
2246
|
+
"match": "(?i)^\\s*((?!transaction|no-lock|exclusive-lock|exclusive-loc|exclusive-lo|exclusive-l|share-lock|share-loc|share-lo|share-|share)([a-z][a-z0-9\\-\\$\\#]*)(:))\\s",
|
|
2247
|
+
"comment": "A colon followed by a space is only legal is for block labels. Block labels must also be at the beginning of a line",
|
|
2174
2248
|
"captures": {
|
|
2175
2249
|
"2": {
|
|
2176
2250
|
"name": "meta.block.label.abl"
|
|
2251
|
+
},
|
|
2252
|
+
"3": {
|
|
2253
|
+
"name": "punctuation.terminator.abl"
|
|
2177
2254
|
}
|
|
2178
2255
|
}
|
|
2179
2256
|
},
|
|
@@ -2225,6 +2302,9 @@
|
|
|
2225
2302
|
{
|
|
2226
2303
|
"include": "#type-member-call"
|
|
2227
2304
|
},
|
|
2305
|
+
{
|
|
2306
|
+
"include": "#abl-functions"
|
|
2307
|
+
},
|
|
2228
2308
|
{
|
|
2229
2309
|
"include": "#punctuation-comma"
|
|
2230
2310
|
},
|
|
@@ -2267,6 +2347,12 @@
|
|
|
2267
2347
|
},
|
|
2268
2348
|
{
|
|
2269
2349
|
"include": "#branch-options"
|
|
2350
|
+
},
|
|
2351
|
+
{
|
|
2352
|
+
"include": "#abl-functions"
|
|
2353
|
+
},
|
|
2354
|
+
{
|
|
2355
|
+
"include": "#expression"
|
|
2270
2356
|
}
|
|
2271
2357
|
]
|
|
2272
2358
|
},
|
|
@@ -2714,6 +2800,9 @@
|
|
|
2714
2800
|
{
|
|
2715
2801
|
"include": "#handle-attributes"
|
|
2716
2802
|
},
|
|
2803
|
+
{
|
|
2804
|
+
"include": "#preprocessors"
|
|
2805
|
+
},
|
|
2717
2806
|
{
|
|
2718
2807
|
"include": "#keywords"
|
|
2719
2808
|
}
|
|
@@ -2748,7 +2837,18 @@
|
|
|
2748
2837
|
}
|
|
2749
2838
|
},
|
|
2750
2839
|
{
|
|
2751
|
-
"match": "(?i)\\b(
|
|
2840
|
+
"match": "(?i)\\b(dataset)\\s+([\\w\\-#$%]+(\\.[\\w\\-#$%]+)?)\\b",
|
|
2841
|
+
"captures": {
|
|
2842
|
+
"1": {
|
|
2843
|
+
"name": "keyword.other.abl"
|
|
2844
|
+
},
|
|
2845
|
+
"2": {
|
|
2846
|
+
"name": "storage.data.dataset.abl"
|
|
2847
|
+
}
|
|
2848
|
+
}
|
|
2849
|
+
},
|
|
2850
|
+
{
|
|
2851
|
+
"match": "(?i)\\b(temp-table|table|buffer)\\s+([\\w\\-#$%]+(\\.[\\w\\-#$%]+)?)\\b",
|
|
2752
2852
|
"captures": {
|
|
2753
2853
|
"1": {
|
|
2754
2854
|
"name": "keyword.other.abl"
|
package/package.json
CHANGED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
const { assert, expect } = require('chai');
|
|
2
|
+
const shared = require('../shared.js');
|
|
3
|
+
|
|
4
|
+
describe('', () => {
|
|
5
|
+
let statement = `for each bCustomer
|
|
6
|
+
no-lock:
|
|
7
|
+
end.`;
|
|
8
|
+
let expectedTokens = [
|
|
9
|
+
[
|
|
10
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'for'
|
|
11
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
|
|
12
|
+
{ "startIndex": 4, "endIndex": 8, "scopes": ["source.abl", "keyword.other.abl"] }, // 'each'
|
|
13
|
+
{ "startIndex": 8, "endIndex": 9, "scopes": ["source.abl"] }, // ' '
|
|
14
|
+
{ "startIndex": 9, "endIndex": 18, "scopes": ["source.abl", "storage.data.table.abl"] } // 'bCustomer'
|
|
15
|
+
],
|
|
16
|
+
[
|
|
17
|
+
{ "startIndex": 0, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
|
|
18
|
+
{ "startIndex": 4, "endIndex": 11, "scopes": ["source.abl", "keyword.other.abl"] }, // 'no-lock'
|
|
19
|
+
{ "startIndex": 11, "endIndex": 12, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
|
|
20
|
+
],
|
|
21
|
+
[
|
|
22
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
|
|
23
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
24
|
+
]
|
|
25
|
+
]
|
|
26
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
describe('', () => {
|
|
30
|
+
let statement = `for each bCustomer where true no-lock:
|
|
31
|
+
end.`;
|
|
32
|
+
let expectedTokens = [
|
|
33
|
+
[
|
|
34
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'for'
|
|
35
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
|
|
36
|
+
{ "startIndex": 4, "endIndex": 8, "scopes": ["source.abl", "keyword.other.abl"] }, // 'each'
|
|
37
|
+
{ "startIndex": 8, "endIndex": 9, "scopes": ["source.abl"] }, // ' '
|
|
38
|
+
{ "startIndex": 9, "endIndex": 18, "scopes": ["source.abl", "storage.data.table.abl"] }, // 'bCustomer'
|
|
39
|
+
{ "startIndex": 18, "endIndex": 19, "scopes": ["source.abl"] }, // ' '
|
|
40
|
+
{ "startIndex": 19, "endIndex": 24, "scopes": ["source.abl", "keyword.other.abl"] }, // 'where'
|
|
41
|
+
{ "startIndex": 24, "endIndex": 25, "scopes": ["source.abl"] }, // ' '
|
|
42
|
+
{ "startIndex": 25, "endIndex": 29, "scopes": ["source.abl", "constant.language.abl"] }, // 'true'
|
|
43
|
+
{ "startIndex": 29, "endIndex": 30, "scopes": ["source.abl"] }, // ' '
|
|
44
|
+
{ "startIndex": 30, "endIndex": 37, "scopes": ["source.abl", "keyword.other.abl"] }, // 'no-lock'
|
|
45
|
+
{ "startIndex": 37, "endIndex": 38, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
|
|
46
|
+
],
|
|
47
|
+
[
|
|
48
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
|
|
49
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
50
|
+
]
|
|
51
|
+
]
|
|
52
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
describe('', () => {
|
|
56
|
+
let statement = `for each bCustomer
|
|
57
|
+
exclusive-l:
|
|
58
|
+
end.`;
|
|
59
|
+
let expectedTokens = [
|
|
60
|
+
[
|
|
61
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'for'
|
|
62
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
|
|
63
|
+
{ "startIndex": 4, "endIndex": 8, "scopes": ["source.abl", "keyword.other.abl"] }, // 'each'
|
|
64
|
+
{ "startIndex": 8, "endIndex": 9, "scopes": ["source.abl"] }, // ' '
|
|
65
|
+
{ "startIndex": 9, "endIndex": 18, "scopes": ["source.abl", "storage.data.table.abl"] } // 'bCustomer'
|
|
66
|
+
],
|
|
67
|
+
[
|
|
68
|
+
{ "startIndex": 0, "endIndex": 11, "scopes": ["source.abl", "keyword.other.abl"] }, // 'exclusive-l'
|
|
69
|
+
{ "startIndex": 11, "endIndex": 12, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
|
|
70
|
+
],
|
|
71
|
+
[
|
|
72
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
|
|
73
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
74
|
+
]
|
|
75
|
+
]
|
|
76
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
describe('', () => {
|
|
80
|
+
let statement = `for each bCustomer
|
|
81
|
+
share-lo:
|
|
82
|
+
end.`;
|
|
83
|
+
let expectedTokens = [
|
|
84
|
+
[
|
|
85
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'for'
|
|
86
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
|
|
87
|
+
{ "startIndex": 4, "endIndex": 8, "scopes": ["source.abl", "keyword.other.abl"] }, // 'each'
|
|
88
|
+
{ "startIndex": 8, "endIndex": 9, "scopes": ["source.abl"] }, // ' '
|
|
89
|
+
{ "startIndex": 9, "endIndex": 18, "scopes": ["source.abl", "storage.data.table.abl"] } // 'bCustomer'
|
|
90
|
+
],
|
|
91
|
+
[
|
|
92
|
+
{ "startIndex": 0, "endIndex": 8, "scopes": ["source.abl", "keyword.other.abl"] }, // 'share-lo'
|
|
93
|
+
{ "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
|
|
94
|
+
],
|
|
95
|
+
[
|
|
96
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
|
|
97
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
98
|
+
]
|
|
99
|
+
]
|
|
100
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
describe('', () => {
|
|
104
|
+
let statement = `block-label: for each bCustomer
|
|
105
|
+
share-lo:
|
|
106
|
+
end.`;
|
|
107
|
+
let expectedTokens = [
|
|
108
|
+
[
|
|
109
|
+
{ "startIndex": 0, "endIndex": 11, "scopes": ["source.abl", "meta.block.label.abl"] }, // 'block-label'
|
|
110
|
+
{ "startIndex": 11, "endIndex": 12, "scopes": ["source.abl", "punctuation.terminator.abl"] }, // ':'
|
|
111
|
+
{ "startIndex": 12, "endIndex": 13, "scopes": ["source.abl"] }, // ' '
|
|
112
|
+
{ "startIndex": 13, "endIndex": 16, "scopes": ["source.abl", "keyword.other.abl"] }, // 'for'
|
|
113
|
+
{ "startIndex": 16, "endIndex": 17, "scopes": ["source.abl"] }, // ' '
|
|
114
|
+
{ "startIndex": 17, "endIndex": 21, "scopes": ["source.abl", "keyword.other.abl"] }, // 'each'
|
|
115
|
+
{ "startIndex": 21, "endIndex": 22, "scopes": ["source.abl"] }, // ' '
|
|
116
|
+
{ "startIndex": 22, "endIndex": 31, "scopes": ["source.abl", "storage.data.table.abl"] } // 'bCustomer'
|
|
117
|
+
],
|
|
118
|
+
[
|
|
119
|
+
{ "startIndex": 0, "endIndex": 8, "scopes": ["source.abl", "keyword.other.abl"] }, // 'share-lo'
|
|
120
|
+
{ "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
|
|
121
|
+
],
|
|
122
|
+
[
|
|
123
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
|
|
124
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
125
|
+
]
|
|
126
|
+
]
|
|
127
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
describe('', () => {
|
|
131
|
+
let statement = `block-label:
|
|
132
|
+
repeat for bCustomer:
|
|
133
|
+
end.`;
|
|
134
|
+
let expectedTokens = [
|
|
135
|
+
[
|
|
136
|
+
{ "startIndex": 0, "endIndex": 11, "scopes": ["source.abl", "meta.block.label.abl"] }, // 'block-label'
|
|
137
|
+
{ "startIndex": 11, "endIndex": 12, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
|
|
138
|
+
],
|
|
139
|
+
[
|
|
140
|
+
{ "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.block.abl", "keyword.other.abl"] }, // 'repeat'
|
|
141
|
+
{ "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
|
|
142
|
+
{ "startIndex": 7, "endIndex": 10, "scopes": ["source.abl", "meta.block.abl", "keyword.other.abl"] }, // 'for'
|
|
143
|
+
{ "startIndex": 10, "endIndex": 11, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
|
|
144
|
+
{ "startIndex": 11, "endIndex": 20, "scopes": ["source.abl", "meta.block.abl", "storage.data.table.abl"] }, // 'bCustomer'
|
|
145
|
+
{ "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
|
|
146
|
+
],
|
|
147
|
+
[
|
|
148
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
|
|
149
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
150
|
+
]
|
|
151
|
+
]
|
|
152
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
153
|
+
})
|
|
@@ -558,8 +558,8 @@ describe('', () => {
|
|
|
558
558
|
],
|
|
559
559
|
[
|
|
560
560
|
{ "startIndex": 0, "endIndex": 2, "scopes": ["source.abl"] }, // ' '
|
|
561
|
-
{ "startIndex": 2, "endIndex": 13, "scopes": ["source.abl", "
|
|
562
|
-
{ "startIndex": 13, "endIndex":
|
|
561
|
+
{ "startIndex": 2, "endIndex": 13, "scopes": ["source.abl", "keyword.other.abl"] }, // 'TRANSACTION'
|
|
562
|
+
{ "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
|
|
563
563
|
]
|
|
564
564
|
];
|
|
565
565
|
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
@@ -154,3 +154,75 @@ describe('', () => {
|
|
|
154
154
|
];
|
|
155
155
|
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
156
156
|
})
|
|
157
|
+
|
|
158
|
+
describe('', () => {
|
|
159
|
+
let statement = `define output parameter table for ttCustomer.`;
|
|
160
|
+
let expectedTokens = [
|
|
161
|
+
{ "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'define'
|
|
162
|
+
{ "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
163
|
+
{ "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'output'
|
|
164
|
+
{ "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
165
|
+
{ "startIndex": 14, "endIndex": 23, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'parameter'
|
|
166
|
+
{ "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
167
|
+
{ "startIndex": 24, "endIndex": 29, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'table'
|
|
168
|
+
{ "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
169
|
+
{ "startIndex": 30, "endIndex": 33, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'for'
|
|
170
|
+
{ "startIndex": 33, "endIndex": 34, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
171
|
+
{ "startIndex": 34, "endIndex": 44, "scopes": ["source.abl", "meta.define.abl", "storage.data.table.abl"] }, // 'ttCustomer'
|
|
172
|
+
{ "startIndex": 44, "endIndex": 45, "scopes": ["source.abl", "meta.define.abl", "punctuation.terminator.abl"] } // '.'
|
|
173
|
+
];
|
|
174
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
175
|
+
})
|
|
176
|
+
|
|
177
|
+
describe('', () => {
|
|
178
|
+
let statement = `define output parameter dataset for dsCustomer.`;
|
|
179
|
+
let expectedTokens = [
|
|
180
|
+
{ "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'define'
|
|
181
|
+
{ "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
182
|
+
{ "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'output'
|
|
183
|
+
{ "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
184
|
+
{ "startIndex": 14, "endIndex": 23, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'parameter'
|
|
185
|
+
{ "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
186
|
+
{ "startIndex": 24, "endIndex": 31, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'dataset'
|
|
187
|
+
{ "startIndex": 31, "endIndex": 32, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
188
|
+
{ "startIndex": 32, "endIndex": 35, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'for'
|
|
189
|
+
{ "startIndex": 35, "endIndex": 36, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
190
|
+
{ "startIndex": 36, "endIndex": 46, "scopes": ["source.abl", "meta.define.abl", "storage.data.dataset.abl"] }, // 'dsCustomer'
|
|
191
|
+
{ "startIndex": 46, "endIndex": 47, "scopes": ["source.abl", "meta.define.abl", "punctuation.terminator.abl"] } // '.'
|
|
192
|
+
];
|
|
193
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
194
|
+
})
|
|
195
|
+
|
|
196
|
+
describe('', () => {
|
|
197
|
+
let statement = `define output parameter table-handle vTableHandle.`;
|
|
198
|
+
let expectedTokens = [
|
|
199
|
+
{ "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'define'
|
|
200
|
+
{ "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
201
|
+
{ "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'output'
|
|
202
|
+
{ "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
203
|
+
{ "startIndex": 14, "endIndex": 23, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'parameter'
|
|
204
|
+
{ "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
205
|
+
{ "startIndex": 24, "endIndex": 36, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'table-handle'
|
|
206
|
+
{ "startIndex": 36, "endIndex": 37, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
207
|
+
{ "startIndex": 37, "endIndex": 49, "scopes": ["source.abl", "meta.define.abl", "variable.other.abl"] }, // 'vTableHandle'
|
|
208
|
+
{ "startIndex": 49, "endIndex": 50, "scopes": ["source.abl", "meta.define.abl", "punctuation.terminator.abl"] } // '.'
|
|
209
|
+
];
|
|
210
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
211
|
+
})
|
|
212
|
+
|
|
213
|
+
describe('', () => {
|
|
214
|
+
let statement = `define output parameter dataset-handle vDatasetHandle.`;
|
|
215
|
+
let expectedTokens = [
|
|
216
|
+
{ "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'define'
|
|
217
|
+
{ "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
218
|
+
{ "startIndex": 7, "endIndex": 13, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'output'
|
|
219
|
+
{ "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
220
|
+
{ "startIndex": 14, "endIndex": 23, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'parameter'
|
|
221
|
+
{ "startIndex": 23, "endIndex": 24, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
222
|
+
{ "startIndex": 24, "endIndex": 38, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'dataset-handle'
|
|
223
|
+
{ "startIndex": 38, "endIndex": 39, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
224
|
+
{ "startIndex": 39, "endIndex": 53, "scopes": ["source.abl", "meta.define.abl", "variable.other.abl"] }, // 'vDatasetHandle'
|
|
225
|
+
{ "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "meta.define.abl", "punctuation.terminator.abl"] } // '.'
|
|
226
|
+
];
|
|
227
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
228
|
+
})
|
|
@@ -181,4 +181,72 @@ end.`;
|
|
|
181
181
|
]
|
|
182
182
|
];
|
|
183
183
|
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
184
|
+
})
|
|
185
|
+
|
|
186
|
+
describe('', () => {
|
|
187
|
+
let statement = `do vI = 1 to num-entries(vList):
|
|
188
|
+
end.`;
|
|
189
|
+
let expectedTokens = [
|
|
190
|
+
[
|
|
191
|
+
{ "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "meta.block.abl", "keyword.other.abl"] }, // 'do'
|
|
192
|
+
{ "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
|
|
193
|
+
{ "startIndex": 3, "endIndex": 5, "scopes": ["source.abl", "meta.block.abl", "variable.other.abl"] }, // 'vI'
|
|
194
|
+
{ "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
|
|
195
|
+
{ "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.block.abl", "keyword.operator.source.abl"] }, // '='
|
|
196
|
+
{ "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
|
|
197
|
+
{ "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.block.abl", "constant.numeric.source.abl"] }, // '1'
|
|
198
|
+
{ "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
|
|
199
|
+
{ "startIndex": 10, "endIndex": 12, "scopes": ["source.abl", "meta.block.abl", "keyword.other.abl"] }, // 'to'
|
|
200
|
+
{ "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
|
|
201
|
+
{ "startIndex": 13, "endIndex": 24, "scopes": ["source.abl", "meta.block.abl", "meta.function-call.abl", "support.function.abl"] }, // 'num-entries'
|
|
202
|
+
{ "startIndex": 24, "endIndex": 25, "scopes": ["source.abl", "meta.block.abl", "meta.function-call.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
|
|
203
|
+
{ "startIndex": 25, "endIndex": 30, "scopes": ["source.abl", "meta.block.abl", "meta.function-call.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'vList'
|
|
204
|
+
{ "startIndex": 30, "endIndex": 31, "scopes": ["source.abl", "meta.block.abl", "meta.function-call.abl", "meta.brace.round.js"] }, // ')'
|
|
205
|
+
{ "startIndex": 31, "endIndex": 32, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
|
|
206
|
+
],
|
|
207
|
+
[
|
|
208
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
|
|
209
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
210
|
+
]
|
|
211
|
+
];
|
|
212
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
213
|
+
})
|
|
214
|
+
|
|
215
|
+
describe('', () => {
|
|
216
|
+
let statement = `do vI = 1 to objRef:MethodCalledNumEntries(vList):
|
|
217
|
+
run ip_thing.
|
|
218
|
+
end.`;
|
|
219
|
+
let expectedTokens = [
|
|
220
|
+
[
|
|
221
|
+
{ "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "meta.block.abl", "keyword.other.abl"] }, // 'do'
|
|
222
|
+
{ "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
|
|
223
|
+
{ "startIndex": 3, "endIndex": 5, "scopes": ["source.abl", "meta.block.abl", "variable.other.abl"] }, // 'vI'
|
|
224
|
+
{ "startIndex": 5, "endIndex": 6, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
|
|
225
|
+
{ "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.block.abl", "keyword.operator.source.abl"] }, // '='
|
|
226
|
+
{ "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
|
|
227
|
+
{ "startIndex": 8, "endIndex": 9, "scopes": ["source.abl", "meta.block.abl", "constant.numeric.source.abl"] }, // '1'
|
|
228
|
+
{ "startIndex": 9, "endIndex": 10, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
|
|
229
|
+
{ "startIndex": 10, "endIndex": 12, "scopes": ["source.abl", "meta.block.abl", "keyword.other.abl"] }, // 'to'
|
|
230
|
+
{ "startIndex": 12, "endIndex": 13, "scopes": ["source.abl", "meta.block.abl"] }, // ' '
|
|
231
|
+
{ "startIndex": 13, "endIndex": 19, "scopes": ["source.abl", "meta.block.abl", "variable.other.abl"] }, // 'objRef'
|
|
232
|
+
{ "startIndex": 19, "endIndex": 20, "scopes": ["source.abl", "punctuation.separator.colon.abl"] }, // ':'
|
|
233
|
+
{ "startIndex": 20, "endIndex": 42, "scopes": ["source.abl", "entity.name.function.abl"] }, // 'MethodCalledNumEntries'
|
|
234
|
+
{ "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
|
|
235
|
+
{ "startIndex": 43, "endIndex": 48, "scopes": ["source.abl", "meta.function.arguments.abl", "variable.other.abl"] }, // 'vList'
|
|
236
|
+
{ "startIndex": 48, "endIndex": 49, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
|
|
237
|
+
{ "startIndex": 49, "endIndex": 50, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
|
|
238
|
+
],
|
|
239
|
+
[
|
|
240
|
+
{ "startIndex": 0, "endIndex": 2, "scopes": ["source.abl"] }, // ' '
|
|
241
|
+
{ "startIndex": 2, "endIndex": 5, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
|
|
242
|
+
{ "startIndex": 5, "endIndex": 6, "scopes": ["source.abl"] }, // ' '
|
|
243
|
+
{ "startIndex": 6, "endIndex": 14, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'ip_thing'
|
|
244
|
+
{ "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
245
|
+
],
|
|
246
|
+
[
|
|
247
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
|
|
248
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
249
|
+
]
|
|
250
|
+
];
|
|
251
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
184
252
|
})
|
|
@@ -24,7 +24,7 @@ describe('', () => {
|
|
|
24
24
|
{ "startIndex": 11, "endIndex": 12, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
|
|
25
25
|
{ "startIndex": 12, "endIndex": 19, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'dataset'
|
|
26
26
|
{ "startIndex": 19, "endIndex": 20, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
|
|
27
|
-
{ "startIndex": 20, "endIndex": 26, "scopes": ["source.abl", "meta.function.arguments.abl", "storage.data.
|
|
27
|
+
{ "startIndex": 20, "endIndex": 26, "scopes": ["source.abl", "meta.function.arguments.abl", "storage.data.dataset.abl"] }, // 'dsData'
|
|
28
28
|
{ "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
|
|
29
29
|
{ "startIndex": 27, "endIndex": 39, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'by-reference'
|
|
30
30
|
{ "startIndex": 39, "endIndex": 40, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
|
|
@@ -33,3 +33,84 @@ describe('', () => {
|
|
|
33
33
|
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
34
34
|
})
|
|
35
35
|
|
|
36
|
+
describe('', () => {
|
|
37
|
+
let statement = `run Foo(input (dataset dsCustomer:handle)).`;
|
|
38
|
+
let expectedTokens = [
|
|
39
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
|
|
40
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
|
|
41
|
+
{ "startIndex": 4, "endIndex": 7, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'Foo'
|
|
42
|
+
{ "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
|
|
43
|
+
{ "startIndex": 8, "endIndex": 13, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'input'
|
|
44
|
+
{ "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
|
|
45
|
+
{ "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
|
|
46
|
+
{ "startIndex": 15, "endIndex": 22, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'dataset'
|
|
47
|
+
{ "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
|
|
48
|
+
{ "startIndex": 23, "endIndex": 33, "scopes": ["source.abl", "meta.function.arguments.abl", "storage.data.dataset.abl"] }, // 'dsCustomer'
|
|
49
|
+
{ "startIndex": 33, "endIndex": 34, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.colon.abl"] }, // ':'
|
|
50
|
+
{ "startIndex": 34, "endIndex": 40, "scopes": ["source.abl", "meta.function.arguments.abl", "entity.name.function.abl"] }, // 'handle'
|
|
51
|
+
{ "startIndex": 40, "endIndex": 41, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
|
|
52
|
+
{ "startIndex": 41, "endIndex": 42, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
|
|
53
|
+
{ "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
54
|
+
];
|
|
55
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
describe('', () => {
|
|
59
|
+
let statement = `buffer ttCustomer:buffer-copy(buffer Customer:handle).`;
|
|
60
|
+
let expectedTokens = [
|
|
61
|
+
{ "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "keyword.other.abl"] }, // 'buffer'
|
|
62
|
+
{ "startIndex": 6, "endIndex": 7, "scopes": ["source.abl"] }, // ' '
|
|
63
|
+
{ "startIndex": 7, "endIndex": 17, "scopes": ["source.abl", "storage.data.table.abl"] }, // 'ttCustomer'
|
|
64
|
+
{ "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "punctuation.separator.colon.abl"] }, // ':'
|
|
65
|
+
{ "startIndex": 18, "endIndex": 29, "scopes": ["source.abl", "entity.name.function.abl"] }, // 'buffer-copy'
|
|
66
|
+
{ "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
|
|
67
|
+
{ "startIndex": 30, "endIndex": 36, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'buffer'
|
|
68
|
+
{ "startIndex": 36, "endIndex": 37, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
|
|
69
|
+
{ "startIndex": 37, "endIndex": 45, "scopes": ["source.abl", "meta.function.arguments.abl", "storage.data.table.abl"] }, // 'Customer'
|
|
70
|
+
{ "startIndex": 45, "endIndex": 46, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.colon.abl"] }, // ':'
|
|
71
|
+
{ "startIndex": 46, "endIndex": 52, "scopes": ["source.abl", "meta.function.arguments.abl", "entity.name.function.abl"] }, // 'handle'
|
|
72
|
+
{ "startIndex": 52, "endIndex": 53, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
|
|
73
|
+
{ "startIndex": 53, "endIndex": 54, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
74
|
+
];
|
|
75
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
describe('', () => {
|
|
79
|
+
let statement = `run Foo(input buffer Customer:handle).`;
|
|
80
|
+
let expectedTokens = [
|
|
81
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
|
|
82
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
|
|
83
|
+
{ "startIndex": 4, "endIndex": 7, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'Foo'
|
|
84
|
+
{ "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
|
|
85
|
+
{ "startIndex": 8, "endIndex": 13, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'input'
|
|
86
|
+
{ "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
|
|
87
|
+
{ "startIndex": 14, "endIndex": 20, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'buffer'
|
|
88
|
+
{ "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
|
|
89
|
+
{ "startIndex": 21, "endIndex": 29, "scopes": ["source.abl", "meta.function.arguments.abl", "storage.data.table.abl"] }, // 'Customer'
|
|
90
|
+
{ "startIndex": 29, "endIndex": 30, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.colon.abl"] }, // ':'
|
|
91
|
+
{ "startIndex": 30, "endIndex": 36, "scopes": ["source.abl", "meta.function.arguments.abl", "entity.name.function.abl"] }, // 'handle'
|
|
92
|
+
{ "startIndex": 36, "endIndex": 37, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
|
|
93
|
+
{ "startIndex": 37, "endIndex": 38, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
94
|
+
];
|
|
95
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
describe('', () => {
|
|
99
|
+
let statement = `run Foo(input temp-table ttCustomer:handle).`;
|
|
100
|
+
let expectedTokens = [
|
|
101
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'run'
|
|
102
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
|
|
103
|
+
{ "startIndex": 4, "endIndex": 7, "scopes": ["source.abl", "entity.name.procedure.abl"] }, // 'Foo'
|
|
104
|
+
{ "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
|
|
105
|
+
{ "startIndex": 8, "endIndex": 13, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'input'
|
|
106
|
+
{ "startIndex": 13, "endIndex": 14, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
|
|
107
|
+
{ "startIndex": 14, "endIndex": 24, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'temp-table'
|
|
108
|
+
{ "startIndex": 24, "endIndex": 25, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
|
|
109
|
+
{ "startIndex": 25, "endIndex": 35, "scopes": ["source.abl", "meta.function.arguments.abl", "storage.data.table.abl"] }, // 'ttCustomer'
|
|
110
|
+
{ "startIndex": 35, "endIndex": 36, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.colon.abl"] }, // ':'
|
|
111
|
+
{ "startIndex": 36, "endIndex": 42, "scopes": ["source.abl", "meta.function.arguments.abl", "entity.name.function.abl"] }, // 'handle'
|
|
112
|
+
{ "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
|
|
113
|
+
{ "startIndex": 43, "endIndex": 44, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
114
|
+
];
|
|
115
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
116
|
+
})
|
|
@@ -110,3 +110,66 @@ end method.`;
|
|
|
110
110
|
];
|
|
111
111
|
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
112
112
|
})
|
|
113
|
+
|
|
114
|
+
describe('', () => {
|
|
115
|
+
let statement = `for each table transaction:
|
|
116
|
+
oAccessRequestBusinessEntity:SaveChanges(DATASET dsAccessRequest).
|
|
117
|
+
oARBE:SaveChanges(DATASET dsAccessRequest).
|
|
118
|
+
DatasetHelper:ThrowDatasetErrors(DATASET dsAccessRequest:HANDLE).
|
|
119
|
+
end.`;
|
|
120
|
+
let expectedTokens = [
|
|
121
|
+
[
|
|
122
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'for'
|
|
123
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl"] }, // ' '
|
|
124
|
+
{ "startIndex": 4, "endIndex": 8, "scopes": ["source.abl", "keyword.other.abl"] }, // 'each'
|
|
125
|
+
{ "startIndex": 8, "endIndex": 9, "scopes": ["source.abl"] }, // ' '
|
|
126
|
+
{ "startIndex": 9, "endIndex": 14, "scopes": ["source.abl", "storage.data.table.abl"] }, // 'table'
|
|
127
|
+
{ "startIndex": 14, "endIndex": 15, "scopes": ["source.abl"] }, // ' '
|
|
128
|
+
{ "startIndex": 15, "endIndex": 26, "scopes": ["source.abl", "keyword.other.abl"] }, // 'transaction'
|
|
129
|
+
{ "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
|
|
130
|
+
],
|
|
131
|
+
[
|
|
132
|
+
{ "startIndex": 0, "endIndex": 2, "scopes": ["source.abl"] }, // ' '
|
|
133
|
+
{ "startIndex": 2, "endIndex": 30, "scopes": ["source.abl", "variable.other.abl"] }, // 'oAccessRequestBusinessEntity'
|
|
134
|
+
{ "startIndex": 30, "endIndex": 31, "scopes": ["source.abl", "punctuation.separator.colon.abl"] }, // ':'
|
|
135
|
+
{ "startIndex": 31, "endIndex": 42, "scopes": ["source.abl", "entity.name.function.abl"] }, // 'SaveChanges'
|
|
136
|
+
{ "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
|
|
137
|
+
{ "startIndex": 43, "endIndex": 50, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'DATASET'
|
|
138
|
+
{ "startIndex": 50, "endIndex": 51, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
|
|
139
|
+
{ "startIndex": 51, "endIndex": 66, "scopes": ["source.abl", "meta.function.arguments.abl", "storage.data.dataset.abl"] }, // 'dsAccessRequest'
|
|
140
|
+
{ "startIndex": 66, "endIndex": 67, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
|
|
141
|
+
{ "startIndex": 67, "endIndex": 68, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
142
|
+
],
|
|
143
|
+
[
|
|
144
|
+
{ "startIndex": 0, "endIndex": 2, "scopes": ["source.abl"] }, // ' '
|
|
145
|
+
{ "startIndex": 2, "endIndex": 7, "scopes": ["source.abl", "variable.other.abl"] }, // 'oARBE'
|
|
146
|
+
{ "startIndex": 7, "endIndex": 8, "scopes": ["source.abl", "punctuation.separator.colon.abl"] }, // ':'
|
|
147
|
+
{ "startIndex": 8, "endIndex": 19, "scopes": ["source.abl", "entity.name.function.abl"] }, // 'SaveChanges'
|
|
148
|
+
{ "startIndex": 19, "endIndex": 20, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
|
|
149
|
+
{ "startIndex": 20, "endIndex": 27, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'DATASET'
|
|
150
|
+
{ "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
|
|
151
|
+
{ "startIndex": 28, "endIndex": 43, "scopes": ["source.abl", "meta.function.arguments.abl", "storage.data.dataset.abl"] }, // 'dsAccessRequest'
|
|
152
|
+
{ "startIndex": 43, "endIndex": 44, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
|
|
153
|
+
{ "startIndex": 44, "endIndex": 45, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
154
|
+
],
|
|
155
|
+
[
|
|
156
|
+
{ "startIndex": 0, "endIndex": 2, "scopes": ["source.abl"] }, // ' '
|
|
157
|
+
{ "startIndex": 2, "endIndex": 15, "scopes": ["source.abl", "variable.other.abl"] }, // 'DatasetHelper'
|
|
158
|
+
{ "startIndex": 15, "endIndex": 16, "scopes": ["source.abl", "punctuation.separator.colon.abl"] }, // ':'
|
|
159
|
+
{ "startIndex": 16, "endIndex": 34, "scopes": ["source.abl", "entity.name.function.abl"] }, // 'ThrowDatasetErrors'
|
|
160
|
+
{ "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.function.arguments.abl", "meta.brace.round.js"] }, // '('
|
|
161
|
+
{ "startIndex": 35, "endIndex": 42, "scopes": ["source.abl", "meta.function.arguments.abl", "keyword.other.abl"] }, // 'DATASET'
|
|
162
|
+
{ "startIndex": 42, "endIndex": 43, "scopes": ["source.abl", "meta.function.arguments.abl"] }, // ' '
|
|
163
|
+
{ "startIndex": 43, "endIndex": 58, "scopes": ["source.abl", "meta.function.arguments.abl", "storage.data.dataset.abl"] }, // 'dsAccessRequest'
|
|
164
|
+
{ "startIndex": 58, "endIndex": 59, "scopes": ["source.abl", "meta.function.arguments.abl", "punctuation.separator.colon.abl"] }, // ':'
|
|
165
|
+
{ "startIndex": 59, "endIndex": 65, "scopes": ["source.abl", "meta.function.arguments.abl", "entity.name.function.abl"] }, // 'HANDLE'
|
|
166
|
+
{ "startIndex": 65, "endIndex": 66, "scopes": ["source.abl", "meta.brace.round.js"] }, // ')'
|
|
167
|
+
{ "startIndex": 66, "endIndex": 67, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
168
|
+
],
|
|
169
|
+
[
|
|
170
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
|
|
171
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
172
|
+
]
|
|
173
|
+
];
|
|
174
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
175
|
+
})
|
|
@@ -134,7 +134,7 @@ end constructor.`;
|
|
|
134
134
|
{ "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
|
|
135
135
|
{ "startIndex": 65, "endIndex": 72, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'dataset'
|
|
136
136
|
{ "startIndex": 72, "endIndex": 73, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
|
|
137
|
-
{ "startIndex": 73, "endIndex": 79, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.
|
|
137
|
+
{ "startIndex": 73, "endIndex": 79, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.dataset.abl"] }, // 'dsData'
|
|
138
138
|
{ "startIndex": 79, "endIndex": 80, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
|
|
139
139
|
{ "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
|
|
140
140
|
],
|
|
@@ -145,7 +145,7 @@ end method.`;
|
|
|
145
145
|
{ "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
|
|
146
146
|
{ "startIndex": 65, "endIndex": 72, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'dataset'
|
|
147
147
|
{ "startIndex": 72, "endIndex": 73, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
|
|
148
|
-
{ "startIndex": 73, "endIndex": 79, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.
|
|
148
|
+
{ "startIndex": 73, "endIndex": 79, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.dataset.abl"] }, // 'dsData'
|
|
149
149
|
{ "startIndex": 79, "endIndex": 80, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
|
|
150
150
|
{ "startIndex": 80, "endIndex": 81, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
|
|
151
151
|
],
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
const { assert, expect } = require('chai');
|
|
2
|
+
const shared = require('../shared.js');
|
|
3
|
+
|
|
4
|
+
describe('', () => {
|
|
5
|
+
let statement = `&global-define MY-TABLE-NEW "table"`;
|
|
6
|
+
let expectedTokens = [
|
|
7
|
+
{ "startIndex": 0, "endIndex": 14, "scopes": ["source.abl", "meta.preprocessor.define.abl", "keyword.other.abl"] }, // '&global-define'
|
|
8
|
+
{ "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.preprocessor.define.abl"] }, // ' '
|
|
9
|
+
{ "startIndex": 15, "endIndex": 27, "scopes": ["source.abl", "meta.preprocessor.define.abl", "entity.name.function.preprocessor.abl"] }, // 'MY-TABLE-NEW'
|
|
10
|
+
{ "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.preprocessor.define.abl"] }, // ' '
|
|
11
|
+
{ "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.preprocessor.define.abl", "string.double.complex.abl", "punctuation.definition.string.begin.abl"] }, // '"'
|
|
12
|
+
{ "startIndex": 29, "endIndex": 34, "scopes": ["source.abl", "meta.preprocessor.define.abl", "string.double.complex.abl"] }, // 'table'
|
|
13
|
+
{ "startIndex": 34, "endIndex": 35, "scopes": ["source.abl", "meta.preprocessor.define.abl", "string.double.complex.abl", "punctuation.definition.string.end.abl"] } // '"'
|
|
14
|
+
];
|
|
15
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
describe('', () => {
|
|
19
|
+
let statement = `&global-define TEST-NEW-2 "b"`;
|
|
20
|
+
let expectedTokens = [
|
|
21
|
+
{ "startIndex": 0, "endIndex": 14, "scopes": ["source.abl", "meta.preprocessor.define.abl", "keyword.other.abl"] }, // '&global-define'
|
|
22
|
+
{ "startIndex": 14, "endIndex": 15, "scopes": ["source.abl", "meta.preprocessor.define.abl"] }, // ' '
|
|
23
|
+
{ "startIndex": 15, "endIndex": 25, "scopes": ["source.abl", "meta.preprocessor.define.abl", "entity.name.function.preprocessor.abl"] }, // 'TEST-NEW-2'
|
|
24
|
+
{ "startIndex": 25, "endIndex": 26, "scopes": ["source.abl", "meta.preprocessor.define.abl"] }, // ' '
|
|
25
|
+
{ "startIndex": 26, "endIndex": 27, "scopes": ["source.abl", "meta.preprocessor.define.abl", "string.double.complex.abl", "punctuation.definition.string.begin.abl"] }, // '"'
|
|
26
|
+
{ "startIndex": 27, "endIndex": 28, "scopes": ["source.abl", "meta.preprocessor.define.abl", "string.double.complex.abl"] }, // 'b'
|
|
27
|
+
{ "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "meta.preprocessor.define.abl", "string.double.complex.abl", "punctuation.definition.string.end.abl"] } // '"'
|
|
28
|
+
];
|
|
29
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
describe('', () => {
|
|
33
|
+
let statement = `define variable v as character initial {&MY-TABLE-NEW} no-undo.`;
|
|
34
|
+
let expectedTokens = [
|
|
35
|
+
{ "startIndex": 0, "endIndex": 6, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'define'
|
|
36
|
+
{ "startIndex": 6, "endIndex": 7, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
37
|
+
{ "startIndex": 7, "endIndex": 15, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'variable'
|
|
38
|
+
{ "startIndex": 15, "endIndex": 16, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
39
|
+
{ "startIndex": 16, "endIndex": 17, "scopes": ["source.abl", "meta.define.abl", "variable.other.abl"] }, // 'v'
|
|
40
|
+
{ "startIndex": 17, "endIndex": 18, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
41
|
+
{ "startIndex": 18, "endIndex": 20, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'as'
|
|
42
|
+
{ "startIndex": 20, "endIndex": 21, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
43
|
+
{ "startIndex": 21, "endIndex": 30, "scopes": ["source.abl", "meta.define.abl", "storage.type.abl"] }, // 'character'
|
|
44
|
+
{ "startIndex": 30, "endIndex": 31, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
45
|
+
{ "startIndex": 31, "endIndex": 38, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'initial'
|
|
46
|
+
{ "startIndex": 38, "endIndex": 39, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
47
|
+
{ "startIndex": 39, "endIndex": 54, "scopes": ["source.abl", "meta.define.abl", "storage.type.function.abl"] }, // '{&MY-TABLE-NEW}'
|
|
48
|
+
{ "startIndex": 54, "endIndex": 55, "scopes": ["source.abl", "meta.define.abl"] }, // ' '
|
|
49
|
+
{ "startIndex": 55, "endIndex": 62, "scopes": ["source.abl", "meta.define.abl", "keyword.other.abl"] }, // 'no-undo'
|
|
50
|
+
{ "startIndex": 62, "endIndex": 63, "scopes": ["source.abl", "meta.define.abl", "punctuation.terminator.abl"] } // '.'
|
|
51
|
+
];
|
|
52
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
describe('', () => {
|
|
56
|
+
let statement = `if {&MY-TABLE-NEW} eq "table" then
|
|
57
|
+
do:
|
|
58
|
+
end.`;
|
|
59
|
+
let expectedTokens = [
|
|
60
|
+
[
|
|
61
|
+
{ "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "keyword.other.abl"] }, // 'if'
|
|
62
|
+
{ "startIndex": 2, "endIndex": 3, "scopes": ["source.abl"] }, // ' '
|
|
63
|
+
{ "startIndex": 3, "endIndex": 18, "scopes": ["source.abl", "storage.type.function.abl"] }, // '{&MY-TABLE-NEW}'
|
|
64
|
+
{ "startIndex": 18, "endIndex": 19, "scopes": ["source.abl"] }, // ' '
|
|
65
|
+
{ "startIndex": 19, "endIndex": 21, "scopes": ["source.abl", "keyword.operator.source.abl"] }, // 'eq'
|
|
66
|
+
{ "startIndex": 21, "endIndex": 22, "scopes": ["source.abl"] }, // ' '
|
|
67
|
+
{ "startIndex": 22, "endIndex": 23, "scopes": ["source.abl", "string.double.complex.abl", "punctuation.definition.string.begin.abl"] }, // '"'
|
|
68
|
+
{ "startIndex": 23, "endIndex": 28, "scopes": ["source.abl", "string.double.complex.abl"] }, // 'table'
|
|
69
|
+
{ "startIndex": 28, "endIndex": 29, "scopes": ["source.abl", "string.double.complex.abl", "punctuation.definition.string.end.abl"] }, // '"'
|
|
70
|
+
{ "startIndex": 29, "endIndex": 30, "scopes": ["source.abl"] }, // ' '
|
|
71
|
+
{ "startIndex": 30, "endIndex": 34, "scopes": ["source.abl", "keyword.other.abl"] } // 'then'
|
|
72
|
+
],
|
|
73
|
+
[
|
|
74
|
+
{ "startIndex": 0, "endIndex": 2, "scopes": ["source.abl", "meta.block.abl", "keyword.other.abl"] }, // 'do'
|
|
75
|
+
{ "startIndex": 2, "endIndex": 3, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
|
|
76
|
+
],
|
|
77
|
+
[
|
|
78
|
+
{ "startIndex": 0, "endIndex": 3, "scopes": ["source.abl", "keyword.other.abl"] }, // 'end'
|
|
79
|
+
{ "startIndex": 3, "endIndex": 4, "scopes": ["source.abl", "punctuation.terminator.abl"] } // '.'
|
|
80
|
+
]
|
|
81
|
+
];
|
|
82
|
+
shared.itShouldMatchExpectedScopes(statement, expectedTokens);
|
|
83
|
+
})
|
|
@@ -829,7 +829,7 @@ describe('', () => {
|
|
|
829
829
|
{ "startIndex": 56, "endIndex": 57, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
|
|
830
830
|
{ "startIndex": 57, "endIndex": 64, "scopes": ["source.abl", "meta.define.method.abl", "keyword.other.abl"] }, // 'dataset'
|
|
831
831
|
{ "startIndex": 64, "endIndex": 65, "scopes": ["source.abl", "meta.define.method.abl"] }, // ' '
|
|
832
|
-
{ "startIndex": 65, "endIndex": 75, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.
|
|
832
|
+
{ "startIndex": 65, "endIndex": 75, "scopes": ["source.abl", "meta.define.method.abl", "storage.data.dataset.abl"] }, // 'dsCustomer'
|
|
833
833
|
{ "startIndex": 75, "endIndex": 76, "scopes": ["source.abl", "meta.define.method.abl", "meta.brace.round.js"] }, // ')'
|
|
834
834
|
{ "startIndex": 76, "endIndex": 77, "scopes": ["source.abl", "punctuation.terminator.abl"] } // ':'
|
|
835
835
|
]
|