abl-tmlanguage 1.3.8 → 1.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +73 -39
  3. package/abl.tmLanguage.json +812 -580
  4. package/index.js +110 -71
  5. package/package.json +6 -6
  6. package/spec/annotations/annotation.spec.js +8 -2
  7. package/spec/array-extent/issue#5.spec.js +9 -9
  8. package/spec/blocks/block-labels.spec.js +3 -3
  9. package/spec/blocks/block-options.spec.js +18 -0
  10. package/spec/comments/comment-in-block-statement.spec.js +1 -1
  11. package/spec/comments/spacious-comment.spec.js +73 -0
  12. package/spec/create-widgets/create-window.spec.js +221 -0
  13. package/spec/db-table-and-field/create-alias.spec.js +101 -0
  14. package/spec/db-table-and-field/create-record.spec.js +43 -0
  15. package/spec/db-table-and-field/find-record.spec.js +91 -0
  16. package/spec/db-table-and-field/new-record.spec.js +137 -0
  17. package/spec/define/define-browse.spec.js +454 -0
  18. package/spec/define/define-query.spec.js +101 -0
  19. package/spec/define-variable/extent.spec.js +6 -6
  20. package/spec/define-variable/var-statement.spec.js +375 -0
  21. package/spec/include/include-file-name.spec.js +224 -0
  22. package/spec/include/vscode-abl-issue#77.spec.js +2 -2
  23. package/spec/input-output/input-from.spec.js +501 -0
  24. package/spec/input-output/output-to.spec.js +456 -0
  25. package/spec/method-attribute-property-call/get-set-method-name.spec.js +57 -12
  26. package/spec/method-attribute-property-call/method-call.spec.js +93 -0
  27. package/spec/method-definition/constructor.spec.js +4 -4
  28. package/spec/method-definition/method.spec.js +227 -6
  29. package/spec/misc-statements/array-for.spec.js +21 -0
  30. package/spec/misc-statements/class-in-var-name.spec.js +4 -4
  31. package/spec/misc-statements/guid.spec.js +97 -0
  32. package/spec/misc-statements/if-then.spec.js +118 -1
  33. package/spec/preprocesors/proparse-preprocessor.spec.js +66 -0
  34. package/spec/procedure-definition/vscode-abl-issue#26.spec.js +6 -6
  35. package/spec/run-statement/run-statement.spec.js +128 -3
  36. package/spec/type-name/argument.spec.js +10 -11
  37. package/spec/type-name/cast.spec.js +8 -10
  38. package/spec/type-name/define-variable.spec.js +28 -146
  39. package/spec/type-name/get-class.spec.js +18 -18
  40. package/spec/type-name/new.spec.js +70 -10
  41. package/spec/type-name/parameter-as.spec.js +66 -21
package/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ 1.3.10
2
+ ======
3
+ - Too many changes to be listed here...
4
+
1
5
  1.2.0
2
6
  =====
3
7
  - Added support for classes
package/README.md CHANGED
@@ -64,47 +64,81 @@ When `npm run build` is executed, a file called grammer.json is created, which c
64
64
 
65
65
  # Scopes
66
66
 
67
- 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 .
67
+ 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 and https://www.sublimetext.com/docs/scope_naming.html .
68
68
 
69
69
  | Scope Name | Used for/by |
70
70
  | ------------- | ------------- |
71
- |comment.block.source.abl | Everything between `/*` and `*/` |
72
- |comment.line.double-slash.abl | Everything in a `//` comment, incl slashes |
73
- |comment.preprocessor.analyze-suspend.abl | `&analyze-suspend`, `&analyze-resume` |
74
- |constant.character.escape.abl | `~` and the next char |
75
- |constant.language.abl | `today`, `now`, `true`, `false`, `yes`, `no`, `?` (unknown value) |
76
- |constant.language.source.abl | `99/99/9999` (or similar) when used as a format clause |
77
- |constant.numeric.source.abl | 0x00-0xFF, 0-9 |
78
- |entity.name.function.abl | Method call, property call, method name, property name, handle attributes, handle methods, event names |
79
- |entity.name.function.preprocessor.abl | `&scoped-define`, `&global-define` |
80
- |entity.name.include.abl | Include file names |
81
- |entity.name.package.abl | Package names for `USING` |
82
- |entity.name.procedure.abl | Internal and external procedure names |
83
- |entity.name.tag.abl | Annotation names |
84
- |entity.name.type.abl | Class/interface/enum names |
85
- |entity.name.type.generic.abl | Generic type names |
86
- |entity.other.attribute-name.abl | Annotation attribute names |
87
- |keyword.operator.source.abl | `contains`, `begins`, `matches`, `eq`, `le`, `lt`, `ge`, `gt`, `ne`, `<=`, `<>`, `>=`, `=`, `+`, `-`, `/`, `<`, `>`, `*`, `+=`, `-=`, `/=`, `*=` |
88
- |keyword.other.abl | Any ABL keyword (incl those covered by other scopes like support.function.abl and entity.name.function.abl) |
89
- |punctuation.definition.string.begin.abl | Start of a quoted string |
90
- |punctuation.definition.string.end.abl | End of a quoted string |
91
- |punctuation.section.abl | `{` and `}` |
92
- |punctuation.separator.comma.abl | `,` |
93
- |punctuation.separator.period.abl | `.` |
94
- |punctuation.separator.colon.abl | `:` |
95
- |punctuation.terminator.abl | `.` and `:` |
96
- |storage.data.dataset.abl | Statically-defined dataset names, data-relation names |
97
- |storage.data.table.abl | (Temp-)Table names, field names, index names |
98
- |storage.type.abl | Primitive datatypes |
99
- |storage.type.function.abl | ABL preprocessors, `defined` keyword |
100
- |string.double.complex.abl | String in `"` quotes |
101
- |string.single.complex.abl | String in `'` quotes |
102
- |support.function.abl | `opsys`, `proversion`, ABL functions (eg `BASE64-ENCODE`) |
103
- |support.other.abl | Translation attributes `:L`, `:R`, `:T`, `:C`, `:U` |
104
- |support.other.argument.abl | `&<name\|number>` arguments in includes, preprocessor values |
105
- |variable.language.abl | ABL system handles (eg `session` or `this-object`) |
106
- |variable.other.abl | Variable names |
107
- |variable.parameter.abl | Parameter names in method, function, procedure definition |
71
+ |comment.block.source.abl | Everything between `/*` and `*/` |
72
+ |comment.line.double-slash.abl | Everything in a `//` comment, incl slashes |
73
+ |comment.preprocessor.analyze-suspend.abl | `&analyze-suspend`, `&analyze-resume` |
74
+ |constant.character.escape.abl | `~` and the next char |
75
+ |constant.language.abl | `today`, `now`, `true`, `false`, `yes`, `no`, `?` (unknown value) |
76
+ |constant.language.source.abl | `99/99/9999` (or similar) when used as a format clause |
77
+ |constant.numeric.source.abl | 0x00-0xFF, 0-9 |
78
+ |entity.name.function.abl | Method call, property call, method name, property name, handle attributes, handle methods, event names |
79
+ |entity.name.function.preprocessor.abl | `&scoped-define`, `&global-define` |
80
+ |entity.name.include.abl | Include file names |
81
+ |entity.name.label.abl | Block label names |
82
+ |entity.name.package.abl | Package names for `using` |
83
+ |entity.name.procedure.abl | Internal and external procedure names |
84
+ |entity.name.tag.abl | Annotation names |
85
+ |entity.name.type.abl | Class/interface/enum names |
86
+ |entity.name.type.generic.abl | Generic type names |
87
+ |entity.other.attribute-name.abl | Annotation attribute names |
88
+ |keyword.operator.source.abl | `contains`, `begins`, `matches`, `eq`, `le`, `lt`, `ge`, `gt`, `ne`, `<=`, `<>`, `>=`, `=`, `+`, `-`, `/`, `<`, `>`, `*`, `+=`, `-=`, `/=`, `*=` |
89
+ |keyword.other.abl | Any ABL keyword (incl those covered by other scopes like `support.function.abl` and `entity.name.function.abl`) |
90
+ |punctuation.definition.bracket.square.begin.abl | `[` used for array arguments |
91
+ |punctuation.definition.bracket.square.end.abl | `]` used for array arguments |
92
+ |punctuation.definition.generic.begin.abl | `<` used for generic type arguments |
93
+ |punctuation.definition.generic.end.abl | `>` used for generic type arguments |
94
+ |punctuation.definition.string.begin.abl | Start of a quoted string |
95
+ |punctuation.definition.string.end.abl | End of a quoted string |
96
+ |punctuation.section.abl | `{` and `}` |
97
+ |punctuation.separator.comma.abl | `,` |
98
+ |punctuation.separator.period.abl | `.` |
99
+ |punctuation.separator.colon.abl | `:` |
100
+ |punctuation.terminator.abl | `.` and `:` |
101
+ |storage.data.database.abl | Statically-defined database names, e.g.in the `create alias` statement |
102
+ |storage.data.dataset.abl | Statically-defined dataset names, data-relation names |
103
+ |storage.data.table.abl | (Temp-)Table names, field names, index names |
104
+ |storage.other.opsys-device.abl | Files and other operating system devices |
105
+ |storage.type.abl | Primitive datatypes |
106
+ |storage.type.function.abl | ABL preprocessors, `defined` keyword |
107
+ |string.double.complex.abl | String in `"` quotes |
108
+ |string.single.complex.abl | String in `'` quotes |
109
+ |support.function.abl | `opsys`, `proversion`, ABL functions (eg `base64-encode`) |
110
+ |support.other.abl | Translation attributes `:L`, `:R`, `:T`, `:C`, `:U` |
111
+ |support.other.argument.abl | `&<name\|number>` arguments in includes, preprocessor values |
112
+ |variable.language.abl | ABL system handles (eg `session` or `this-object`) |
113
+ |variable.other.abl | Variable names |
114
+ |variable.parameter.abl | Parameter names in method, function, procedure definition |
115
+
116
+ There are also a number of 'meta' scopes that usually cover multiple other scopes.
117
+ | Scope Name | Used for/by |
118
+ | ------------- | ------------- |
119
+ |meta.array.literal.abl | Literal values in an array |
120
+ |meta.block.abl | A block statement like `do`, `repeat` and ` finally |
121
+ |meta.brace.round.js | `(` and `)` |
122
+ |meta.declaration.annotation.abl | An annotation from the `@` to the `.` |
123
+ |meta.define.abl | An entire `define` statement |
124
+ |meta.define.class.abl | A class definition, from the `class` keyword to its closing `:` |
125
+ |meta.define.enum.abl | An enum definition, from the `enum` keyword to its closing `:` |
126
+ |meta.define.function.abl | A user-defined function definition, from the `function` keyword to its closing `:` |
127
+ |meta.define.interface.abl | An interface definition, from the `interface` keyword to its closing `:` |
128
+ |meta.define.method.abl | A method, constructor or destructor definition, from the `method`keyword to the ending `:` or `.` Includes parameter definions, if any. |
129
+ |meta.define.parameter.abl | An individual parameter definition |
130
+ |meta.define.stream.abl | A stream definition |
131
+ |meta.define-type.implements.abl | The type names that a type implements and/or inherits |
132
+ |meta.function.arguments.abl | Captures what's between ( and ) when calling a function, excluding the braces |
133
+ |meta.function-call.abl | The name of an ABL function, including `get-class`, `type-of` and `cast` |
134
+ |meta.function.parameters | Parameter definitions |
135
+ |meta.generic.abl | Generic type names |
136
+ |meta.include.abl | Include file references, from `{` to `}` |
137
+ |meta.include.argument.abl | Include argument references like `&arg` and `&arg=` |
138
+ |meta.preprocessor.define.abl | Preprocessor definitions for `&global-define` and `&scoped-define` |
139
+ |meta.procedure.abl | An internal procedure definition, from the `procedure` keyword to its closing `:` or `.` |
140
+ |meta.statements.abl | All ABL statmements |
141
+ |meta.using.abl | A `using` definition |
108
142
 
109
143
  # License
110
- MIT
144
+ MIT