abl-tmlanguage 1.2.0 → 1.3.1

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 (67) hide show
  1. package/README.md +43 -1
  2. package/abl.tmLanguage.json +1461 -474
  3. package/package.json +1 -1
  4. package/spec/annotations/annotation.spec.js +232 -0
  5. package/spec/blocks/finally-blocks.spec.js +90 -0
  6. package/spec/blocks/on-quit.spec.js +59 -0
  7. package/spec/comments/comment-in-block-statement.spec.js +142 -0
  8. package/spec/comments/comment-in-function-args.spec.js +45 -0
  9. package/spec/comments/vscode-abl-issue#127.spec.js +165 -0
  10. package/spec/db-table-and-field/field-in-function.spec.js +58 -0
  11. package/spec/db-table-and-field/fields-except.spec.js +69 -0
  12. package/spec/db-table-and-field/foreach.spec.js +588 -0
  13. package/spec/db-table-and-field/issue#88.spec.js +120 -0
  14. package/spec/define-buffer/create-buffer.spec.js +110 -0
  15. package/spec/define-enum/type-name.spec.js +200 -0
  16. package/spec/define-event/simple-single-line.spec.js +61 -0
  17. package/spec/define-parameter/simple-single-line.spec.js +40 -0
  18. package/spec/define-property/property-getter.spec.js +165 -0
  19. package/spec/define-stream/simple-single-line.spec.js +3 -4
  20. package/spec/define-temp-table/define-dataset.spec.js +21 -0
  21. package/spec/define-temp-table/define-index.spec.js +272 -0
  22. package/spec/define-variable/simple-single-line.spec.js +81 -0
  23. package/spec/do/do-blocks.spec.js +121 -29
  24. package/spec/do/issue#3.spec.js +5 -3
  25. package/spec/do/stop-after.spec.js +79 -0
  26. package/spec/function-call/nested-functions.spec.js +246 -0
  27. package/spec/function-call/pass-table.spec.js +35 -0
  28. package/spec/function-call/set-size.spec.js +19 -0
  29. package/spec/function-call/vscode-abl-issue#19.spec.js +6 -6
  30. package/spec/include/abl-tmlanguage-issues#5.spec.js +40 -57
  31. package/spec/include/unnamed-arguments.spec.js +39 -0
  32. package/spec/include/vscode-abl-issue#45.spec.js +2 -2
  33. package/spec/include/vscode-abl-issue#77.spec.js +129 -0
  34. package/spec/include/vscode-abl-issue#80.spec.js +33 -19
  35. package/spec/method-attribute-property-call/abl-method-attribute-call.spec.js +99 -0
  36. package/spec/method-attribute-property-call/connected-method.spec.js +30 -0
  37. package/spec/method-attribute-property-call/get-set-method-name.spec.js +96 -0
  38. package/spec/method-attribute-property-call/method-call.spec.js +112 -0
  39. package/spec/method-attribute-property-call/unqualified-method-call.spec.js +42 -0
  40. package/spec/method-definition/constructor.spec.js +9 -9
  41. package/spec/method-definition/method.spec.js +139 -4
  42. package/spec/misc-statements/case-statement.spec.js +96 -0
  43. package/spec/misc-statements/copy-lob.spec.js +137 -0
  44. package/spec/misc-statements/def-in-name.spec.js +20 -0
  45. package/spec/misc-statements/event-subscribe.spec.js +309 -0
  46. package/spec/misc-statements/if-then.spec.js +212 -0
  47. package/spec/misc-statements/release.spec.js +42 -0
  48. package/spec/misc-statements/return-statement.spec.js +53 -0
  49. package/spec/operators/operators.spec.js +78 -0
  50. package/spec/procedure-definition/empty-proc.spec.js +107 -1
  51. package/spec/procedure-definition/vscode-abl-issue#22.spec.js +1 -1
  52. package/spec/procedure-definition/vscode-abl-issue#26.spec.js +2 -2
  53. package/spec/procedure-definition/vscode-abl-issue#62.spec.js +2 -2
  54. package/spec/run-statement/run-statement.spec.js +162 -0
  55. package/spec/strings/translation-attribute.spec.js +52 -0
  56. package/spec/strings/vscode-abl-issue#11.spec.js +12 -13
  57. package/spec/strings/vscode-abl-issue#28.spec.js +1 -1
  58. package/spec/type-name/argument.spec.js +3 -3
  59. package/spec/type-name/cast.spec.js +3 -3
  60. package/spec/type-name/define-class.spec.js +67 -70
  61. package/spec/type-name/define-property.spec.js +48 -106
  62. package/spec/type-name/define-variable-property.spec.js +40 -40
  63. package/spec/type-name/get-class.spec.js +18 -18
  64. package/spec/type-name/new.spec.js +2 -3
  65. package/spec/type-name/parameter-as.spec.js +68 -22
  66. package/spec/type-name/type-name.spec.js +879 -0
  67. package/spec/type-name/type-name-spec.js +0 -587
package/README.md CHANGED
@@ -53,11 +53,53 @@ 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 use the [vscode-textmate](https://www.npmjs.com/package/vscode-textmate) package to tokenize and test the grammar.
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, event names |
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.dataset.abl | Statically-defined dataset names |
92
+ |storage.data.table.abl | (Temp-)Table names, field names, index names |
93
+ |storage.type.abl | Primitive datatypes |
94
+ |storage.type.function.abl | ABL preprocessors, `defined` keyword |
95
+ |string.double.complex.abl | String in `"` quotes |
96
+ |string.single.complex.abl | String in `'` quotes |
97
+ |support.function.abl | `opsys`, `proversion`, ABL functions (eg `BASE64-ENCODE`) |
98
+ |support.other.abl | `:L`, `:R`, `:T`, `:C`, `:U` |
99
+ |support.other.argument.abl | `&<name\|number>` arguments in includes, preprocessor values |
100
+ |variable.language.abl | ABL system handles (eg `session` or `this-object`) |
101
+ |variable.other.abl | Variable names |
102
+ |variable.parameter.abl | Parameter names in method, function, procedure definition |
103
+
62
104
  # License
63
105
  MIT