abl-tmlanguage 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -1
- package/abl.tmLanguage.json +1091 -307
- package/package.json +1 -1
- package/spec/annotations/annotation.spec.js +232 -0
- package/spec/blocks/finally-blocks.spec.js +90 -0
- package/spec/blocks/on-quit.spec.js +59 -0
- package/spec/comments/vscode-abl-issue#127.spec.js +165 -0
- package/spec/db-table-and-field/fields-except.spec.js +69 -0
- package/spec/db-table-and-field/foreach.spec.js +588 -0
- package/spec/db-table-and-field/issue#88.spec.js +120 -0
- package/spec/define-buffer/create-buffer.spec.js +110 -0
- package/spec/define-parameter/simple-single-line.spec.js +40 -0
- package/spec/define-temp-table/define-index.spec.js +138 -0
- package/spec/define-variable/simple-single-line.spec.js +81 -0
- package/spec/do/do-blocks.spec.js +139 -4
- package/spec/do/issue#3.spec.js +4 -2
- package/spec/function-call/nested-functions.spec.js +128 -0
- package/spec/function-call/vscode-abl-issue#19.spec.js +3 -3
- package/spec/include/abl-tmlanguage-issues#5.spec.js +40 -57
- package/spec/include/vscode-abl-issue#45.spec.js +2 -2
- package/spec/include/vscode-abl-issue#77.spec.js +129 -0
- package/spec/include/vscode-abl-issue#80.spec.js +32 -19
- package/spec/method-attribute-property-call/abl-method-attribute-call.spec.js +99 -0
- package/spec/method-attribute-property-call/connected-method.spec.js +30 -0
- package/spec/method-attribute-property-call/get-set-method-name.spec.js +96 -0
- package/spec/method-attribute-property-call/method-call.spec.js +112 -0
- package/spec/method-definition/constructor.spec.js +9 -9
- package/spec/method-definition/method.spec.js +139 -4
- package/spec/misc-statements/case-statement.spec.js +96 -0
- package/spec/misc-statements/copy-lob.spec.js +137 -0
- package/spec/misc-statements/if-then.spec.js +170 -0
- package/spec/misc-statements/return-statement.spec.js +53 -0
- package/spec/operators/operators.spec.js +78 -0
- package/spec/procedure-definition/empty-proc.spec.js +81 -0
- package/spec/procedure-definition/vscode-abl-issue#62.spec.js +1 -1
- package/spec/run-statement/run-statement.spec.js +162 -0
- package/spec/strings/translation-attribute.spec.js +52 -0
- package/spec/strings/vscode-abl-issue#28.spec.js +1 -1
- package/spec/type-name/argument.spec.js +1 -1
- package/spec/type-name/define-class.spec.js +67 -70
- package/spec/type-name/define-property.spec.js +1 -1
- package/spec/type-name/define-variable-property.spec.js +1 -1
- package/spec/type-name/get-class.spec.js +18 -18
- package/spec/type-name/parameter-as.spec.js +22 -22
- package/spec/type-name/type-name.spec.js +879 -0
- package/spec/type-name/type-name-spec.js +0 -587
package/README.md
CHANGED
|
@@ -53,11 +53,52 @@ If you prefer the plist format, or the YAML one, there is an extension for VSCod
|
|
|
53
53
|
Note: I plan on using the YAML syntax (even more compact and readable) but it needs a build step as VSCode does not handle YAML natively.
|
|
54
54
|
|
|
55
55
|
## Tokenize
|
|
56
|
-
This project
|
|
56
|
+
This project uses the [vscode-textmate](https://www.npmjs.com/package/vscode-textmate) package to tokenize and test the grammar.
|
|
57
57
|
|
|
58
58
|
## Keywords
|
|
59
59
|
Part of this grammar is generated from a keyword list file.
|
|
60
60
|
See [index.js].
|
|
61
61
|
|
|
62
|
+
# Scopes
|
|
63
|
+
|
|
64
|
+
The ABL-specific scopes produced by the ABL grammer listed in the table below. The scope names are largely based on the naming conventions at https://macromates.com/manual/en/language_grammars#language_rules .
|
|
65
|
+
|
|
66
|
+
| Scope Name | Used for/by |
|
|
67
|
+
| ------------- | ------------- |
|
|
68
|
+
|comment.block.source.abl | Everything between `/*` and `*/` |
|
|
69
|
+
|comment.line.double-slash.abl | Everything in a `//` comment, incl slashes |
|
|
70
|
+
|comment.preprocessor.analyze-suspend.abl | `&analyze-suspend`, `&analyze-resume` |
|
|
71
|
+
|constant.character.escape.abl | `~` and the next char |
|
|
72
|
+
|constant.language.abl | `today`, `now`, `true`, `false`, `yes`, `no`, `?` (unknown value) |
|
|
73
|
+
|constant.language.source.abl | `99/99/9999` (or similar) when used as a format clause |
|
|
74
|
+
|constant.numeric.source.abl | 0x00-0xFF, 0-9 |
|
|
75
|
+
|entity.name.function.abl | Method call, property call, procedure name, method name, property name, handle attributes, handle methods |
|
|
76
|
+
|entity.name.function.preprocessor.abl | `&scoped-define`, `&global-define` |
|
|
77
|
+
|entity.name.package.abl | Package names for `USING` |
|
|
78
|
+
|entity.name.tag.abl | Annotation names |
|
|
79
|
+
|entity.name.type.abl | Class/interface/enum names |
|
|
80
|
+
|entity.name.type.generic.abl | Generic type names |
|
|
81
|
+
|entity.other.attribute-name.abl | Annotation attribute names |
|
|
82
|
+
|keyword.operator.source.abl | `contains`, `begins`, `matches`, `eq`, `le`, `lt`, `ge`, `gt`, `ne`, `<=`, `<>`, `>=`, `=`, `+`, `-`, `/`, `<`, `>`, `*` |
|
|
83
|
+
|keyword.other.abl | Any ABL keyword (incl those covered by other scopes) |
|
|
84
|
+
|punctuation.definition.string.begin.abl | Start of a quoted string |
|
|
85
|
+
|punctuation.definition.string.end.abl | End of a quoted string |
|
|
86
|
+
|punctuation.section.abl | `{` and `}` |
|
|
87
|
+
|punctuation.separator.comma.abl | `,` |
|
|
88
|
+
|punctuation.separator.period.abl | `.` |
|
|
89
|
+
|punctuation.separator.colon.abl | `:` |
|
|
90
|
+
|punctuation.terminator.abl | `.` and `:` |
|
|
91
|
+
|storage.data.table.abl | (Temp-)Table names, field names, index names |
|
|
92
|
+
|storage.type.abl | Primitive datatypes |
|
|
93
|
+
|storage.type.function.abl | ABL preprocessors, `defined` keyword |
|
|
94
|
+
|string.double.complex.abl | String in `"` quotes |
|
|
95
|
+
|string.single.complex.abl | String in `'` quotes |
|
|
96
|
+
|support.function.abl | `opsys`, `proversion`, ABL functions (eg `BASE64-ENCODE`) |
|
|
97
|
+
|support.other.abl | `:L`, `:R`, `:T`, `:C`, `:U` |
|
|
98
|
+
|support.other.argument.abl | `&<name\|number>` arguments in includes, preprocessor values |
|
|
99
|
+
|variable.language.abl | ABL system handles (eg `session` or `this-object`) |
|
|
100
|
+
|variable.other.abl | Variable names |
|
|
101
|
+
|variable.parameter.abl | Parameter names in method, function, procedure definition |
|
|
102
|
+
|
|
62
103
|
# License
|
|
63
104
|
MIT
|