github-linguist 9.2.0 → 9.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.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/bin/github-linguist +23 -4
  3. data/grammars/injection.interpolated-ruby.json +1 -0
  4. data/grammars/injections.etc.json +1 -1
  5. data/grammars/inline.edgeql.json +1 -1
  6. data/grammars/markdown.move.codeblock.json +1 -1
  7. data/grammars/source.abl.json +1 -1
  8. data/grammars/source.ash.json +1 -0
  9. data/grammars/source.ats.json +1 -1
  10. data/grammars/source.bru.json +1 -0
  11. data/grammars/source.c++.json +1 -1
  12. data/grammars/source.c.json +1 -1
  13. data/grammars/source.c.linker.json +1 -1
  14. data/grammars/source.c3.json +1 -0
  15. data/grammars/source.cmake.json +1 -1
  16. data/grammars/source.cmakecache.json +1 -1
  17. data/grammars/source.cobol.json +1 -1
  18. data/grammars/source.cooklang.json +1 -0
  19. data/grammars/source.cs.json +1 -1
  20. data/grammars/source.curlrc.json +1 -1
  21. data/grammars/source.dotenv.json +1 -1
  22. data/grammars/source.edgeql.json +1 -1
  23. data/grammars/source.erlang.json +1 -1
  24. data/grammars/source.flix.json +1 -0
  25. data/grammars/source.fsharp.json +1 -1
  26. data/grammars/source.gdscript.json +1 -1
  27. data/grammars/source.gitignore.json +1 -1
  28. data/grammars/source.harbour.json +1 -1
  29. data/grammars/source.httpspec.json +1 -1
  30. data/grammars/source.hx.json +1 -1
  31. data/grammars/source.ilecobol.json +1 -1
  32. data/grammars/source.inputrc.json +1 -1
  33. data/grammars/source.jai.json +1 -1
  34. data/grammars/source.jq.json +1 -1
  35. data/grammars/source.json.comments.json +1 -1
  36. data/grammars/source.julia.json +1 -1
  37. data/grammars/source.lean4.json +1 -1
  38. data/grammars/source.luau.json +1 -1
  39. data/grammars/source.mermaid.flowchart.json +1 -1
  40. data/grammars/source.mermaid.gantt.json +1 -1
  41. data/grammars/source.mermaid.json +1 -1
  42. data/grammars/source.mermaid.pie-chart.json +1 -1
  43. data/grammars/source.mermaid.quad-chart.json +1 -0
  44. data/grammars/source.mermaid.sankey.json +1 -0
  45. data/grammars/source.mermaid.timeline.json +1 -0
  46. data/grammars/source.mermaid.user-journey.json +1 -1
  47. data/grammars/source.mermaid.zenuml.json +1 -0
  48. data/grammars/source.moonbit.json +1 -1
  49. data/grammars/source.move.json +1 -1
  50. data/grammars/source.nginx.json +1 -1
  51. data/grammars/source.nickel.json +1 -0
  52. data/grammars/source.nim.json +1 -1
  53. data/grammars/source.nr.json +1 -1
  54. data/grammars/source.nushell.json +1 -1
  55. data/grammars/source.odin-ehr.json +1 -1
  56. data/grammars/source.openqasm.json +1 -1
  57. data/grammars/source.postscript.json +1 -1
  58. data/grammars/source.psl.json +1 -0
  59. data/grammars/source.quakec.json +1 -0
  60. data/grammars/source.rascal.json +1 -1
  61. data/grammars/source.record-jar.json +1 -1
  62. data/grammars/source.rosmsg.json +1 -0
  63. data/grammars/source.sieve.json +1 -1
  64. data/grammars/source.slang.json +1 -1
  65. data/grammars/source.slint.json +1 -1
  66. data/grammars/source.stan.json +1 -1
  67. data/grammars/source.swift.json +1 -1
  68. data/grammars/source.templ.json +1 -1
  69. data/grammars/source.vba.json +1 -1
  70. data/grammars/source.vcl.json +1 -0
  71. data/grammars/source.vento.json +1 -1
  72. data/grammars/source.vhdl.json +1 -1
  73. data/grammars/source.vue.json +1 -1
  74. data/grammars/source.wdl.json +1 -1
  75. data/grammars/source.wesl.json +1 -0
  76. data/grammars/source.wgsl.json +1 -1
  77. data/grammars/source.wit.json +1 -1
  78. data/grammars/text.codeowners.json +1 -1
  79. data/grammars/text.html.jte.json +1 -1
  80. data/grammars/text.jira.json +1 -0
  81. data/grammars/text.marko.json +1 -1
  82. data/grammars/text.slim.json +1 -1
  83. data/grammars/text.srt.json +1 -1
  84. data/grammars/text.xml.svg.json +1 -1
  85. data/grammars/version +1 -1
  86. data/lib/linguist/VERSION +1 -1
  87. data/lib/linguist/generated.rb +5 -5
  88. data/lib/linguist/generic.yml +2 -0
  89. data/lib/linguist/heuristics.yml +39 -8
  90. data/lib/linguist/instrumenter.rb +19 -0
  91. data/lib/linguist/languages.json +1 -1
  92. data/lib/linguist/languages.yml +184 -92
  93. data/lib/linguist/samples.json +1 -1
  94. data/lib/linguist.rb +1 -0
  95. metadata +20 -3
  96. data/grammars/source.varnish.vcl.json +0 -1
@@ -1 +1 @@
1
- {"name":"OpenEdge ABL","scopeName":"source.abl","patterns":[{"include":"#statements"}],"repository":{"abl-function-variable-arg":{"name":"meta.function-call.abl","begin":"(?i)\\s*(set-size)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#parens"},{"include":"#type-member-call"},{"include":"#variable-name"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions":{"patterns":[{"include":"#abl-functions-A"},{"include":"#abl-functions-B"},{"include":"#abl-functions-C"},{"include":"#abl-functions-D"},{"include":"#abl-functions-E"},{"include":"#abl-functions-F"},{"include":"#abl-functions-G"},{"include":"#abl-functions-H"},{"include":"#abl-functions-I"},{"include":"#abl-functions-K"},{"include":"#abl-functions-L"},{"include":"#abl-functions-M"},{"include":"#abl-functions-N"},{"include":"#abl-functions-O"},{"include":"#abl-functions-P"},{"include":"#abl-functions-Q"},{"include":"#abl-functions-R"},{"include":"#abl-functions-S"},{"include":"#abl-functions-T"},{"include":"#abl-functions-U"},{"include":"#abl-functions-V"},{"include":"#abl-functions-W"},{"include":"#abl-functions-Y"}]},"abl-functions-A":{"name":"meta.function-call.abl","begin":"(?i)\\s*((abs(?:olute|olut|olu|ol|o)?)|(accum(?:ulate|ulat|ula|ul|u)?)|(ambig(?:uous|uou|uo|u)?)|(asc(?:ending|endin|endi|end|en|e)?)|(avail(?:able|abl|ab|a)?)|add-interval|alias|audit-enabled)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-B":{"name":"meta.function-call.abl","begin":"(?i)\\s*(base64-decode|base64-encode|box|buffer-group-id|buffer-group-name|buffer-partition-id|buffer-tenant-id|buffer-tenant-name)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-C":{"name":"meta.function-call.abl","begin":"(?i)\\s*((compare(?:s)?)|(current-lang(?:uage|uag|ua|u)?)|can-do|can-find|can-query|can-set|caps|cast|chr|codepage-convert|connected|count-of|current-changed|current-result-row|current-value)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-D":{"name":"meta.function-call.abl","begin":"(?i)\\s*((dbrest(?:rictions|riction|rictio|ricti|rict|ric|ri|r)?)|(dbvers(?:ion|io|i)?)|(dec(?:imal|ima|im|i)?)|(dynamic-func(?:tion|tio|ti|t)?)|data-source-modified|dataservers|date|datetime|datetime-tz|day|db-remote-host|dbcodepage|dbcollation|dbname|dbparam|dbtaskid|dbtype|decrypt|defined|dynamic-cast|dynamic-current-value|dynamic-enum|dynamic-invoke|dynamic-next-value|dynamic-property)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-E":{"name":"meta.function-call.abl","begin":"(?i)\\s*(encode|encrypt|entered|entry|error|etime|exp|extent)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-F":{"name":"meta.function-call.abl","begin":"(?i)\\s*((frame-inde(?:x)?)|(frame-val(?:ue|u)?)|fill|first|first-of|frame-col|frame-db|frame-down|frame-field|frame-file|frame-line|frame-name|frame-row)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-G":{"name":"meta.function-call.abl","begin":"(?i)\\s*((gateway(?:s)?)|(get-codepage(?:s)?)|(get-codepage(?:s)?)|(get-coll(?:ations|ation|atio|ati|at|a)?)|(go-pend(?:ing|in|i)?)|generate-pbe-key|generate-pbe-salt|generate-random-key|generate-uuid|get-bits|get-byte|get-byte-order|get-bytes|get-class|get-collation|get-db-client|get-double|get-effective-tenant-id|get-effective-tenant-name|get-float|get-int64|get-long|get-pointer-value|get-short|get-size|get-string|get-unsigned-long|get-unsigned-short|guid)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-H":{"name":"meta.function-call.abl","begin":"(?i)\\s*(handle|hash-code|hex-decode|hex-encode)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-I":{"name":"meta.function-call.abl","begin":"(?i)\\s*((int(?:eger|ege|eg|e)?)|(is-attr(?:-space|-spac|-spa|-sp|-s|-)?)|index|input|int64|interval|is-codepage-fixed|is-column-codepage|is-db-multi-tenant|is-lead-byte|iso-date)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-K":{"name":"meta.function-call.abl","begin":"(?i)\\s*((keyfunc(?:tion|tio|ti|t)?)|kblabel|keycode|keylabel|keyword|keyword-all)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-L":{"name":"meta.function-call.abl","begin":"(?i)\\s*((line-count(?:er|e)?)|last|last-of|lastkey|lc|ldbname|left-trim|length|library|list-events|list-query-attrs|list-set-attrs|list-widgets|locked|log|logical|lookup|lower)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-M":{"name":"meta.function-call.abl","begin":"(?i)\\s*((min(?:imum|imu|im|i)?)|maximum|md5-digest|member|message-digest|message-lines|month|mtime)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-N":{"name":"meta.function-call.abl","begin":"(?i)\\s*((num-ali(?:ases|ase|as|a)?)|new|next-value|normalize|not|now|num-dbs|num-entries|num-results)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-O":{"name":"meta.function-call.abl","begin":"(?i)\\s*((os-drive(?:s)?)|opsys|os-dir|os-error|os-getenv)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-P":{"name":"meta.function-call.abl","begin":"(?i)\\s*((page-num(?:ber|be|b)?)|(proc-ha(?:ndle|ndl|nd|n)?)|(proc-st(?:atus|atu|at|a)?)|(provers(?:ion|io|i)?)|page-size|pdbname|process-architecture|program-name|progress|promsgs|propath)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-Q":{"name":"meta.function-call.abl","begin":"(?i)\\s*(query-off-end|quoter)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-R":{"name":"meta.function-call.abl","begin":"(?i)\\s*((record-len(?:gth|gt|g)?)|(relation-fi(?:elds|eld|el|e)?)|(return-val(?:ue|u)?)|(rgb-v(?:alue|alu|al|a)?)|r-index|random|raw|recid|rejected|replace|retry|return|right-trim|round|row-state|rowid)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-S":{"name":"meta.function-call.abl","begin":"(?i)\\s*((setuser(?:id|i)?)|(subst(?:itute|itut|itu|it|i)?)|(substr(?:ing|in|i)?)|screen-lines|sdbname|search|seek|set-db-client|set-effective-tenant|set-size|sha1-digest|skip|sqrt|ssl-server-name|string|super)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-T":{"name":"meta.function-call.abl","begin":"(?i)\\s*((transact(?:ion|io|i)?)|(trunc(?:ate|at|a)?)|tenant-id|tenant-name|tenant-name-to-id|terminal|this-object|time|timezone|to-rowid|today|trim|type-of)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-U":{"name":"meta.function-call.abl","begin":"(?i)\\s*(unbox|userid)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-V":{"name":"meta.function-call.abl","begin":"(?i)\\s*(valid-event|valid-handle|valid-object|value)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-W":{"name":"meta.function-call.abl","begin":"(?i)\\s*((widget-h(?:andle|andl|and|an|a)?)|weekday)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-Y":{"name":"meta.function-call.abl","begin":"(?i)\\s*(year)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-system-handles":{"match":"(?i)\\b(active-window|audit-control|audit-policy|clipboard|codebase-locator|color-table|compiler|current-window|debugger|default-window|dslog-manager|(error-stat(?:us|u)?)|(file-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|font-table|(last-even(?:t)?)|log-manager|profiler|(rcode-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|security-policy|self|session|source-procedure|super|target-procedure|this-object|this-procedure|web-context)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"variable.language.abl"},"2":{"name":"punctuation.separator.colon.abl"}}},"access-modifier":{"match":"(?i)\\s*(package-private|private|package-protected|protected|public|static|override|abstract|final)\\s+","captures":{"1":{"name":"keyword.other.abl"}}},"analyze-suspend-resume":{"name":"comment.preprocessor.analyze-suspend.abl","begin":"(?i)(\u0026analyze-suspend|\u0026analyze-resume)\\s*","end":"(?=(?://|/\\*))|$"},"annotation":{"patterns":[{"include":"#annotation-simple"},{"include":"#annotation-attributes"}]},"annotation-attributes":{"name":"meta.declaration.annotation.abl","begin":"(^|\\s+)(\\@[a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s*(?=\\()","end":"(?=\\.)","patterns":[{"include":"#parens"},{"match":"\\s*([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]+)(?=[\\=\\s$])","captures":{"1":{"name":"entity.other.attribute-name.abl"}}},{"include":"#string"},{"include":"#operator-no-space"},{"include":"#punctuation-comma"}],"beginCaptures":{"2":{"name":"entity.name.tag.abl"}}},"annotation-simple":{"name":"meta.declaration.annotation.abl","match":"(^|\\s*)(\\@[a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s*(?=\\.)","captures":{"2":{"name":"entity.name.tag.abl"}}},"argument-reference":{"match":"\\s*((\\{\\s*\u0026[\\.a-zA-Z0-9_\\-#$%\\/]+\\})|(\\{\\s*\\d+\\})|(\\{\\s*\\*\\}))\\s*","captures":{"1":{"name":"support.other.argument.abl"}}},"array-literal":{"name":"meta.array.literal.abl","begin":"\\[","end":"\\]","patterns":[{"match":"(?i)\\s+(for)\\s+","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#expression"},{"include":"#preprocessors"},{"include":"#comment"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.square.begin.abl"}},"endCaptures":{"0":{"name":"punctuation.definition.bracket.square.end.abl"}}},"array-use":{"name":"meta.array.literal.abl","begin":"\\[","end":"\\]","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.square.begin.abl"}},"endCaptures":{"0":{"name":"punctuation.definition.bracket.square.end.abl"}}},"as-type":{"begin":"\\s*([Aa][Ss])\\s*([Cc][Ll][Aa][Ss]{2})?","end":"\\s*(\\.|\\,|\\s*)","patterns":[{"include":"#primitive-type"},{"include":"#type-names"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"attribute-access":{"begin":":","end":"(?=:)|(?=\\s*)"},"block-label":{"match":"(?i)^\\s*(?!((?:transact(?:ion|io|i)?)|no-lock|(?:exclusive-l(?:ock|oc|o)?)|(?:share(?:-lock|-loc|-lo|-l|-)?)):)([a-zA-Z][a-zA-Z0-9_\\-#$%\\-$#]*)(:)\\s","captures":{"2":{"name":"entity.name.label.abl"},"3":{"name":"punctuation.terminator.abl"}}},"block-statement":{"name":"meta.block.abl","begin":"(?i)(?\u003c!end)\\s*(do|repeat|finally)\\b","end":"\\s*(?=:)|(?\u003c=:)|(?=\\.)|(?\u003c=\\.)\\s*","patterns":[{"include":"#comment"},{"include":"#for-record"},{"include":"#operator"},{"include":"#from-to-by"},{"include":"#while-expression"},{"name":"keyword.other.abl","match":"(?i)\\b((transact(?:ion|io|i)?)|stop-after)\\b"},{"include":"#numeric"},{"include":"#type-member-call"},{"include":"#language-functions"},{"include":"#abl-functions"},{"include":"#punctuation-comma"},{"include":"#punctuation-colon"},{"include":"#branch-options"},{"include":"#keywords"},{"include":"#expression"},{"include":"#preprocessors"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"block-undo-leave-next-retry":{"match":"(?i)\\s*(?\u003c!,)\\s*(leave|next|retry|undo)\\s*(?!on)([a-zA-Z0-9_\\-#$%\\-$]*)?\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.label.abl"}}},"branch-leave-next-retry-throw":{"match":"(?i)\\s*(?\u003c=,)\\s*(leave|next|retry|throw)\\s*(?!on)([a-zA-Z0-9_\\-#$%\\-$]*)?\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.label.abl"}}},"branch-options":{"patterns":[{"include":"#on-error-endkey-stop"},{"include":"#branch-leave-next-retry-throw"},{"include":"#branch-return-value-double"},{"include":"#branch-return-value-single"},{"include":"#branch-return-no-apply"},{"include":"#branch-return-error-expression"},{"include":"#punctuation-comma"}]},"branch-return-error-expression":{"begin":"(?i)\\s*(return)\\s+(error)\\s*","end":"(?=:|$)","patterns":[{"include":"#new-class"},{"include":"#function-arguments"},{"include":"#parens"},{"include":"#property-call"},{"include":"#preprocessors"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"branch-return-no-apply":{"match":"(?i)\\s*(return)\\s+(no-apply)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"branch-return-value-double":{"begin":"(?i)\\s*(return)(\\s+(error))?\\s+(\")","end":"(\")","patterns":[{"include":"#escape-char"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"},"3":{"name":"punctuation.definition.string.begin.abl"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.abl"}}},"branch-return-value-single":{"name":"string.single.complex.abl","begin":"(?i)\\s*(return)(\\s+(error))?\\s+(')","end":"(')","patterns":[{"include":"#escape-char"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"},"3":{"name":"punctuation.definition.string.begin.abl"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.abl"}}},"break-by":{"match":"(?i)\\s*((break)\\s+)?(by)\\s+(([a-zA-Z][a-zA-Z_\\-#$%]*\\.)?([a-zA-Z][a-zA-Z_\\-#$%]*\\.)([a-zA-Z][a-zA-Z_\\-#$%]*)(\\[\\d+\\])?)\\b","captures":{"2":{"name":"keyword.other.abl"},"3":{"name":"keyword.other.abl"},"4":{"name":"storage.data.table.abl"}}},"break-group":{"match":"(?i)\\s*(first-of|first|last-of|last)\\s*(\\()\\s*([a-zA-Z][a-zA-Z#$\\-_%\u0026]*\\.[a-zA-Z_][a-zA-Z#$\\-_%\u0026]*(\\.[a-zA-Z_][a-zA-Z#$\\-_%\u0026]*)?)\\s*(\\))\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"meta.brace.round.js"},"3":{"name":"storage.data.table.abl"},"4":{"name":"meta.brace.round.js"}}},"buffer-for-table":{"match":"(?i)\\s*(?!do|repeat|for)([a-zA-Z_\\-#$%]+)\\s+(for)\\s+((temp-table)\\s+)?([a-zA-Z][a-zA-Z0-9_\\-#$%]*)\\s*","captures":{"1":{"name":"storage.data.table.abl"},"2":{"name":"keyword.other.abl"},"4":{"name":"keyword.other.abl"},"5":{"name":"storage.data.table.abl"}}},"buffer-name":{"match":"(?i)\\b(buffer)\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},"cache-value":{"match":"\\b([Cc][Aa][Cc][Hh][Ee])\\s+(0[xX][[:xdigit:]]+)?|(\\-?[0-9]+(\\.[0-9]+)?)\\b","captures":{"1":{"name":"keyword.other.abl"},"3":{"name":"constant.numeric.source.abl"}}},"can-find":{"begin":"(?i)\\s*(can-find)\\s*(\\()","end":"(?i)\\b(?=\\)|where|no-lock|(share(?:-lock|-loc|-lo|-l|-)?)|using|(no-prefe(?:tch|tc|t)?)|no-wait)\\s*","patterns":[{"include":"#parens"},{"include":"#comment"},{"include":"#string"},{"include":"#numeric"},{"match":"(?i)\\b(first|last)\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#use-index"},{"include":"#of-phrase"},{"include":"#db-dot-table"},{"include":"#db-dot-table-dot-field"}],"beginCaptures":{"1":{"name":"support.function.abl"},"2":{"name":"meta.brace.round.js"}}},"code-block":{"patterns":[{"include":"#create-statement"},{"include":"#record-buffer-functions"},{"include":"#can-find"},{"include":"#comment"},{"include":"#break-group"},{"include":"#block-undo-leave-next-retry"},{"include":"#operator"},{"include":"#string"},{"include":"#language-functions"},{"include":"#numeric"},{"include":"#constant"},{"include":"#operator"},{"include":"#include-file"},{"include":"#run-statement"},{"include":"#define"},{"include":"#block-statement"},{"include":"#end-block"},{"include":"#property-call"},{"include":"#new-record"},{"include":"#type-reference"},{"include":"#abl-functions"},{"include":"#abl-system-handles"},{"include":"#handle-methods"},{"include":"#handle-attributes"},{"include":"#keywords"},{"include":"#variable-name"},{"include":"#static-object-property-call"},{"include":"#punctuation-period"},{"include":"#punctuation-colon"}]},"comment":{"patterns":[{"include":"#singlelinecomment"},{"include":"#multilinecomment"}]},"constant":{"name":"constant.language.abl","match":"(?i)(?\u003c=^|\\b|\\s|\\()(true|false|yes|no|\\?)(?![a-zA-Z0-9_\\-#$%])"},"copy-lob":{"begin":"(?i)\\b(copy-lob)\\b","end":"(?=\\.)","patterns":[{"include":"#code-block"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"create-alias":{"begin":"(?i)\\s*(create)\\s+(alias)\\s*","end":"(?=\\.)","patterns":[{"include":"#keywords"},{"include":"#abl-functions"},{"match":"\\b([a-zA-Z0-9][a-zA-Z0-9_\\-]*)\\b","captures":{"1":{"name":"storage.data.database.abl"}}},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"create-buffer":{"begin":"(?i)(create)\\s+(buffer)\\b","end":"(?i)(\\b((buffer-n(?:ame|am|a)?)|in)\\b)|(?=\\.)","patterns":[{"match":"(?i)\\s*(for|table)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#define-table"},{"include":"#buffer-name"},{"include":"#temp-table-name"},{"include":"#expression"},{"include":"#keywords"},{"include":"#string"},{"include":"#comment"},{"include":"#handle-attributes"},{"include":"#variable-name"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}},"endCaptures":{"1":{"name":"keyword.other.abl"}}},"create-record":{"match":"(?i)\\s*(create)\\s+([a-zA-Z][a-zA-Z_\\-#$%]*(\\.[a-zA-Z][a-zA-Z_\\-#$%]*)?)\\s*((for)\\s+(tenant))?\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"},"5":{"name":"keyword.other.abl"},"6":{"name":"keyword.other.abl"}}},"create-statement":{"patterns":[{"include":"#create-buffer"},{"include":"#create-alias"},{"include":"#create-widget"},{"include":"#create-with-expression"},{"include":"#create-record"}]},"create-widget":{"match":"(?i)\\s*(create)\\s+(button|combo-box|(?:control-fram(?:e)?)|dialog-box|editor|fill-in|(?:fram(?:e)?)|image|menu|menu-item|radio-set|(?:rect(?:angle|angl|ang|an|a)?)|selection-list|slider|sub-menu|text|toggle-box|window)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"},"3":{"name":"variable.other.abl"}}},"create-with-expression":{"match":"(?i)\\s*(create)\\s+(browse|call|client-principal|database|dataset|data-source|query|sax-attributes|sax-reader|sax-writer|server|server-socket|soap-header|soap-header-entryref|socket|temp-table|widget-pool|x-document|x-noderef)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"db-dot-table":{"match":"(?i)\\b([a-zA-Z_][a-zA-Z0-9#$\\-_%\u0026]*(\\.[a-zA-Z_][a-zA-Z0-9#$\\-_%\u0026]*)?)\\b","captures":{"1":{"name":"storage.data.table.abl"}}},"db-dot-table-dot-field":{"match":"(?i)(?\u003c=^|\\s|\\(|,)(([a-zA-Z][a-zA-Z0-9#$\\-_%\u0026]*\\.)?([a-zA-Z_][a-zA-Z0-9#$\\-_%\u0026]*\\.)([a-zA-Z_][a-zA-Z0-9#$\\-_%\u0026]*)(\\[\\d+\\])?)","captures":{"1":{"name":"storage.data.table.abl"}}},"decimals":{"match":"(?i)\\s*(decimals)\\s((0x)?[[:xdigit:]]+)?","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"constant.numeric.source.abl"}}},"declarations":{"patterns":[{"include":"#define"}]},"define":{"name":"meta.define.abl","begin":"(?i)\\s*(def(?:ine|in|i)?)\\b","end":"(\\.)","patterns":[{"match":"(?i)\\s*(new|(glob(?:al|a|)?)|shared)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#serializable"},{"include":"#access-modifier"},{"include":"#define-enum-member"},{"include":"#define-variable"},{"include":"#define-parameter"},{"include":"#define-button"},{"include":"#define-dataset"},{"include":"#define-query"},{"include":"#define-browse"},{"include":"#fields-except-list"},{"include":"#define-event"},{"include":"#define-property"},{"include":"#property-accessor"},{"include":"#array-literal"},{"include":"#define-field"},{"include":"#parameter-as"},{"include":"#define-stream"},{"include":"#define-buffer"},{"include":"#define-frame"},{"include":"#for-table"},{"include":"#buffer-for-table"},{"include":"#define-table"},{"include":"#define-index"},{"include":"#define-like"},{"include":"#field-as-object"},{"include":"#preprocessors"},{"include":"#extent"},{"include":"#decimals"},{"include":"#format-constant"},{"include":"#timestamp-constant"},{"include":"#constant"},{"include":"#numeric"},{"include":"#string"},{"include":"#primitive-type"},{"include":"#dll-type"},{"include":"#abl-system-handles"},{"include":"#property-call"},{"include":"#handle-attributes"},{"include":"#handle-methods"},{"include":"#abl-functions"},{"include":"#function-parameter-definition"},{"include":"#keywords"},{"include":"#comment"},{"include":"#label-variable"},{"include":"#type-names"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}},"endCaptures":{"1":{"name":"punctuation.terminator.abl"}}},"define-browse":{"begin":"(?i)\\b(browse)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s*","end":"(?i)\\b(?=\\.)","patterns":[{"match":"\\b([Qq][Uu][Ee][Rr][Yy])\\s+([a-zA-Z][a-zA-Z0-9\\-_#$%\\\u0026]+)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},{"match":"(?i)\\b((share(?:-lock|-loc|-lo|-l|-)?)|(exclusive-l(?:ock|oc|o)?)|no-lock|no-wait|(disp(?:lay|la|l)?))\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#comment"},{"include":"#db-dot-table-dot-field"},{"include":"#keywords"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},"define-buffer":{"begin":"(?i)\\s*(buffer)\\b(?![#$\\-_%\u0026])","end":"(?=\\.)","patterns":[{"include":"#for-table"},{"include":"#buffer-for-table"},{"include":"#keywords"},{"include":"#comment"},{"include":"#string"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"define-button":{"begin":"(?i)\\s*(button)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)","end":"(?=\\.)","patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#from-x-and-y"},{"include":"#numeric"},{"include":"#keywords"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},"define-class":{"name":"meta.define.class.abl","begin":"\\b(?\u003c![#$\\-_%\u0026])([Cc][Ll][Aa][Ss]{2})\\b(?![#$\\-_%\u0026])","end":"\\s*(:)\\s*","patterns":[{"match":"(?i)\\s*(serializable|abstract|final|use-widget-pool|inherits|implements)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#type-names"},{"include":"#punctuation-comma"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}},"endCaptures":{"1":{"name":"punctuation.terminator.abl"}}},"define-dataset":{"begin":"(?i)\\b(dataset)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\b","end":"(?=\\.)","patterns":[{"include":"#parens"},{"include":"#punctuation-comma"},{"match":"(?i)\\b((?:data-rel(?:ation|atio|ati|at|a)?)|parent-id-relation)\\s*([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.dataset.abl"}}},{"match":"(?i)\\b(relation-fi(?:elds|eld|el|e)?)\\b","captures":{"1":{"name":"support.function.abl"}}},{"include":"#keywords"},{"include":"#preprocessors"},{"include":"#db-dot-table"},{"include":"#comment"},{"include":"#string"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.dataset.abl"}}},"define-enum-member":{"begin":"(?i)\\b(enum)\\b","end":"(?=\\.)","patterns":[{"include":"#comment"},{"include":"#operator"},{"include":"#numeric"},{"match":"\\b([a-zA-Z][a-zA-Z0-9_#$%]*)\\b","captures":{"1":{"name":"entity.name.function.abl"}}}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"define-enum-type":{"patterns":[{"name":"meta.define.enum.abl","match":"(?i)\\b(enum)\\s+([\\w#$%\\.]+)\\s*(flags)?\\s*(:)","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.type.abl"},"3":{"name":"keyword.other.abl"},"4":{"name":"punctuation.terminator.abl"}}}]},"define-event":{"match":"(?i)\\b(event)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.function.abl"}}},"define-field":{"match":"(?i)\\s*(field)\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},"define-frame":{"match":"(?i)\\s*((?:fram(?:e)?))\\s*([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},"define-index":{"begin":"(?i)\\s*(index)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)","end":"(?i)(?=\\bindex\\b|\\.)","patterns":[{"match":"(?i)\\b(AS|IS|UNIQUE|PRIMARY|WORD-INDEX|(asc(?:ending|endin|endi|end|en|e)?)|(desc(?:ending|endin|endi|end|en|e)?))\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"match":"\\b([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\b","captures":{"1":{"name":"storage.data.table.abl"}}}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},"define-interface":{"name":"meta.define.interface.abl","begin":"(?i)\\b(interface)\\s+([\\w#$%]+[\\w#$%\\.]*(\\s*\u003c\\s*[\\w#$%\\.]+\\s*\\\u003e)?)","end":"\\s*(:)","patterns":[{"match":"(?i)\\s*(inherits|implements)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#type-names"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.type.abl"}},"endCaptures":{"1":{"name":"punctuation.terminator.abl"}}},"define-like":{"match":"(?i)\\s*(like|like-sequential)\\s+(([a-zA-Z][a-zA-Z_\\-#$%]*\\.)?([a-zA-Z][a-zA-Z0-9_\\-#$%]*\\.)?([a-zA-Z][a-zA-Z0-9_\\-#$%]*))","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},"define-parameter":{"begin":"(?i)\\b(param(?:eter|ete|et|e)?)\\b","end":"(?i)(?=\\.)|\\b(?=(bgc(?:olor|olo|ol|o)?)|(column-lab(?:el|e)?)|context-help-id|dcolor|decimals|drop-target|extent|font|(fgc(?:olor|olo|ol|o)?)|(form(?:at|a)?)|initial|label|(mouse-p(?:ointer|ointe|oint|oin|oi|o)?)|no-undo|not|(case-sen(?:sitive|sitiv|siti|sit|si|s)?)|(pfc(?:olor|olo|ol|o)?)|view-as|triggers)\\b","patterns":[{"match":"(?i)\\b(table)\\s+(for)\\s+([a-zA-Z][a-zA-Z_\\-#$%]*(\\.[a-zA-Z][a-zA-Z_\\-#$%]*)?)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"},"3":{"name":"storage.data.table.abl"}}},{"match":"(?i)\\b(table-handle|dataset-handle)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},{"match":"(?i)\\b(dataset)\\s+(for)\\s+([a-zA-Z_\\-#$%]+(\\.[a-zA-Z_\\-#$%]+)?)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"},"3":{"name":"storage.data.dataset.abl"}}},{"include":"#parameter-as"},{"include":"#keywords"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"define-property":{"begin":"(?i)\\b(property)\\b","end":"\\s*(?=[Gg][Ee][Tt]|[Ss][Ee][Tt])","patterns":[{"include":"#property-as"},{"include":"#comment"},{"include":"#primitive-type"},{"include":"#extent"},{"include":"#decimals"},{"include":"#array-literal"},{"include":"#timestamp-constant"},{"include":"#numeric"},{"include":"#keywords"},{"include":"#string"},{"include":"#type-names"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"define-query":{"begin":"(?i)\\b(query)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s*","end":"(?i)\\b(?=\\.)\\b","patterns":[{"match":"(?i)\\b(for|scrolling|(rcode-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?))\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#cache-value"},{"include":"#db-dot-table"},{"include":"#fields-except-list"},{"include":"#punctuation-comma"},{"include":"#expression"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},"define-stream":{"name":"meta.define.stream.abl","match":"(?i)\\s*(stream)\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%\\-]*)","captures":{"1":{"name":"keyword.other.abl"},"2":{"patterns":[{"include":"#variable-name"}]}}},"define-table":{"match":"(?i)(?\u003c=\\b)(temp-table|before-table)\\s*([a-zA-Z_][a-zA-Z0-9_\\-#$%]*)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},"define-type":{"patterns":[{"include":"#define-class"},{"include":"#define-interface"},{"include":"#define-enum-type"}]},"define-variable":{"begin":"(?i)\\s*(var(?:iable|iabl|iab|ia|i)?)\\s*","end":"(?i)(?=\\.)|\\b(?=(bgc(?:olor|olo|ol|o)?)|(column-lab(?:el|e)?)|contet-help-id|dcolor|decimals|drop-target|extent|font|(fgc(?:olor|olo|ol|o)?)|(form(?:at|a)?)|initial|label|(mouse-p(?:ointer|ointe|oint|oin|oi|o)?)|no-undo|not|(case-sen(?:sitive|sitiv|siti|sit|si|s)?)|(pfc(?:olor|olo|ol|o)?)|view-as|triggers)\\b","patterns":[{"match":"\\b([Cc][Ll][Aa][Ss][Ss])\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#variable-as"},{"include":"#variable-like"},{"include":"#primitive-type"},{"include":"#define-like"},{"include":"#type-names"},{"include":"#string"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}},"endCaptures":{"1":{"name":"keyword.other.abl"}}},"define-variable-name":{"match":"(?i)(var(?:iable|iabl|iab|ia|i)?)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},"dll-type":{"match":"(?i)\\b(byte|unsigned-short|short|unsigned-long|long|int64|float)\\b","captures":{"1":{"name":"storage.type.abl"}}},"double-colon-field-name":{"match":"\\s*::([a-zA-Z_\\-#$%]+)\\s*","captures":{"1":{"name":"storage.data.table.abl"}}},"doublequotedstring":{"name":"string.double.complex.abl","begin":"(\")","end":"(?i)(\")(:[LlRrTtCcUu]\\d*\\b)?","patterns":[{"include":"#escape-char"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.abl"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.abl"},"2":{"name":"support.other.abl"}}},"end-block":{"match":"(?i)\\s*(end)\\s+(CASE|CATCH|CLASS|CONSTRUCTOR|DESTRUCTOR|ENUM|FINALLY|FUNCTION|GET|INTERFACE|METHOD|PROCEDURE|SET|TRIGGERS)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"end-function-procedure-method-block":{"match":"(?i)\\s*(end)\\s*(method|procedure|function)?\\s*(?=\\.)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"escape-char":{"name":"constant.character.escape.abl","match":"~."},"event-un-subscribe":{"begin":"(?i)(:)(unsubscribe|subscribe)\\s*(\\()","end":"(\\))","patterns":[{"match":"\\s*([\\w#$%\\-]+(\\.[\\w#$%\\-]+)+)\\s*(:)","captures":{"1":{"name":"entity.name.type.abl"},"3":{"name":"punctuation.separator.colon.abl"}}},{"match":"\\s*([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s*((,)|(:))\\s*","captures":{"1":{"name":"variable.other.abl"},"3":{"name":"punctuation.separator.comma.abl"},"4":{"name":"punctuation.separator.colon.abl"}}},{"match":"\\s*([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s*","captures":{"1":{"name":"entity.name.function.abl"}}},{"include":"#string"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"},"3":{"name":"meta.brace.round.js"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"expression":{"patterns":[{"include":"#string"},{"include":"#timestamp-constant"},{"include":"#constant"},{"include":"#numeric"},{"include":"#variable-name"},{"include":"#double-colon-field-name"}]},"extent":{"match":"(?i)\\s*(extent)\\s*((0x)?[[:xdigit:]]+)?","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"constant.numeric.source.abl"}}},"field-as-object":{"match":"(?i)\\s*((progress\\.lang\\.)?object)\\s*","captures":{"1":{"name":"entity.name.type.abl"}}},"field-name":{"patterns":[{"match":"\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?\\s*(\\[\\d+\\]))\\s*","captures":{"1":{"name":"storage.data.table.abl"}}},{"match":"\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*","captures":{"1":{"name":"storage.data.table.abl"}}}]},"fields-except-list":{"begin":"(?i)\\s*(fields|except)\\s*(\\()","end":"(\\))","patterns":[{"include":"#db-dot-table-dot-field"},{"include":"#field-name"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"meta.brace.round.js"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"find-record":{"match":"(?i)\\s*(find)\\s+(first|last|next|prev|current)?\\s*([a-zA-Z_][a-zA-Z0-9#$\\-_%\u0026]+(\\.[a-zA-Z_][a-zA-Z0-9#$\\-_%\u0026]*)?)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"},"3":{"name":"storage.data.table.abl"}}},"for-each-join":{"begin":"(?i)(?\u003c=,)\\s*(each|first|last)\\s*","end":"(?i)\\s*(?=where|no-lock|(exclusive-l(?:ock|oc|o)?)|(share(?:-lock|-loc|-lo|-l|-)?)|tenant-where|use-index|table-scan|using|(no-prefe(?:tch|tc|t)?)|left|outer-join|break|by|(transact(?:ion|io|i)?)|,|:)\\s*","patterns":[{"include":"#fields-except-list"},{"include":"#of-phrase"},{"match":"(?i)\\s*(of)\\s+([a-zA-Z][a-zA-Z_\\-#$%]*(\\.[a-zA-Z][a-zA-Z_\\-#$%]*)?)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},{"match":"\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*","captures":{"1":{"name":"storage.data.table.abl"}}}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"3":{"name":"storage.data.table.abl"}}},"for-each-table":{"end":"(?i)\\s*(?=where|no-lock|(exclusive-l(?:ock|oc|o)?)|(share(?:-lock|-loc|-lo|-l|-)?)|tenant-where|use-index|table-scan|using|(no-prefe(?:tch|tc|t)?)|left|outer-join|break|by|(transact(?:ion|io|i)?)|,|:|on)\\s*","patterns":[{"match":"(?i)\\s*(each|first|last|of)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#fields-except-list"},{"include":"#of-phrase"},{"include":"#field-name"},{"include":"#db-dot-table"},{"include":"#db-dot-table-dot-field"},{"include":"#while-expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"for-join":{"match":"(?i)(?\u003c=,|^)\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z_][a-zA-Z0-9_\\-#$%]*)?)\\s+(?=where|no-lock|(exclusive-l(?:ock|oc|o)?)|(share(?:-lock|-loc|-lo|-l|-)?)|tenant-where|use-index|table-scan|using|(no-prefe(?:tch|tc|t)?)|left|outer-join|break|by|(transact(?:ion|io|i)?))\\s*","captures":{"1":{"name":"storage.data.table.abl"}}},"for-record":{"match":"(?i)\\s*(for)\\s+([a-zA-Z_\\-#$%]*)\\s*(,)?\\s*([a-zA-Z_\\-#$%]*)?\\s*(,)?\\s*([a-zA-Z_\\-#$%]*)?\\s*(,)?\\s*([a-zA-Z_\\-#$%]*)?\\s*(,)?\\s*([a-zA-Z_\\-#$%]*)?\\s*(,)?\\s*([a-zA-Z_\\-#$%]*)?","captures":{"1":{"name":"keyword.other.abl"},"10":{"name":"storage.data.table.abl"},"11":{"name":"punctuation.separator.comma.abl"},"12":{"name":"storage.data.table.abl"},"2":{"name":"storage.data.table.abl"},"3":{"name":"punctuation.separator.comma.abl"},"4":{"name":"storage.data.table.abl"},"5":{"name":"punctuation.separator.comma.abl"},"6":{"name":"storage.data.table.abl"},"7":{"name":"punctuation.separator.comma.abl"},"8":{"name":"storage.data.table.abl"},"9":{"name":"punctuation.separator.comma.abl"}}},"for-table":{"match":"(?i)\\s*(for)\\s+((temp-table)\\s+)?([a-zA-Z_\\-#$%]+)\\s*","captures":{"1":{"name":"keyword.other.abl"},"3":{"name":"keyword.other.abl"},"4":{"name":"storage.data.table.abl"}}},"format-constant":{"match":"(?i)\\b((?:form(?:at|a)?))\\s+(9+/9+/9+)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"constant.language.source.abl"}}},"from-to-by":{"begin":"\\s*([a-zA-Z0-9_\\-#$%$\\-_%\u0026]+)\\s+(=)\\s*","end":"(?i)(?=(transact(?:ion|io|i)?)|on|:|with|while)","patterns":[{"match":"(?i)\\s+(to|by)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#numeric"},{"include":"#branch-options"},{"include":"#abl-functions"},{"include":"#db-dot-table-dot-field"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"variable.other.abl"},"2":{"name":"keyword.operator.source.abl"}}},"from-x-and-y":{"match":"(?i)\\b(from)\\s+(X)\\s+((0(x)[[[:xdigit:]]]+)|(\\-?[[0-9]]+(\\.[[0-9]]+)?))\\s+(y)\\s+((0(x)[[[:xdigit:]]]+)|(\\-?[[0-9]]+(\\.[[0-9]]+)?))\\s+ ","captures":{"1":{"name":"keyword.other.abl"},"12":{"name":"constant.numeric.source.abl"},"2":{"name":"keyword.other.abl"},"6":{"name":"constant.numeric.source.abl"},"8":{"name":"keyword.other.abl"}}},"function-arguments":{"name":"meta.function.arguments.abl","begin":"(?=\\()","end":"(?=\\))","patterns":[{"include":"#parens"},{"include":"#function-arguments-no-parens"}],"beginCaptures":{"1":{"name":"meta.brace.round.js"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"function-arguments-no-parens":{"name":"meta.function.arguments.abl","patterns":[{"match":"(?i)\\s*((input-o(?:utput|utpu|utp|u)?)|output|input|table-handle|dataset-handle|append|by-value|by-reference|bind)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},{"match":"(?i)\\b(dataset)\\s+([a-zA-Z_\\-#$%]+(\\.[a-zA-Z_\\-#$%]+)?)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.dataset.abl"}}},{"match":"(?i)\\b(temp-table|table|buffer)\\s+([a-zA-Z_\\-#$%]+(\\.[a-zA-Z_\\-#$%]+)?)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},{"include":"#function-arguments"},{"include":"#constant"},{"include":"#type-reference"},{"include":"#abl-system-handles"},{"include":"#can-find"},{"include":"#language-functions"},{"include":"#abl-functions"},{"include":"#type-member-call"},{"include":"#db-dot-table-dot-field"},{"include":"#handle-attributes"},{"include":"#handle-methods"},{"include":"#keywords"},{"include":"#expression"},{"include":"#comment"},{"include":"#array-literal"},{"include":"#punctuation-comma"},{"include":"#preprocessors"}]},"function-definition":{"name":"meta.define.function.abl","begin":"(?i)\\b(function)\\s+([a-zA-Z0-9_][a-zA-Z0-9_#$\\-%\u0026]+)\\b","end":"(\\.|:)","patterns":[{"match":"(?i)\\b(map|to)\\s+(?!to\\s+)([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]+)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.function.abl"}}},{"match":"(?i)\\b(returns|private|class|extent|in|super|forward|map)\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#function-parameter-definition"},{"include":"#parens"},{"begin":"(?i)(?\u003c=\\)|in)","end":"(?=(\\.|:)\\s)","patterns":[{"match":"\\b([Ii][Nn])\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"match":"\\b([Ss][Uu][Pp][Ee][Rr])\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#type-member-call"},{"include":"#variable-name"},{"include":"#keywords"},{"include":"#comment"},{"include":"#string"},{"include":"#preprocessors"}]},{"include":"#primitive-type"},{"include":"#type-name"},{"include":"#keywords"},{"include":"#comment"},{"include":"#preprocessors"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.function.abl"}},"endCaptures":{"1":{"name":"punctuation.terminator.abl"}}},"function-parameter-definition":{"name":"meta.function.parameters","begin":"(\\()","end":"(\\))","patterns":[{"include":"#parameter-definition"}],"beginCaptures":{"1":{"name":"meta.brace.round.js"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"get-class":{"name":"meta.function-call.abl","begin":"(?i)\\s*(get-class)\\s*(\\()","end":"(\\))","patterns":[{"include":"#string"},{"include":"#type-names"}],"beginCaptures":{"1":{"name":"support.function.abl"},"2":{"name":"meta.brace.round.js"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"global-scoped-define":{"name":"meta.preprocessor.define.abl","begin":"(?i)((?:\u0026scop(?:ed-define|ed-defin|ed-defi|ed-def|ed-de|ed-d|ed-|ed|e)?)|(?:\u0026glob(?:al-define|al-defin|al-defi|al-def|al-de|al-d|al-|al|a)?))\\s*([\\.a-zA-Z0-9_\\-#$%\\\\/]*)\\s*","end":"(?=//|/\\*)|$","patterns":[{"include":"#string"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.function.preprocessor.abl"}}},"handle-attributes":{"patterns":[{"include":"#handle-attributes-A"},{"include":"#handle-attributes-B"},{"include":"#handle-attributes-C"},{"include":"#handle-attributes-D"},{"include":"#handle-attributes-E"},{"include":"#handle-attributes-F"},{"include":"#handle-attributes-G"},{"include":"#handle-attributes-H"},{"include":"#handle-attributes-I"},{"include":"#handle-attributes-K"},{"include":"#handle-attributes-L"},{"include":"#handle-attributes-M"},{"include":"#handle-attributes-N"},{"include":"#handle-attributes-O"},{"include":"#handle-attributes-P"},{"include":"#handle-attributes-Q"},{"include":"#handle-attributes-R"},{"include":"#handle-attributes-S"},{"include":"#handle-attributes-T"},{"include":"#handle-attributes-U"},{"include":"#handle-attributes-V"},{"include":"#handle-attributes-W"},{"include":"#handle-attributes-X"},{"include":"#handle-attributes-Y"}]},"handle-attributes-A":{"match":"(?i)(:)((ambig(?:uous|uou|uo|u)?)|(appl-alert(?:-boxes|-boxe|-box|-bo|-b|-)?)|(attr(?:-space|-spac|-spa|-sp|-s|-)?)|(auto-comp(?:letion|letio|leti|let|le|l)?)|(auto-ind(?:ent|en|e)?)|(auto-ret(?:urn|ur|u)?)|(auto-val(?:idate|idat|ida|id|i)?)|(auto-z(?:ap|a)?)|(avail(?:able|abl|ab|a)?)|accelerator|active|actor|adm-data|after-buffer|after-rowid|after-table|allow-column-searching|allow-prev-deserialization|always-on-top|appl-context-id|appserver-info|appserver-password|appserver-userid|async-request-count|async-request-handle|asynchronous|attached-pairlist|attribute-names|audit-event-context|auto-delete|auto-delete-xml|auto-end-key|auto-go|auto-resize|auto-synchronize|available-formats)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-B":{"match":"(?i)(:)((back(?:ground|groun|grou|gro|gr|g)?)|(bgc(?:olor|olo|ol|o)?)|(border-bottom-c(?:hars|har|ha|h)?)|(border-bottom-p(?:ixels|ixel|ixe|ix|i)?)|(border-left-c(?:hars|har|ha|h)?)|(border-left-p(?:ixels|ixel|ixe|ix|i)?)|(border-right-c(?:hars|har|ha|h)?)|(border-right-p(?:ixels|ixel|ixe|ix|i)?)|(border-top-c(?:hars|har|ha|h)?)|(border-top-p(?:ixels|ixel|ixe|ix|i)?)|(box-select(?:able|abl|ab|a)?)|(buffer-n(?:ame|am|a)?)|base-ade|basic-logging|batch-mode|batch-size|before-buffer|before-rowid|before-table|blank|block-iteration-display|box|buffer-chars|buffer-field|buffer-group-id|buffer-group-name|buffer-handle|buffer-lines|buffer-partition-id|buffer-tenant-id|buffer-tenant-name|bytes-read|bytes-written)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-C":{"match":"(?i)(:)((can-crea(?:te|t)?)|(can-dele(?:te|t)?)|(can-writ(?:e)?)|(case-sen(?:sitive|sitiv|siti|sit|si|s)?)|(center(?:ed|e)?)|(column(?:s)?)|(column-bgc(?:olor|olo|ol|o)?)|(column-fgc(?:olor|olo|ol|o)?)|(column-lab(?:el|e)?)|(column-pfc(?:olor|olo|ol|o)?)|(column-sc(?:rolling|rollin|rolli|roll|rol|ro|r)?)|(convert-3d(?:-colors|-color|-colo|-col|-co|-c|-)?)|(cpint(?:ernal|erna|ern|er|e)?)|(crc-val(?:ue|u)?)|(current-env(?:ironment|ironmen|ironme|ironm|iron|iro|ir|i)?)|cache|call-name|call-type|can-do-domain-support|can-read|cancel-button|cancelled|careful-paint|charset|checked|child-buffer|child-num|class-type|client-connection-id|client-tty|client-type|client-workstation|code|codepage|column-dcolor|column-font|column-movable|column-read-only|column-resizable|com-handle|complete|config-name|context-help|context-help-file|context-help-id|control-box|coverage|cpcase|cpcoll|cplog|cpprint|cprcodein|cprcodeout|cpstream|cpterm|current-changed|current-column|current-iteration|current-request-info|current-response-info|current-result-row|current-row-modified|current-window|cursor-char|cursor-line|cursor-offset)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-D":{"match":"(?i)(:)((data-entry-ret(?:urn|ur|u)?)|(data-t(?:ype|yp|y)?)|(date-f(?:ormat|orma|orm|or|o)?)|(dde-i(?:d)?)|(default-but(?:ton|to|t)?)|(descript(?:ion|io|i)?)|(display-t(?:ype|yp|y)?)|data-source|data-source-complete-map|data-source-modified|data-source-rowid|dataset|db-context|db-list|db-references|dbname|dcolor|dde-error|dde-item|dde-name|dde-topic|deblank|debug-alert|decimals|default|default-buffer-handle|default-commit|default-string|default-value|delimiter|directory|disable-auto-zap|display-timezone|domain-description|domain-name|domain-type|down|drag-enabled|drop-target|dynamic)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-E":{"match":"(?i)(:)((edge-c(?:hars|har|ha|h)?)|(edge-p(?:ixels|ixel|ixe|ix|i)?)|(error-col(?:umn|um|u)?)|(event-t(?:ype|yp|y)?)|edit-can-paste|edit-can-undo|empty|enabled|encoding|encryption-salt|end-user-prompt|entity-expansion-limit|entry-types-list|error|error-object|error-object-detail|error-row|error-stack-trace|error-string|event-group-id|event-handler|event-handler-object|event-procedure|event-procedure-context|exclusive-id|execution-log|exit-code|expand|expandable|extent)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-F":{"match":"(?i)(:)((fgc(?:olor|olo|ol|o)?)|(file-create-d(?:ate|at|a)?)|(file-create-t(?:ime|im|i)?)|(file-mod-d(?:ate|at|a)?)|(file-mod-t(?:ime|im|i)?)|(file-off(?:set|se|s)?)|(first-async(?:-request|-reques|-reque|-requ|-req|-re|-r|-)?)|(first-proc(?:edure|edur|edu|ed|e)?)|(first-serv(?:er|e)?)|(first-tab-i(?:tem|te|t)?)|(fore(?:ground|groun|grou|gro|gr|g)?)|(form(?:at|a)?)|(formatte(?:d)?)|(fragmen(?:t)?)|(fram(?:e)?)|(frame-spa(?:cing|cin|ci|c)?)|(full-height-c(?:hars|har|ha|h)?)|(full-height-p(?:ixels|ixel|ixe|ix|i)?)|(full-pathn(?:ame|am|a)?)|(full-width(?:-chars|-char|-cha|-ch|-c|-)?)|(full-width-p(?:ixels|ixel|ixe|ix|i)?)|file-name|file-size|file-type|fill-mode|fill-where-string|filled|first-buffer|first-child|first-column|first-data-source|first-dataset|first-form|first-object|first-query|first-server-socket|first-socket|fit-last-column|flat-button|focused-row|focused-row-selected|font|foreign-key-hidden|form-input|form-long-input|forward-only|frame-col|frame-name|frame-row|frame-x|frame-y|frequency|function)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-G":{"match":"(?i)(:)((graphic-e(?:dge|dg|d)?)|(grid-factor-h(?:orizontal|orizonta|orizont|orizon|orizo|oriz|ori|or|o)?)|(grid-factor-v(?:ertical|ertica|ertic|erti|ert|er|e)?)|(grid-unit-height-c(?:hars|har|ha|h)?)|(grid-unit-height-p(?:ixels|ixel|ixe|ix|i)?)|(grid-unit-width-c(?:hars|har|ha|h)?)|(grid-unit-width-p(?:ixels|ixel|ixe|ix|i)?)|grid-snap|grid-visible|group-box)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-H":{"match":"(?i)(:)((height-c(?:hars|har|ha|h)?)|(height-p(?:ixels|ixel|ixe|ix|i)?)|(hori(?:zontal|zonta|zont|zon|zo|z)?)|handle|handler|has-lobs|has-records|help|hidden|html-charset|html-end-of-line|html-end-of-page|html-frame-begin|html-frame-end|html-header-begin|html-header-end|html-title-begin|html-title-end|hwnd)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-I":{"match":"(?i)(:)((icfparam(?:eter|ete|et|e)?)|(ignore-current-mod(?:ified|ifie|ifi|if|i)?)|(index-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|(inherit-bgc(?:olor|olo|ol|o)?)|(inherit-fgc(?:olor|olo|ol|o)?)|(is-clas(?:s)?)|(is-partitione(?:d)?)|icon|image|image-down|image-insensitive|image-up|immediate-display|in-handle|index|initial|inner-chars|inner-lines|input-value|instantiating-procedure|internal-entries|is-json|is-multi-tenant|is-open|is-parameter-set|is-xml|items-per-row)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-K":{"match":"(?i)(:)((keep-frame-z(?:-order|-orde|-ord|-or|-o|-)?)|keep-connection-open|keep-security-cache|key|keys)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-L":{"match":"(?i)(:)((label-bgc(?:olor|olo|ol|o)?)|(label-dc(?:olor|olo|ol|o)?)|(label-fgc(?:olor|olo|ol|o)?)|(language(?:s)?)|(last-async(?:-request|-reques|-reque|-requ|-req|-re|-r|-)?)|(last-proce(?:dure|dur|du|d)?)|(last-serv(?:er|e)?)|(last-tab-i(?:tem|te|t)?)|label|label-font|labels|labels-have-colons|large|large-to-small|last-batch|last-child|last-form|last-object|last-server-socket|last-socket|length|library|library-calling-convention|line|list-item-pairs|list-items|listings|literal-question|local-host|local-name|local-port|local-version-info|locator-column-number|locator-line-number|locator-public-id|locator-system-id|locator-type|locked|log-entry-types|log-threshold|logfile-name|logging-level|login-expiration-timestamp|login-host|login-state)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-M":{"match":"(?i)(:)((max-height-c(?:hars|har|ha|h)?)|(max-height-p(?:ixels|ixel|ixe|ix|i)?)|(max-val(?:ue|u)?)|(max-width-c(?:hars|har|ha|h)?)|(max-width-p(?:ixels|ixel|ixe|ix|i)?)|(menu-k(?:ey|e)?)|(menu-m(?:ouse|ous|ou|o)?)|(min-column-width-c(?:hars|har|ha|h)?)|(min-column-width-p(?:ixels|ixel|ixe|ix|i)?)|(min-height-c(?:hars|har|ha|h)?)|(min-height-p(?:ixels|ixel|ixe|ix|i)?)|(min-schema-marshal(?:l)?)|(min-val(?:ue|u)?)|(min-width-c(?:hars|har|ha|h)?)|(min-width-p(?:ixels|ixel|ixe|ix|i)?)|(mouse-p(?:ointer|ointe|oint|oin|oi|o)?)|mandatory|manual-highlight|max-button|max-chars|max-data-guess|maximum-level|menu-bar|merge-by-field|message-area|message-area-font|min-button|modified|movable|multi-compile|multiple|multitasking-interval|must-understand)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-N":{"match":"(?i)(:)((next-col(?:umn|um|u)?)|(next-tab-ite(?:m)?)|(no-schema-marshal(?:l)?)|(no-val(?:idate|idat|ida|id|i)?)|(num-but(?:tons|ton|to|t)?)|(num-col(?:umns|umn|um|u)?)|(num-locked-col(?:umns|umn|um|u)?)|(num-repl(?:aced|ace|ac|a)?)|(num-visible-col(?:umns|umn|um|u)?)|(numeric-dec(?:imal-point|imal-poin|imal-poi|imal-po|imal-p|imal-|imal|ima|im|i)?)|(numeric-f(?:ormat|orma|orm|or|o)?)|(numeric-sep(?:arator|arato|arat|ara|ar|a)?)|name|namespace-prefix|namespace-uri|needs-appserver-prompt|needs-prompt|nested|new|new-row|next-rowid|next-sibling|no-current-value|no-empty-space|no-focus|node-value|nonamespace-schema-location|num-buffers|num-child-relations|num-children|num-dropped-files|num-entries|num-fields|num-formats|num-header-entries|num-items|num-iterations|num-lines|num-log-files|num-messages|num-parameters|num-references|num-relations|num-results|num-selected-rows|num-selected-widgets|num-source-buffers|num-tabs|num-to-retain|num-top-buffers)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-O":{"match":"(?i)(:)((on-frame(?:-border|-borde|-bord|-bor|-bo|-b|-)?)|options|ordinal|origin-handle|origin-rowid|overlay|owner|owner-document)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-P":{"match":"(?i)(:)((page-bot(?:tom|to|t)?)|(param(?:eter|ete|et|e)?)|(parent-rel(?:ation|atio|ati|at|a)?)|(pbe-hash-alg(?:orithm|orith|orit|ori|or|o)?)|(persist(?:ent|en|e)?)|(pfc(?:olor|olo|ol|o)?)|(pixels-per-col(?:umn|um|u)?)|(popup-m(?:enu|en|e)?)|(popup-o(?:nly|nl|n)?)|(prev-col(?:umn|um|u)?)|(prev-tab-i(?:tem|te|t)?)|(private-d(?:ata|at|a)?)|(progress-s(?:ource|ourc|our|ou|o)?)|page-top|parent|parent-buffer|parent-fields-after|parent-fields-before|parent-id-relation|parse-status|password-field|pathname|pbe-key-rounds|persistent-cache-disabled|persistent-procedure|pixels-per-row|position|prefer-dataset|prepare-string|prepared|prev-sibling|primary|primary-passphrase|printer-control-handle|printer-hdc|printer-name|printer-port|procedure-name|procedure-type|profiling|proxy|proxy-password|proxy-userid|public-id|published-events)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-Q":{"match":"(?i)(:)(qualified-user-id|query|query-off-end|quit)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-R":{"match":"(?i)(:)((record-len(?:gth|gt|g)?)|(relation-fi(?:elds|eld|el|e)?)|(resiza(?:ble|bl|b)?)|(retain-s(?:hape|hap|ha|h)?)|(return-ins(?:erted|erte|ert|er|e)?)|(return-val(?:ue|u)?)|(row-height-c(?:hars|har|ha|h)?)|(row-height-p(?:ixels|ixel|ixe|ix|i)?)|(row-ma(?:rkers|rker|rke|rk|r)?)|radio-buttons|read-only|recid|recursive|refreshable|rejected|relations-active|remote|remote-host|remote-port|reposition|request-info|resize|response-info|restart-row|restart-rowid|return-value-data-type|return-value-dll-type|role|roles|rounded|row|row-resizable|row-state|rowid)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-S":{"match":"(?i)(:)((screen-val(?:ue|u)?)|(scrollbar-h(?:orizontal|orizonta|orizont|orizon|orizo|oriz|ori|or|o)?)|(scrollbar-v(?:ertical|ertica|ertic|erti|ert|er|e)?)|(separator-fgc(?:olor|olo|ol|o)?)|(server-connection-bo(?:und|un|u)?)|(server-connection-bound-re(?:quest|ques|que|qu|q)?)|(server-connection-co(?:ntext|ntex|nte|nt|n)?)|(show-in-task(?:bar|ba|b)?)|(side-label-h(?:andle|andl|and|an|a)?)|(skip-deleted-rec(?:ord|or|o)?)|(stoppe(?:d)?)|(super-proc(?:edures|edure|edur|edu|ed|e)?)|(suppress-w(?:arnings|arning|arnin|arni|arn|ar|a)?)|(system-alert(?:-boxes|-boxe|-box|-bo|-b|-)?)|save-where-string|schema-change|schema-location|schema-marshal|schema-path|screen-lines|scroll-bars|scrollable|seal-timestamp|selectable|selected|selection-end|selection-start|selection-text|sensitive|separators|serialize-hidden|serialize-name|server|server-connection-id|server-operating-mode|session-end|session-id|side-labels|signature-value|single-run|singleton|small-icon|small-title|soap-fault-actor|soap-fault-code|soap-fault-detail|soap-fault-misunderstood-header|soap-fault-node|soap-fault-role|soap-fault-string|soap-fault-subcode|soap-version|sort|sort-ascending|sort-number|ssl-server-name|standalone|startup-parameters|state-detail|statistics|status-area|status-area-font|stop|stop-object|stream|stretch-to-fit|strict|strict-entity-resolution|subtype|suppress-namespace-processing|suppress-warnings-list|symmetric-encryption-aad|symmetric-encryption-algorithm|symmetric-encryption-iv|symmetric-encryption-key|symmetric-support|system-id)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-T":{"match":"(?i)(:)((table-num(?:ber|be|b)?)|(temp-dir(?:ectory|ector|ecto|ect|ec|e)?)|(title-bgc(?:olor|olo|ol|o)?)|(title-dc(?:olor|olo|ol|o)?)|(title-fgc(?:olor|olo|ol|o)?)|(title-fo(?:nt|n)?)|(trans-init-proc(?:edure|edur|edu|ed|e)?)|(transact(?:ion|io|i)?)|(transpar(?:ent|en|e)?)|tab-position|tab-stop|table|table-crc-list|table-handle|table-list|text-selected|thread-safe|three-d|tic-marks|time-source|timezone|title|toggle-box|tooltip|tooltips|top-nav-query|top-only|trace-filter|tracing|tracking-changes|type)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-U":{"match":"(?i)(:)(undo|undo-throw-scope|unique-id|unique-match|url|url-password|url-userid|user-id)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-V":{"match":"(?i)(:)((validate-expressio(?:n)?)|(virtual-height-c(?:hars|har|ha|h)?)|(virtual-height-p(?:ixels|ixel|ixe|ix|i)?)|(virtual-width-c(?:hars|har|ha|h)?)|(virtual-width-p(?:ixels|ixel|ixe|ix|i)?)|v6display|validate-message|validate-xml|validation-enabled|value|version|view-as|view-first-column-on-reopen|visible)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-W":{"match":"(?i)(:)((widget-e(?:nter|nte|nt|n)?)|(widget-l(?:eave|eav|ea|e)?)|(width-c(?:hars|har|ha|h)?)|(width-p(?:ixels|ixel|ixe|ix|i)?)|(window-sta(?:te|t)?)|(window-sys(?:tem|te|t)?)|(work-area-height-p(?:ixels|ixel|ixe|ix|i)?)|(work-area-width-p(?:ixels|ixel|ixe|ix|i)?)|warning|wc-admin-app|where-string|widget-id|window|word-wrap|work-area-x|work-area-y|write-status)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-X":{"match":"(?i)(:)((xml-schema-pat(?:h)?)|x|x-document|xcode-session-key|xml-data-type|xml-entity-expansion-limit|xml-node-name|xml-node-type|xml-strict-entity-resolution|xml-suppress-namespace-processing)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-Y":{"match":"(?i)(:)(y|year-offset)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-methods":{"patterns":[{"include":"#handle-methods-A"},{"include":"#handle-methods-B"},{"include":"#handle-methods-C"},{"include":"#handle-methods-D"},{"include":"#handle-methods-E"},{"include":"#handle-methods-F"},{"include":"#handle-methods-G"},{"include":"#handle-methods-I"},{"include":"#handle-methods-L"},{"include":"#handle-methods-M"},{"include":"#handle-methods-N"},{"include":"#handle-methods-Q"},{"include":"#handle-methods-R"},{"include":"#handle-methods-S"},{"include":"#handle-methods-T"},{"include":"#handle-methods-U"},{"include":"#handle-methods-V"},{"include":"#handle-methods-W"}]},"handle-methods-A":{"begin":"(?i)(:)((add-calc-col(?:umn|um|u)?)|(add-events-proc(?:edure|edur|edu|ed|e)?)|(add-like-col(?:umn|um|u)?)|(add-rel(?:ation|atio|ati|at|a)?)|(add-super-proc(?:edure|edur|edu|ed|e)?)|accept-changes|accept-row-changes|add-buffer|add-columns-from|add-fields-from|add-first|add-header-entry|add-index-field|add-last|add-like-field|add-like-index|add-new-field|add-new-index|add-parent-id-relation|add-schema-location|add-source-buffer|append-child|apply-callback|attach-data-source|authentication-failed)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-B":{"begin":"(?i)(:)((buffer-comp(?:are|ar|a)?)|(buffer-releas(?:e)?)|begin-event-group|buffer-copy|buffer-create|buffer-delete|buffer-export|buffer-export-fields|buffer-field|buffer-import|buffer-import-fields|buffer-validate|buffer-value)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-C":{"begin":"(?i)(:)((clear-select(?:ion|io|i)?)|(clear-sort-arrow(?:s)?)|(convert-to-offs(?:et|e)?)|cancel-break|cancel-requests|cancel-requests-after|clear|clear-appl-context|clear-log|clone-node|close-log|connect|connected|copy-dataset|copy-sax-attributes|copy-temp-table|create-like|create-like-sequential|create-node|create-node-namespace|create-result-list-entry|current-query)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-D":{"begin":"(?i)(:)((debu(?:g)?)|(discon(?:nect|nec|ne|n)?)|declare-namespace|delete|delete-char|delete-current-row|delete-header-entry|delete-line|delete-node|delete-result-list-entry|delete-selected-row|delete-selected-rows|deselect-focused-row|deselect-rows|deselect-selected-row|detach-data-source|disable|disable-connections|disable-dump-triggers|disable-load-triggers|display-message|dump-logging-now)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-E":{"begin":"(?i)(:)(edit-clear|edit-copy|edit-cut|edit-paste|edit-undo|empty-dataset|empty-temp-table|enable|enable-connections|encode-domain-access-code|encrypt-audit-mac-key|end-document|end-element|end-event-group|end-file-drop|entry|export|export-principal|)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-F":{"begin":"(?i)(:)(fetch-selected-row|fill|find-by-rowid|find-current|find-first|find-last|find-unique|first-of)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-G":{"begin":"(?i)(:)((get-blue(?:-value|-valu|-val|-va|-v|-)?)|(get-browse-col(?:umn|um|u)?)|(get-child-rel(?:ation|atio|ati|at|a)?)|(get-curr(?:ent|en|e)?)|(get-file-offse(?:t)?)|(get-firs(?:t)?)|(get-green(?:-value|-valu|-val|-va|-v|-)?)|(get-header-entr(?:y)?)|(get-red(?:-value|-valu|-val|-va|-v|-)?)|(get-rel(?:ation|atio|ati|at|a)?)|(get-rgb(?:-value|-valu|-val|-va|-v|-)?)|(get-selected(?:-widget|-widge|-widg|-wid|-wi|-w|-)?)|(get-text-height-c(?:hars|har|ha|h)?)|(get-text-height-p(?:ixels|ixel|ixe|ix|i)?)|(get-text-width-c(?:hars|har|ha|h)?)|(get-text-width-p(?:ixels|ixel|ixe|ix|i)?)|(get-wait(?:-state|-stat|-sta|-st|-s|-)?)|get-attribute|get-attribute-node|get-binary-data|get-buffer-handle|get-bytes-available|get-callback-proc-context|get-callback-proc-name|get-cgi-list|get-cgi-long-value|get-cgi-value|get-changes|get-child|get-client|get-column|get-config-value|get-dataset-buffer|get-document-element|get-dropped-file|get-dynamic|get-error-column|get-error-row|get-file-name|get-index-by-namespace-name|get-index-by-qname|get-iteration|get-last|get-localname-by-index|get-message|get-message-type|get-next|get-node|get-number|get-parent|get-prev|get-printers|get-property|get-qname-by-index|get-repositioned-row|get-row|get-safe-user|get-serialized|get-signature|get-socket-option|get-source-buffer|get-tab-item|get-top-buffer|get-type-by-index|get-type-by-namespace-name|get-type-by-qname|get-uri-by-index|get-value-by-index|get-value-by-namespace-name|get-value-by-qname)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-I":{"begin":"(?i)(:)((index-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|(insert-b(?:acktab|ackta|ackt|ack|ac|a)?)|(insert-t(?:ab|a)?)|import-node|import-principal|increment-exclusive-id|initialize|initialize-document-type|initiate|insert|insert-attribute|insert-before|insert-file|insert-row|insert-string|invoke|is-row-selected|is-selected)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-L":{"begin":"(?i)(:)((load-mouse-p(?:ointer|ointe|oint|oin|oi|o)?)|last-of|list-property-names|load|load-domains|load-icon|load-image|load-image-down|load-image-insensitive|load-image-up|load-small-icon|lock-registration|log-audit-event|logout|longchar-to-node-value|lookup|)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-M":{"begin":"(?i)(:)((move-after(?:-tab-item|-tab-ite|-tab-it|-tab-i|-tab-|-tab|-ta|-t|-)?)|(move-befor(?:e-tab-item|e-tab-ite|e-tab-it|e-tab-i|e-tab-|e-tab|e-ta|e-t|e-|e)?)|(move-col(?:umn|um|u)?)|(move-to-b(?:ottom|otto|ott|ot|o)?)|(move-to-t(?:op|o)?)|mark-new|mark-row-state|memptr-to-node-value|merge-changes|merge-row-changes|move-to-eof)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-N":{"begin":"(?i)(:)(node-value-to-longchar|node-value-to-memptr|normalize)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-Q":{"begin":"(?i)(:)(query-close|query-open|query-prepare)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-R":{"begin":"(?i)(:)((remove-events-proc(?:edure|edur|edu|ed|e)?)|(remove-super-proc(?:edure|edur|edu|ed|e)?)|raw-transfer|read|read-file|read-json|read-xml|read-xmlschema|refresh|refresh-audit-policy|register-domain|reject-changes|reject-row-changes|remove-attribute|remove-child|replace|replace-child|replace-selection-text|reposition-to-row|reposition-to-rowid|reset||)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-S":{"begin":"(?i)(:)((scroll-to-i(?:tem|te|t)?)|(set-blue(?:-value|-valu|-val|-va|-v|-)?)|(set-green(?:-value|-valu|-val|-va|-v|-)?)|(set-numeric-form(?:at|a)?)|(set-red(?:-value|-valu|-val|-va|-v|-)?)|(set-rgb(?:-value|-valu|-val|-va|-v|-)?)|(set-wait(?:-state|-stat|-sta|-st|-s|-)?)|save|save-file|save-row-changes|sax-parse|sax-parse-first|sax-parse-next|scroll-to-current-row|scroll-to-selected-row|seal|search|select-all|select-focused-row|select-next-row|select-prev-row|select-row|serialize-row|set-actor|set-appl-context|set-attribute|set-attribute-node|set-break|set-buffers|set-callback|set-callback-procedure|set-client|set-commit|set-connect-procedure|set-dynamic|set-input-source|set-must-understand|set-node|set-output-destination|set-parameter|set-property|set-read-response-procedure|set-repositioned-row|set-role|set-rollback|set-safe-user|set-selection|set-serialized|set-socket-option|set-sort-arrow|start-document|start-element|stop-parsing|string-value|synchronize)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-T":{"begin":"(?i)(:)((temp-table-prepar(?:e)?)|tenant-id|tenant-name)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-U":{"begin":"(?i)(:)(update-attribute|url-decode|url-encode|user-data)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-V":{"begin":"(?i)(:)(validate|validate-domain-access-code|validate-seal)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-W":{"begin":"(?i)(:)(write|write-cdata|write-characters|write-comment|write-data|write-data-element|write-empty-element|write-entity-ref|write-external-dtd|write-fragment|write-json|write-message|write-processing-instruction|write-xml|write-xmlschema)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"if-then":{"begin":"(?i)\\b(if)\\b","end":"(?i)\\b(?=then)\\b","patterns":[{"match":"(?i)\\b(and|or)\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#parens"},{"include":"#function-arguments"},{"include":"#property-call"},{"include":"#static-object-property-call"},{"include":"#db-dot-table-dot-field"},{"include":"#comment"},{"include":"#operator"},{"include":"#code-block"},{"include":"#handle-attributes"},{"include":"#preprocessors"},{"include":"#abl-system-handles"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"include-file":{"name":"meta.include.abl","begin":"({)\\s*(['\"]?([\\\\\\/\\w$\\-]+)(\\.[\\w]+['\"]?)?)","end":"\\s*(})\\s*","patterns":[{"include":"#argument-reference"},{"name":"meta.include.argument.abl","match":"(?\u003c=\\s)(\u0026[a-zA-Z0-9][a-zA-Z0-9_\\-#$%#$\\-%\\.]+)\\s*(=)?","captures":{"1":{"name":"support.other.argument.abl"},"2":{"name":"keyword.operator.source.abl"}}},{"include":"#string"},{"match":"([a-zA-Z0-9][a-zA-Z0-9_\\-#$%#$\\-%\\.:]+)\\b","captures":{"1":{"name":"support.other.argument.abl"}}},{"match":"(?\u003c=\\=)(/\\*+)|(\\*+/)|(//)","captures":{"0":{"name":"support.other.argument.abl"}}},{"include":"#argument-reference"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"punctuation.section.abl"},"2":{"name":"entity.name.include.abl"}},"endCaptures":{"1":{"name":"punctuation.section.abl"}}},"inherits-implements-type":{"name":"meta.define-type.implements.abl","begin":"(?i)\\s*(implements|inherits)\\s*(([\\w#$%]+|progress)(\\.[\\w#$%]+)*(?\u003c!\\.))\\s*","end":"(?i)\\s*(serializable|abstract|final|use-widget-pool|inherits|implements+?)","patterns":[{"include":"#type-names"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.type.abl"}},"endCaptures":{"1":{"name":"keyword.other.abl"}}},"input-output-from-to":{"begin":"(?i)\\b(input|output)\\s+((stream|stream-handle)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s+)?(from|to)","end":"(?i)(?=\\.|target|source)","patterns":[{"include":"#type-member-call"},{"include":"#abl-functions"},{"include":"#abl-system-handles"},{"include":"#keywords"},{"include":"#comment"},{"include":"#array-literal"},{"include":"#preprocessors"},{"include":"#opsys-device-name"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"3":{"name":"keyword.other.abl"},"4":{"patterns":[{"include":"#variable-name"}]},"5":{"name":"keyword.other.abl"}}},"keywords":{"patterns":[{"include":"#keywords-A"},{"include":"#keywords-B"},{"include":"#keywords-C"},{"include":"#keywords-D"},{"include":"#keywords-E"},{"include":"#keywords-F"},{"include":"#keywords-G"},{"include":"#keywords-H"},{"include":"#keywords-I"},{"include":"#keywords-J"},{"include":"#keywords-K"},{"include":"#keywords-L"},{"include":"#keywords-M"},{"include":"#keywords-N"},{"include":"#keywords-O"},{"include":"#keywords-P"},{"include":"#keywords-Q"},{"include":"#keywords-R"},{"include":"#keywords-S"},{"include":"#keywords-T"},{"include":"#keywords-U"},{"include":"#keywords-V"},{"include":"#keywords-W"},{"include":"#keywords-X"},{"include":"#keywords-Y"}]},"keywords-A":{"match":"(?i)\\b((accum(?:ulate|ulat|ula|ul|u)?)|(ambig(?:uous|uou|uo|u)?)|(array-m(?:essage|essag|essa|ess|es|e)?)|(asc(?:ending|endin|endi|end|en|e)?)|(avail(?:able|abl|ab|a)?)|(ave(?:rage|rag|ra|r)?)|abort|abstract|across|active-form|active-window|add|advise|aggregate|alert-box|all|allow-replication|alter|alternate-key|and|ansi-only|any|any-key|any-printable|anywhere|append|append-line|application|apply|as|as-cursor|ask-overwrite|assembly|assign|at|attach|attachment|attribute-type|audit-control|audit-policy|authorization|auto-endkey|auto-go|automatic|avg)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-B":{"match":"(?i)\\b((backward(?:s)?)|(before-h(?:ide|id|i)?)|(bgc(?:olor|olo|ol|o)?)|(block-lev(?:el|e)?)|(border-b(?:ottom|otto|ott|ot|o)?)|(border-l(?:eft|ef|e)?)|(border-r(?:ight|igh|ig|i)?)|(border-t(?:op|o)?)|(buffer-comp(?:are|ar|a)?)|(button(?:s)?)|(button(?:s)?)|(by-variant-point(?:er|e)?)|back-tab|backspace|base-key|base64|batch|begins|bell|between|big-endian|binary|bind|bind-where|blob|block|both|bottom|bottom-column|break|break-line|browse|browse-column-data-types|browse-column-formats|browse-column-labels|browse-header|btos|buffer|buffer-copy|by|by-pointer|by-reference|by-value|byte)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-C":{"match":"(?i)\\b((center(?:ed|e)?)|(char(?:acter|acte|act|ac|a)?)|(colon-align(?:ed|e)?)|(column(?:s)?)|(column-lab(?:el|e)?)|(column-label-bgc(?:olor|olo|ol|o)?)|(column-label-fgc(?:olor|olo|ol|o)?)|(column-label-height-c(?:hars|har|ha|h)?)|(column-label-height-p(?:ixels|ixel|ixe|ix|i)?)|(compare(?:s)?)|(context-pop(?:up|u)?)|(control-cont(?:ainer|aine|ain|ai|a)?)|(control-fram(?:e)?)|(current-lang(?:uage|uag|ua|u)?)|(curs(?:or|o)?)|cache|cache-size|call|cancel-pick|case|catch|cdecl|chained|character_length|check|check-mem-stomp|choices|choose|class|clear|client-principal|clipboard|clob|close|codebase-locator|col|col-of|collate|colon|color|color-table|column-codepage|column-label-dcolor|column-label-font|column-of|com-self|combo-box|command|compile|compiler|component-handle|component-self|connect|constrained|constructor|container-event|contains|contents|context|context-help-id|control|convert|copy|copy-lob|count|create|create-on-add|create-test-file|ctos|current|current-value|current_date|cursor-down|cursor-left|cursor-right|cursor-up|cut)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-D":{"match":"(?i)\\b((data-b(?:ind|in|i)?)|(data-rel(?:ation|atio|ati|at|a)?)|(def(?:ine|in|i)?)|(default-ex(?:tension|tensio|tensi|tens|ten|te|t)?)|(desc(?:ending|endin|endi|end|en|e)?)|(dict(?:ionary|ionar|iona|ion|io|i)?)|(discon(?:nect|nec|ne|n)?)|(disp(?:lay|la|l)?)|data-refresh-line|data-refresh-page|data-source|database|dataset|dataset-handle|dcolor|dde|dde-notify|debug-list|debug-set-tenant|debugger|declare|default|default-action|default-pop-up|default-untranslatable|default-window|defer-lob-fetch|define-user-event-manager|del|delegate|delete|delete-character|delete-column|delete-end-line|delete-field|delete-word|delimiter|deselect|deselect-extend|deselection|deselection-extend|destructor|detach|dialog-box|dialog-help|dir|disable|disabled|dismiss-menu|distinct|dll-call-type|do|dos|dos-end|dotnet-clr-loaded|double|down|drop|drop-down|drop-down-list|drop-file-notify|drop-target|dslog-manager|dump|dynamic-current-value|dynamic-new|dynamic-property)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-E":{"match":"(?i)\\b((error-stat(?:us|u)?)|(exclusive-l(?:ock|oc|o)?)|(exclusive-web(?:-user|-use|-us|-u|-)?)|each|echo|edge|editing|editor|editor-backtab|editor-tab|else|empty|empty-selection|enable|end|end-box-selection|end-error|end-key|end-move|end-resize|end-row-resize|end-search|endkey|enter-menubar|entry|enum|eq|error|escape|event|event-handler-context|events|except|exclusive|execute|exists|exit|expire|explicit|export|extended|extent|external|extract)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-F":{"match":"(?i)\\b((fgc(?:olor|olo|ol|o)?)|(field(?:s)?)|(file-access-d(?:ate|at|a)?)|(file-access-t(?:ime|im|i)?)|(file-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|(form(?:at|a)?)|(form(?:at|a)?)|(forward(?:s)?)|(fram(?:e)?)|(frame-val(?:ue|u)?)|(from-c(?:hars|har|ha|h)?)|(from-cur(?:rent|ren|re|r)?)|(from-p(?:ixels|ixel|ixe|ix|i)?)|false|false-leaks|fetch|file|filename|fill-in|filters|final|finally|find|find-case-sensitive|find-global|find-next|find-next-occurrence|find-prev-occurrence|find-previous|find-select|find-wrap-around|finder|firehose-cursor|first|fix-codepage|fixed-only|flags|flat-button|float|focus|focus-in|font|font-table|for|force-file|foreign-key-hidden|from|fromnoreorder|full-height|function|function-call-type)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-G":{"match":"(?i)\\b((get-key-val(?:ue|u)?)|ge|generate-md5|get|get-attr-call-type|get-dir|get-file|get-text-height|get-text-width|getbyte|global|go|go-on|goto|grant|grant-archive|grayed|grid-set|grid-unit-height|grid-unit-width|group|gt)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-H":{"match":"(?i)\\b((help-con(?:text|tex|te|t)?)|(helpfile-n(?:ame|am|a)?)|having|header|height|help-topic|hidden|hide|hint|home|horiz-end|horiz-home|horiz-scroll-drag|host-byte-order)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-I":{"match":"(?i)\\b((image-size-c(?:hars|har|ha|h)?)|(image-size-p(?:ixels|ixel|ixe|ix|i)?)|(info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|(input-o(?:utput|utpu|utp|ut|u)?)|if|image|image-down|image-insensitive|image-size|image-up|implements|import|in|index-hint|indexed-reposition|indicator|inherit-color-mode|inherits|init|initial|initial-dir|initial-filter|initiate|inner|input|insert|insert-column|insert-field|insert-field-data|insert-field-label|insert-mode|interface|into|is|item|iteration-changed)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-J":{"match":"(?i)\\b(join|join-by-sqldb|join-on-select)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-K":{"match":"(?i)\\b((keep-frame-z(?:-order|-orde|-ord|-or|-o|-)?)|(key-func(?:tion|tio|ti|t)?)|keep-messages|keep-tab-order|key-code|key-label|keycache-join)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-L":{"match":"(?i)\\b((label-pfc(?:olor|olo|ol|o)?)|(last-even(?:t)?)|(left-align(?:ed|e)?)|(listi(?:ng|n)?)|(longch(?:ar|a)?)|label|landscape|last-key|le|leading|leak-detection|leave|left|left-end|length|like|like-sequential|line-down|line-left|line-right|line-up|little-endian|load|load-from|load-picture|load-result-into|lob-dir|locked|log-id|log-manager|long|lookahead|lower|lt)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-M":{"match":"(?i)\\b((margin-height-c(?:hars|har|ha|h)?)|(margin-height-p(?:ixels|ixel|ixe|ix|i)?)|(margin-width-c(?:hars|har|ha|h)?)|(margin-width-p(?:ixels|ixel|ixe|ix|i)?)|(min-schema-marshal(?:l)?)|(mouse-p(?:ointer|ointe|oint|oin|oi|o)?)|machine-class|main-menu|map|margin-extra|margin-height|margin-width|matches|max|max-button|max-height|max-rows|max-size|max-width|maximize|md5-value|memptr|menu|menu-drop|menu-item|menubar|message|message-area|message-area-msg|message-line|method|min-height|min-size|min-width|mod|modulo|mouse|move|mpe|multiple-key|must-exist)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-N":{"match":"(?i)\\b((no-array-m(?:essage|essag|essa|ess|es|e)?)|(no-attr-l(?:ist|is|i)?)|(no-attr-s(?:pace|pac|pa|p)?)|(no-auto-tri(?:m)?)|(no-column-sc(?:rolling|rollin|rolli|roll|rol|ro|r)?)|(no-convert-3d(?:-colors|-color|-colo|-col|-co|-c|-)?)|(no-f(?:ill|il|i)?)|(no-inherit-bgc(?:olor|olo|ol|o)?)|(no-inherit-fgc(?:olor|olo|ol|o)?)|(no-label(?:s)?)|(no-mes(?:sage|sag|sa|s)?)|(no-prefe(?:tch|tc|t)?)|(no-query-o(?:rder-added|rder-adde|rder-add|rder-ad|rder-a|rder-|rder|rde|rd|r)?)|(no-query-u(?:nique-added|nique-adde|nique-add|nique-ad|nique-a|nique-|nique|niqu|niq|ni|n)?)|(no-return-val(?:ue|u)?)|(no-schema-marshal(?:l)?)|(no-scrollbar-v(?:ertical|ertica|ertic|erti|ert|er|e)?)|(no-tab(?:-stop|-sto|-st|-s|-)?)|(no-und(?:erline|erlin|erli|erl|er|e)?)|namespace-prefix|namespace-uri|native|ne|nested|new|new-instance|new-line|next|next-error|next-frame|next-prompt|next-word|no|no-apply|no-assign|no-attr|no-auto-validate|no-bind-where|no-box|no-console|no-convert|no-debug|no-drag|no-echo|no-error|no-firehose-cursor|no-focus|no-help|no-hide|no-index-hint|no-join-by-sqldb|no-keycache-join|no-lobs|no-lock|no-lookahead|no-map|no-pause|no-row-markers|no-scrolling|no-separate-connection|no-separators|no-undo|no-wait|no-word-wrap|node-type|non-serializable|none|not-active|null|num-copies|num-selected|numeric)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-O":{"match":"(?i)\\b((ole-invoke-loca(?:le|l)?)|(ole-names-loca(?:le|l)?)|object|octet_length|of|off|off-end|off-home|ok|ok-cancel|old|on|open|open-line-above|option|options-file|or|ordered-join|orientation|os-append|os-command|os-copy|os-create-dir|os-delete|os-dir|os-rename|os2|os400|otherwise|out-of-data|outer|outer-join|output|overlay|override)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-P":{"match":"(?i)\\b((page-wid(?:th|t)?)|(param(?:eter|ete|et|e)?)|(perf(?:ormance|ormanc|orman|orma|orm|or|o)?)|(pfc(?:olor|olo|ol|o)?)|(preproc(?:ess|es|e)?)|(presel(?:ect|ec|e)?)|(proce(?:dure|dur|du|d)?)|(prompt-f(?:or|o)?)|(put-key-val(?:ue|u)?)|package-private|package-protected|page|page-down|page-left|page-right|page-right-text|page-up|paged|parent-id-field|parent-window-close|partial-key|pascal|paste|pause|pick|pick-area|pick-both|pixels|portrait|precision|prev|prev-frame|prev-word|printer|printer-setup|private|privileges|procedure-call-type|procedure-complete|process|profile-file|profiler|prompt|promsgs|propath|property|protected|public|publish|put|put-bits|put-byte|put-bytes|put-double|put-float|put-int64|put-long|put-short|put-string|put-unsigned-long|put-unsigned-short|putbyte)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-Q":{"match":"(?i)\\b(query|query-tuning|question|quit)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-R":{"match":"(?i)\\b((rcode-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|(rect(?:angle|angl|ang|an|a)?)|(reposition-back(?:wards|ward|war|wa|w)?)|(reposition-forw(?:ards|ard|ar|a)?)|(reposition-parent-rel(?:ation|atio|ati|at|a)?)|(return-to-start-di(?:r)?)|(return-val(?:ue|u)?)|(right-align(?:ed|e)?)|(run-proc(?:edure|edur|edu|ed|e)?)|radio-set|raw|raw-transfer|read-available|read-exact-num|read-response|readkey|real|recall|recursive|reference-only|reinstate|release|repeat|replication-create|replication-delete|replication-write|reports|reposition|request|resize|result|resume-display|retain|retry-cancel|return|returns|reverse-from|revert|revoke|right|right-end|routine-level|row|row-created|row-deleted|row-display|row-entry|row-height|row-leave|row-modified|row-of|row-unmodified|rule|rule-row|rule-y|run)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-S":{"match":"(?i)\\b((sax-comple(?:te|t)?)|(scrolled-row-pos(?:ition|itio|iti|it|i)?)|(set-pointer-val(?:ue|u)?)|(share(?:-lock|-loc|-lo|-l|-)?)|(show-stat(?:s)?)|(side-lab(?:el|e)?)|(size-c(?:hars|har|ha|h)?)|(size-p(?:ixels|ixel|ixe|ix|i)?)|(stored-proc(?:edure|edur|edu|ed|e)?)|(sub-ave(?:rage|rag|ra|r)?)|(sub-max(?:imum|imu|im|i)?)|(sub-min(?:imum|imu|im|i)?)|(substr(?:ing|in|i)?)|save|save-as|sax-attributes|sax-parser-error|sax-reader|sax-running|sax-uninitialized|sax-write-begin|sax-write-complete|sax-write-content|sax-write-element|sax-write-error|sax-write-idle|sax-write-tag|sax-writer|sax-xml|schema|screen|screen-io|scroll|scroll-bars|scroll-horizontal|scroll-left|scroll-mode|scroll-notify|scroll-right|scroll-vertical|scrollbar-drag|scrolling|search-self|search-target|section|security-policy|seek|select|select-extend|select-on-join|select-repositioned-row|selected-items|selection|selection-extend|selection-list|self|send|sensitive|separate-connection|separators|serializable|serialize-hidden|serialize-name|server|server-socket|session|set|set-attr-call-type|set-byte-order|set-cell-focus|set-contents|set-db-logging|set-event-manager-option|set-option|set-state|settings|shared|short|signature|silent|simple|single|single-character|single-run|size|skip|skip-group-duplicates|skip-schema-check|slider|smallint|soap-fault|soap-header|soap-header-entryref|socket|some|source|source-procedure|space|sql|start|start-box-selection|start-extend-box-selection|start-mem-check|start-move|start-resize|start-row-resize|start-search|starting|static|status|status-area|status-area-msg|stdcall|stomp-detection|stomp-frequency|stop|stop-after|stop-display|stop-mem-check|stream|stream-handle|stream-io|string-xref|sub-count|sub-menu|sub-menu-help|sub-total|subscribe|sum|summary|super|suspend|system-dialog|system-help)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-T":{"match":"(?i)\\b((text-seg(?:-growth|-growt|-grow|-gro|-gr|-g|-)?)|(transact(?:ion|io|i)?)|tab|table-scan|target|target-procedure|temp-table|tenant|tenant-where|term|terminal|terminate|text|text-cursor|then|this-object|this-procedure|three-d|through|throw|thru|title|to|tooltip|top|top-column|topic|total|trailing|trans|transaction-mode|trigger|triggers|true|ttcodepage)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-U":{"match":"(?i)\\b((unbuff(?:ered|ere|er|e)?)|(underl(?:ine|in|i)?)|(unform(?:atted|atte|att|at|a)?)|(use-dic(?:t-exps|t-exp|t-ex|t-e|t-|t)?)|undo|union|unique|unix|unix-end|unless-hidden|unload|unsigned-byte|unsigned-int64|unsigned-integer|unsigned-long|unsigned-short|unsubscribe|up|update|upper|use|use-filename|use-index|use-revvideo|use-text|use-underline|use-widget-pool|user|using|utc-offset)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-V":{"match":"(?i)\\b((vari(?:able|abl|ab|a)?)|(verb(?:ose|os|o)?)|(vert(?:ical|ica|ic|i)?)|v6frame|validate|value-changed|values|var|view|view-as|virtual-height|virtual-width|vms|void)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-W":{"match":"(?i)\\b((web-con(?:text|tex|te|t)?)|(window-delayed-min(?:imize|imiz|imi|im|i)?)|(work-tab(?:le|l)?)|wait|wait-for|warning|web-notify|when|where|while|widget|widget-pool|width|window-close|window-maximized|window-minimized|window-name|window-normal|window-resized|window-restored|with|word-index|workfile)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-X":{"match":"(?i)\\b(x-document|x-noderef|x-of|xcode|xml-data-type|xml-node-name|xml-node-type|xor|xref|xref-xml)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-Y":{"match":"(?i)\\b(y-of|year|year-offset|yes|yes-no|yes-no-cancel)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"label-variable":{"match":"(?i)\\s*([a-zA-Z0-9_\\-#$%]+)\\s+(label)\\s*","captures":{"1":{"name":"variable.other.abl"},"2":{"name":"keyword.other.abl"}}},"language-functions":{"match":"(?i)\\b(opsys|(provers(?:ion|io|i)?)|guid|generate-uuid)\\b","captures":{"1":{"name":"support.function.abl"}}},"method-definition":{"name":"meta.define.method.abl","begin":"(?i)^\\s*(method|constructor|destructor)\\s*","end":"(?=:|\\.)","patterns":[{"include":"#access-modifier"},{"match":"(?i)\\s*(void)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"begin":"(?i)\\s*([a-zA-Z0-9_]+[a-zA-Z0-9_\\-{}#$%\u0026]*)?\\s*(\\()\\s*","end":"(\\))","patterns":[{"include":"#parameter-definition"}],"beginCaptures":{"1":{"name":"entity.name.function.abl"},"2":{"name":"meta.brace.round.js"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},{"include":"#parameter-as"},{"include":"#string"},{"include":"#extent"},{"include":"#primitive-type"},{"match":"(?i)\\b([a-zA-Z0-9_]+[a-zA-Z0-9_\\-{}#$%\u0026]*)\\b\\R","captures":{"1":{"name":"entity.name.function.abl"}}},{"include":"#dll-type"},{"include":"#type-names"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"multilinecomment":{"name":"comment.block.source.abl","contentName":"comment","begin":"/\\*","end":"\\*/","patterns":[{"name":"comment.block.source.abl","include":"#multilinecomment"}]},"new-class":{"begin":"(?i)\\b(new)\\b(?!\\-)","end":"(?=\\()","patterns":[{"include":"#type-names"},{"include":"#string"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"new-record":{"patterns":[{"match":"(?i)\\s*(new)\\s+(\\()\\s*([a-zA-Z_][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*(\\))","captures":{"1":{"name":"support.function.abl"},"2":{"name":"meta.brace.round.js"},"3":{"name":"storage.data.table.abl"},"5":{"name":"meta.brace.round.js"}}},{"match":"(?i)\\s*((new)\\s+(?!.*\\()([a-zA-Z_][a-zA-Z0-9_\\-#$%\\.]*))","captures":{"2":{"name":"support.function.abl"},"3":{"name":"storage.data.table.abl"}}}]},"numeric":{"name":"constant.numeric.source.abl","match":"(?\u003c![a-zA-Z0-9_\\-#$%-])(0[xX][[:xdigit:]]+)|(\\-?[0-9]+(\\.[0-9]+)?)"},"of-phrase":{"patterns":[{"match":"\\s*([Oo][Ff])\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z_][a-zA-Z0-9_\\-#$%]*)?)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},{"match":"(?i)\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z_][a-zA-Z0-9_\\-#$%]*)?)\\s+(of)\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z_][a-zA-Z0-9_\\-#$%]*)?)\\s*","captures":{"1":{"name":"storage.data.table.abl"},"3":{"name":"keyword.other.abl"},"4":{"name":"storage.data.table.abl"}}}]},"on-error-endkey-stop":{"match":"(?i)\\s*(on)\\s+(endkey|error|stop|quit)\\s+(undo)\\s*(?!leave|next|retry|return|throw)([a-zA-Z0-9_\\-#$%\\-$]*)?\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"},"3":{"name":"keyword.other.abl"},"4":{"name":"entity.name.label.abl"}}},"operator":{"patterns":[{"include":"#operator-no-space"},{"include":"#operator-with-space"},{"include":"#operator-with-trailing-space"}]},"operator-no-space":{"match":"(\\+=|-=|\\\\=|\\*=|\u003c=|\u003c\u003e|\u003e=|=|\\+|-|/|\u003c|\u003e|\\*)","captures":{"1":{"name":"keyword.operator.source.abl"}}},"operator-with-space":{"match":"(?i)(?\u003c=\\s)(contains|begins|matches|eq|le|lt|ge|gt|ne)(?=\\s|\\()","captures":{"1":{"name":"keyword.operator.source.abl"}}},"operator-with-trailing-space":{"match":"\\b([Nn][Oo][Tt])(?=\\s|\\()","captures":{"1":{"name":"keyword.operator.source.abl"}}},"opsys-device-name":{"match":"([_\\w\\/\\-\\\\$:\\.]+)(?\u003c!\\.)","captures":{"1":{"name":"storage.other.opsys-device.abl"}}},"ordinal":{"match":"(?i)\\s*(ordinal)\\s((0x)?[[:xdigit:]]+)?","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"constant.numeric.source.abl"}}},"parameter-as":{"begin":"\\s*([a-zA-Z0-9_\\-#$%]+)\\s+([Aa][Ss])\\s+","end":"(?=\\s|\\)|\\.|,)","patterns":[{"match":"\\s*([Cc][Ll][Aa][Ss]{2})\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#primitive-type"},{"include":"#dll-type"},{"include":"#type-names"},{"include":"#parens"},{"include":"#string"},{"include":"#punctuation-period"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"variable.parameter.abl"},"2":{"name":"keyword.other.abl"}}},"parameter-definition":{"name":"meta.define.parameter.abl","patterns":[{"match":"(?i)\\s*((input-o(?:utput|utpu|utp|u)?)|input|output|append|bind|by-value|(presel(?:ect|ec|e)?)|buffer|(param(?:eter|ete|et|e)?)|no-undo)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"match":"(?i)\\s*(dataset-handle|table-handle)\\s+([a-zA-Z][a-zA-Z0-9_\\-]*)","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.parameter.abl"}}},{"match":"(?i)\\s*(dataset)\\s+([a-zA-Z][a-zA-Z0-9_\\-]*)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.dataset.abl"}}},{"match":"(?i)\\s*(table)\\s+([a-zA-Z][a-zA-Z0-9_\\-]*)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},{"include":"#parameter-as"},{"match":"(?i)\\s*((char(?:acter|acte|act|ac|a)?)|com-handle|date|datetime-tz|datetime|(dec(?:imal|ima|im|i)?)|handle|int64|(int(?:eger|ege|eg|e)?)|(log(?:ical|ica|ic|i)?)|(longch(?:ar|a)?)|memptr|raw|recid|rowid|(widget-h(?:andle|andl|and|an|a)?))(?![=a-zA-Z0-9_\\-])\\s*(,*)","captures":{"1":{"name":"storage.type.abl"},"2":{"name":"punctuation.separator.comma.abl"}}},{"match":"\\s*(,)\\s*","captures":{"1":{"name":"punctuation.separator.comma.abl"}}},{"include":"#buffer-for-table"},{"include":"#extent"},{"include":"#property-call"},{"include":"#abl-functions"},{"include":"#array-literal"},{"include":"#decimals"},{"include":"#constant"},{"include":"#abl-system-handles"},{"include":"#keywords"},{"include":"#handle-attributes"},{"include":"#handle-methods"},{"include":"#type-names"},{"include":"#string"},{"include":"#comment"},{"include":"#preprocessors"}]},"parameter-name":{"name":"variable.parameter.abl","match":"(?\u003c=^|\\s)(a-zA-Z0-9_\\-#$%|-)+(?=\\s)"},"parens":{"name":"meta.brace.round.js","match":"\\(|\\)"},"preprocessors":{"match":"(?i)(\u0026window-system|\u0026text-height|\u0026line-number|\u0026batch-mode|\u0026file-name|\u0026undefine|\u0026sequence|\u0026message|defined|\u0026elseif|(?:\u0026scop(?:ed-define|ed-defin|ed-defi|ed-def|ed-de|ed-d|ed-|ed|e)?)|(?:\u0026glob(?:al-define|al-defin|al-defi|al-def|al-de|al-d|al-|al|a)?)|\u0026opsys|\u0026endif|\u0026else|\u0026then|\u0026if)|({\u0026[a-zA-Z0-9_\\-#$%\\s\\(\\)]+})|(\u0026[a-zA-Z0-9_\\-#$%]+)","captures":{"1":{"name":"storage.type.function.abl"},"2":{"name":"storage.type.function.abl"}}},"primitive-type":{"match":"(?i)(?\u003c=^|\\s)(blob|(char(?:acter|acte|act|ac|a)?)|cha|ch|c|clob|com-handle|date|da|datetime|datetime-tz|(dec(?:imal|ima|im|i)?)|de|handle|int64|(int(?:eger|ege|eg|e)?)|in|i|(log(?:ical|ica|ic|i)?)|lo|l|(longch(?:ar|a)?)|memptr|raw|recid|rowid|widget-handle)(?![=a-zA-Z0-9_\\-#$%\\-])","captures":{"1":{"name":"storage.type.abl"}}},"procedure-definition":{"name":"meta.procedure.abl","begin":"(?i)\\s*(proce(?:dure|dur|du|d)?)\\s+(?=[a-zA-Z_])","end":"(?=:|\\.)","patterns":[{"match":"(?i)\\b(external|cdecl|pascal|stdcall|ordinal|(persist(?:ent|en|e)?)|thread-safe|in|super)\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#string"},{"match":"([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026\\.]+)(?\u003c!\\.)","captures":{"1":{"name":"entity.name.function.abl"}}},{"include":"#argument-reference"},{"include":"#numeric"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}},"endCaptures":{"1":{"name":"punctuation.terminator.abl"}}},"property-accessor":{"patterns":[{"include":"#property-get-set-super"},{"include":"#property-get-set-empty"},{"include":"#property-get-set-block"}]},"property-as":{"match":"\\s*([a-zA-Z0-9_\\-#$%]+)\\s+([Aa][Ss])\\s*","captures":{"1":{"name":"entity.name.function.abl"},"2":{"name":"keyword.other.abl"}}},"property-call":{"match":"(:)([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\b","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"property-get-set-block":{"begin":"\\s*(?\u003c!:)\\s*([Gg][Ee][Tt]|[Ss][Ee][Tt])\\b(?![#$\\-_%\u0026])","end":"\\s*([Ee][Nn][Dd])\\s*([Gg][Ee][Tt]|[Ss][Ee][Tt])?\\s*(?=\\.)\\s*","patterns":[{"include":"#function-parameter-definition"},{"include":"#code-block"},{"include":"#punctuation-colon"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}},"endCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"property-get-set-empty":{"match":"\\b([Gg][Ee][Tt]|[Ss][Ee][Tt])\\s*(?=\\.)","captures":{"1":{"name":"keyword.other.abl"}}},"property-get-set-super":{"match":"(?i)\\b(get|set)\\s+(super)\\s*(?=\\.)","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"punctuation-colon":{"name":"punctuation.terminator.abl","match":":"},"punctuation-comma":{"match":"(,)","captures":{"1":{"name":"punctuation.separator.comma.abl"}}},"punctuation-period":{"match":"(\\.)","captures":{"1":{"name":"punctuation.terminator.abl"}}},"punctuation-semicolon":{"match":"(;)","captures":{"1":{"name":"punctuation.terminator.abl"}}},"punctuation-separator":{"name":"punctuation.separator.abl","patterns":[{"include":"#punctuation-comma"},{"match":"(:)","captures":{"1":{"name":"punctuation.separator.colon.abl"}}},{"match":"(\\.)","captures":{"1":{"name":"punctuation.separator.period.abl"}}}]},"record-buffer-functions":{"match":"(?i)\\b((?:avail(?:able|abl|ab|a)?)|locked|ambiguous)\\s*(\\()?\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*(\\))?","captures":{"1":{"name":"support.function.abl"},"2":{"name":"meta.brace.round.js"},"3":{"name":"support.data.table.abl"},"5":{"name":"meta.brace.round.js"}}},"release":{"begin":"(?i)\\s*(release)\\s*","end":"(?=\\.)","patterns":[{"include":"#comment"},{"include":"#string"},{"match":"(?i)\\s*(object)\\s+(.*)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},{"include":"#keywords"},{"include":"#db-dot-table"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"rowid-function":{"match":"(?i)\\s*(rowid)\\s*(\\()\\s*([a-zA-Z_][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*(\\))","captures":{"1":{"name":"support.function.abl"},"2":{"name":"meta.brace.round.js"},"3":{"name":"storage.data.table.abl"},"5":{"name":"meta.brace.round.js"}}},"run-quoted":{"match":"(?i)\\s*(run)\\s+(?!value)\\s*(['\"].*['\"])","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.procedure.abl"}}},"run-statement":{"patterns":[{"include":"#run-unquoted"},{"include":"#run-quoted"}]},"run-unquoted":{"match":"(?i)\\s*(run)\\s+(?!value)\\s*([\\w\\-$\\@\\/\\\\]{1,253}(\\.[\\w@$\\-]{1,2})?)","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.procedure.abl"}}},"serializable":{"match":"(?i)\\b(non-serializable|serializable)\\b","captures":{"1":{"name":"keyword.other.abl"}}},"singlelinecomment":{"name":"comment.line.double-slash.abl","match":"//.*$"},"singlequotedstring":{"name":"string.single.complex.abl","begin":"(')","end":"(?i)(')(:[L|R|T|C|U]\\d*\\b)?","patterns":[{"include":"#escape-char"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.abl"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.abl"},"2":{"name":"support.other.abl"}}},"statements":{"name":"meta.statements.abl","patterns":[{"include":"#comment"},{"include":"#abl-function-variable-arg"},{"include":"#while-expression"},{"include":"#rowid-function"},{"include":"#var-statement"},{"include":"#input-output-from-to"},{"include":"#function-definition"},{"include":"#record-buffer-functions"},{"include":"#create-statement"},{"include":"#can-find"},{"include":"#release"},{"include":"#copy-lob"},{"include":"#event-un-subscribe"},{"include":"#buffer-name"},{"include":"#temp-table-name"},{"include":"#annotation"},{"include":"#undo-statement"},{"include":"#block-statement"},{"include":"#block-label"},{"include":"#end-block"},{"include":"#end-function-procedure-method-block"},{"include":"#find-record"},{"include":"#type-argument-function"},{"include":"#get-class"},{"include":"#if-then"},{"include":"#string"},{"include":"#translation-attribute"},{"include":"#break-group"},{"include":"#event-un-subscribe"},{"include":"#property-call"},{"include":"#handle-attributes"},{"include":"#handle-methods"},{"include":"#abl-functions"},{"include":"#unqualified-method-call"},{"include":"#function-arguments"},{"include":"#method-definition"},{"include":"#access-modifier"},{"match":"(?i)\\s*(void)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#parens"},{"include":"#declarations"},{"include":"#decimals"},{"include":"#numeric"},{"include":"#constant"},{"include":"#timestamp-constant"},{"include":"#break-by"},{"include":"#new-record"},{"include":"#type-reference"},{"include":"#for-join"},{"include":"#operator"},{"include":"#analyze-suspend-resume"},{"include":"#global-scoped-define"},{"include":"#label-variable"},{"include":"#define-field"},{"include":"#define-like"},{"include":"#format-constant"},{"include":"#preprocessors"},{"include":"#procedure-definition"},{"include":"#dll-type"},{"include":"#parameter-as"},{"include":"#buffer-for-table"},{"include":"#primitive-type"},{"include":"#property-accessor"},{"include":"#for-each-table"},{"include":"#for-each-join"},{"include":"#of-phrase"},{"include":"#db-dot-table-dot-field"},{"include":"#code-block"},{"include":"#language-functions"},{"include":"#comment"},{"include":"#array-literal"},{"include":"#punctuation-semicolon"},{"include":"#punctuation-comma"},{"include":"#punctuation-colon"},{"include":"#parens"},{"include":"#keywords"},{"include":"#variable-name"},{"include":"#punctuation-period"},{"include":"#punctuation-colon"}]},"static-object-property-call":{"match":"(?i)\\s*(([\\w#$%\\-]+|progress)(\\.[\\w#$%\\-]+)+)\\s*(:)([\\w\\-]+)\\s*","captures":{"1":{"name":"entity.name.type.abl"},"4":{"name":"punctuation.separator.colon.abl"},"5":{"name":"entity.name.function.abl"}}},"string":{"patterns":[{"include":"#singlequotedstring"},{"include":"#doublequotedstring"},{"include":"#translation-attribute"}]},"temp-table-name":{"match":"(?i)\\b(temp-table)\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*)","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},"timestamp-constant":{"name":"constant.language.abl"},"translation-attribute":{"match":"(:[LlRrTtCcUu]\\d*)\\b","captures":{"1":{"name":"support.other.abl"}}},"type-argument-function":{"name":"meta.function-call.abl","begin":"(?i)\\s*(cast|type-of)\\s*(?=\\()","end":"(?\u003c=\\))","patterns":[{"begin":"(?\u003c=\\()","end":"(,)","patterns":[{"include":"#function-arguments-no-parens"},{"include":"#parens"}],"endCaptures":{"1":{"name":"punctuation.separator.comma.abl"}}},{"include":"#type-names"},{"include":"#comment"},{"include":"#string"},{"include":"#parens"},{"include":"#punctuation-comma"},{"include":"#preprocessors"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"type-member-call":{"patterns":[{"include":"#property-call"},{"include":"#unqualified-method-call"},{"include":"#static-object-property-call"}]},"type-name":{"match":"(?i)\\b([\\w#$%\\-]+(\\.[\\w#$%\\-]+)*)\\b","captures":{"1":{"name":"entity.name.type.abl"}}},"type-name-generic":{"name":"meta.generic.abl","begin":"(?i)\\s*(([\\w#$%\\-]+)(\\.[\\w#$%\\-]+)*\\s*)\\s*(\u003c)","end":"(\u003e)","patterns":[{"include":"#type-name-generic"},{"include":"#punctuation-comma"},{"include":"#type-name"}],"beginCaptures":{"1":{"name":"entity.name.type.abl"},"4":{"name":"punctuation.definition.generic.begin.abl"}},"endCaptures":{"1":{"name":"punctuation.definition.generic.end.abl"}}},"type-names":{"patterns":[{"include":"#type-name-generic"},{"include":"#type-name"}]},"type-reference":{"patterns":[{"include":"#define-type"},{"include":"#get-class"},{"include":"#new-class"},{"include":"#using"},{"include":"#type-argument-function"}]},"undo-statement":{"begin":"(?i)\\s*(undo)\\s*([a-zA-Z0-9_\\-#$%\\-$]*)?\\s*(,)","end":"(?=\\.|:)","patterns":[{"include":"#string"},{"match":"(?i)\\s*(leave|next|retry)\\s([a-zA-Z0-9_\\-#$%\\-$]*)?","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.label.abl"}}},{"include":"#new-class"},{"include":"#keywords"},{"include":"#code-block"},{"include":"#property-call"},{"include":"#function-arguments"},{"include":"#expression"},{"include":"#punctuation-colon"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.label.abl"},"3":{"name":"punctuation.separator.comma.abl"}}},"unqualified-method-call":{"match":"\\b([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\b(?=\\()","captures":{"1":{"name":"entity.name.function.abl"}}},"use-index":{"match":"(?i)\\b(use-index)\\s+([a-zA-Z_][a-zA-Z0-9_\\-$]*)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},"using":{"name":"meta.using.abl","begin":"(?i)\\s*(using)\\s*","end":"(\\.)","patterns":[{"match":"(?i)\\s*((([\\w#$%]+|progress)(\\.[\\w#$%]+)*)\\.\\*)\\s*","captures":{"2":{"name":"entity.name.package.abl"}}},{"match":"(?i)\\s*(from|propath|assembly)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#type-name"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}},"endCaptures":{"1":{"name":"punctuation.terminator.abl"}}},"var-statement":{"name":"meta.define.abl","begin":"^\\s*(var)\\s+","end":"(\\s([a-zA-Z][a-zA-Z0-9_\\-#$%]*))","patterns":[{"include":"#access-modifier"},{"include":"#serializable"},{"match":"(?i)\\s*(class)\\s*(blob|character|char|clob|com-handle|date|datetime|datetime-tz|decimal|handle|int64|integer|int|logical|longchar|memptr|raw|recid|rowid|widget-handle)?","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.type.abl"}}},{"include":"#primitive-type"},{"include":"#type-names"},{"include":"#array-literal"},{"include":"#string"},{"include":"#comment"},{"include":"#preprocessors"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}},"endCaptures":{"2":{"name":"variable.other.abl"}}},"variable-as":{"match":"\\s*([a-zA-Z0-9_\\-#$%\\-]+)\\s+([Aa][Ss])\\s*","captures":{"1":{"name":"variable.other.abl"},"2":{"name":"keyword.other.abl"}}},"variable-like":{"match":"(?i)\\s*([a-zA-Z0-9_\\-#$%\\-]+)\\s+(?=like)\\s*","captures":{"1":{"name":"variable.other.abl"}}},"variable-name":{"name":"variable.other.abl","match":"(?\u003c=^|\\s|\\[|\\(|,)([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)(?=\\.\\s|\\.$|,|:|\\s|\\)|\\]|\\[|$)"},"while-expression":{"begin":"(?i)\\s*(while)\\b","end":"(?i)(?=(transact(?:ion|io|i)?)|on|:|with)","patterns":[{"include":"#comment"},{"include":"#operator"},{"include":"#property-call"},{"include":"#branch-options"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}}}}
1
+ {"name":"OpenEdge ABL","scopeName":"source.abl","patterns":[{"include":"#statements"}],"repository":{"abl-function-variable-arg":{"name":"meta.function-call.abl","begin":"(?i)\\s*(set-size)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#parens"},{"include":"#type-member-call"},{"include":"#variable-name"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions":{"patterns":[{"include":"#abl-functions-A"},{"include":"#abl-functions-B"},{"include":"#abl-functions-C"},{"include":"#abl-functions-D"},{"include":"#abl-functions-E"},{"include":"#abl-functions-F"},{"include":"#abl-functions-G"},{"include":"#abl-functions-H"},{"include":"#abl-functions-I"},{"include":"#abl-functions-K"},{"include":"#abl-functions-L"},{"include":"#abl-functions-M"},{"include":"#abl-functions-N"},{"include":"#abl-functions-O"},{"include":"#abl-functions-P"},{"include":"#abl-functions-Q"},{"include":"#abl-functions-R"},{"include":"#abl-functions-S"},{"include":"#abl-functions-T"},{"include":"#abl-functions-U"},{"include":"#abl-functions-V"},{"include":"#abl-functions-W"},{"include":"#abl-functions-Y"}]},"abl-functions-A":{"name":"meta.function-call.abl","begin":"(?i)\\s*(a(?:bsolute?|bsolu?|bso?|ccumulate?|ccumula?|ccumu?|dd-interval|lias|mbiguous?|mbiguo?|mbig|scending?|scendi?|scen?|sc|udit-enabled|vailable?|vailab?|vail))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-B":{"name":"meta.function-call.abl","begin":"(?i)\\s*(b(?:ase64-decode|ase64-encode|ox|uffer-group-id|uffer-group-name|uffer-partition-id|uffer-tenant-id|uffer-tenant-name))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-C":{"name":"meta.function-call.abl","begin":"(?i)\\s*(c(?:an-do|an-find|an-query|an-set|aps|ast|hr|odepage-convert|ompares?|onnected|ount-of|urrent-changed|urrent-language?|urrent-langua?|urrent-lang|urrent-result-row|urrent-value))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-D":{"name":"meta.function-call.abl","begin":"(?i)\\s*(d(?:ata-source-modified|ataservers|ate|atetime|atetime-tz|ay|b-remote-host|bcodepage|bcollation|bname|bparam|brestrictions?|brestrictio?|brestrict?|brestri?|brest|btaskid|btype|bversion?|bversi?|ecimal?|ecim?|ec|ecrypt|efined|ynamic-cast|ynamic-current-value|ynamic-enum|ynamic-function?|ynamic-functi?|ynamic-func|ynamic-invoke|ynamic-next-value|ynamic-property))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-E":{"name":"meta.function-call.abl","begin":"(?i)\\s*(e(?:ncode|ncrypt|ntered|ntry|rror|time|xp|xtent))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-F":{"name":"meta.function-call.abl","begin":"(?i)\\s*(f(?:ill|irst|irst-of|rame-col|rame-db|rame-down|rame-field|rame-file|rame-index?|rame-line|rame-name|rame-row|rame-value?|rame-val))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-G":{"name":"meta.function-call.abl","begin":"(?i)\\s*(g(?:ateways?|enerate-pbe-key|enerate-pbe-salt|enerate-random-key|enerate-uuid|et-bits|et-byte|et-byte-order|et-bytes|et-class|et-codepages?|et-codepages?|et-collations??|et-collation?|et-collati?|et-colla?|et-db-client|et-double|et-effective-tenant-id|et-effective-tenant-name|et-float|et-int64|et-long|et-pointer-value|et-short|et-size|et-string|et-unsigned-long|et-unsigned-short|o-pending?|o-pendi?|uid))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-H":{"name":"meta.function-call.abl","begin":"(?i)\\s*(h(?:andle|ash-code|ex-decode|ex-encode))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-I":{"name":"meta.function-call.abl","begin":"(?i)\\s*(i(?:ndex|nput|nt64|nteger?|nteg?|nt|nterval|s-attr-space?|s-attr-spa?|s-attr-s?|s-attr|s-codepage-fixed|s-column-codepage|s-db-multi-tenant|s-lead-byte|so-date))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-K":{"name":"meta.function-call.abl","begin":"(?i)\\s*(k(?:blabel|eycode|eyfunction?|eyfuncti?|eyfunc|eylabel|eyword|eyword-all))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-L":{"name":"meta.function-call.abl","begin":"(?i)\\s*(l(?:ast|ast-of|astkey|c|dbname|eft-trim|ength|ibrary|ine-counter?|ine-count|ist-events|ist-query-attrs|ist-set-attrs|ist-widgets|ocked|og|ogical?|ogic?|og?|ookup|ower))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-M":{"name":"meta.function-call.abl","begin":"(?i)\\s*(m(?:aximum|d5-digest|ember|essage-digest|essage-lines|inimum?|inim?|in|onth|time))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-N":{"name":"meta.function-call.abl","begin":"(?i)\\s*(n(?:ew|ext-value|ormalize|ot|ow|um-aliases?|um-alias?|um-ali|um-dbs|um-entries|um-results))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-O":{"name":"meta.function-call.abl","begin":"(?i)\\s*(o(?:psys|s-dir|s-drives?|s-error|s-getenv))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-P":{"name":"meta.function-call.abl","begin":"(?i)\\s*(p(?:age-number?|age-numb?|age-size|dbname|roc-handle?|roc-hand?|roc-ha|roc-status?|roc-stat?|roc-st|rocess-architecture|rogram-name|rogress|romsgs|ropath|roversion?|roversi?))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-Q":{"name":"meta.function-call.abl","begin":"(?i)\\s*(qu(?:ery-off-end|oter))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-R":{"name":"meta.function-call.abl","begin":"(?i)\\s*(r(?:-index|andom|aw|ecid|ecord-length?|ecord-leng?|ejected|elation-fields?|elation-fiel?|elation-fi|eplace|etry|eturn|eturn-value?|eturn-val|gb-value?|gb-val?|gb-v|ight-trim|ound|ow-state|owid))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-S":{"name":"meta.function-call.abl","begin":"(?i)\\s*(s(?:creen-lines|dbname|earch|eek|et-db-client|et-effective-tenant|et-size|etuserid?|etuser|ha1-digest|kip|pace|qrt|sl-server-name|tring|ubstitute?|ubstitu?|ubsti?|ubstring?|ubstri?|uper))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-T":{"name":"meta.function-call.abl","begin":"(?i)\\s*(t(?:enant-id|enant-name|enant-name-to-id|erminal|his-object|ime|imezone|o-rowid|oday|ransaction?|ransacti?|rim|runcate?|runca?|ype-of))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-U":{"name":"meta.function-call.abl","begin":"(?i)\\s*(u(?:nbox|serid))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-V":{"name":"meta.function-call.abl","begin":"(?i)\\s*(val(?:id-event|id-handle|id-object|ue))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-W":{"name":"meta.function-call.abl","begin":"(?i)\\s*(w(?:eekday|idget-handle?|idget-hand?|idget-ha?))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-functions-Y":{"name":"meta.function-call.abl","begin":"(?i)\\s*(year)\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"abl-system-handles":{"match":"(?i)\\b(active-window|audit-control|audit-policy|clipboard|codebase-locator|color-table|compiler|current-window|debugger|default-window|dslog-manager|(error-stat(?:us|u)?)|(file-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|font-table|(last-even(?:t)?)|log-manager|profiler|(rcode-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?)|security-policy|self|session|source-procedure|super|target-procedure|this-object|this-procedure|web-context)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"variable.language.abl"},"2":{"name":"punctuation.separator.colon.abl"}}},"access-modifier":{"match":"(?i)\\s*(package-private|private|package-protected|protected|public|static|override|abstract|final)\\s+","captures":{"1":{"name":"keyword.other.abl"}}},"analyze-suspend-resume":{"name":"comment.preprocessor.analyze-suspend.abl","begin":"(?i)(\u0026analyze-suspend|\u0026analyze-resume)\\s*","end":"(?=(?://|/\\*))|$"},"annotation":{"patterns":[{"include":"#annotation-simple"},{"include":"#annotation-attributes"}]},"annotation-attributes":{"name":"meta.declaration.annotation.abl","begin":"(^|\\s+)(\\@[a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s*(?=\\()","end":"(?=\\.)","patterns":[{"include":"#parens"},{"match":"\\s*([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]+)(?=[\\=\\s$])","captures":{"1":{"name":"entity.other.attribute-name.abl"}}},{"include":"#string"},{"include":"#operator-no-space"},{"include":"#punctuation-comma"}],"beginCaptures":{"2":{"name":"entity.name.tag.abl"}}},"annotation-simple":{"name":"meta.declaration.annotation.abl","match":"(^|\\s*)(\\@[a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s*(?=\\.)","captures":{"2":{"name":"entity.name.tag.abl"}}},"argument-reference":{"match":"\\s*((\\{\\s*\u0026[\\.a-zA-Z0-9_\\-#$%\\/]+\\})|(\\{\\s*\\d+\\})|(\\{\\s*\\*\\}))\\s*","captures":{"1":{"name":"support.other.argument.abl"}}},"array-literal":{"name":"meta.array.literal.abl","begin":"\\[","end":"\\]","patterns":[{"match":"(?i)\\s+(for)\\s+","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#expression"},{"include":"#preprocessors"},{"include":"#comment"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.square.begin.abl"}},"endCaptures":{"0":{"name":"punctuation.definition.bracket.square.end.abl"}}},"array-use":{"name":"meta.array.literal.abl","begin":"\\[","end":"\\]","patterns":[{"include":"#expression"},{"include":"#punctuation-comma"}],"beginCaptures":{"0":{"name":"punctuation.definition.bracket.square.begin.abl"}},"endCaptures":{"0":{"name":"punctuation.definition.bracket.square.end.abl"}}},"as-type":{"begin":"\\s*([Aa][Ss])\\s*([Cc][Ll][Aa][Ss]{2})?","end":"\\s*(\\.|\\,|\\s*)","patterns":[{"include":"#primitive-type"},{"include":"#type-names"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"assign-statment":{"patterns":[{"include":"#abl-functions"},{"include":"#language-functions"},{"include":"#string"},{"include":"#expression"},{"include":"#argument-reference"},{"include":"#preprocessors"},{"include":"#attribute-access"},{"include":"#buffer-name"},{"include":"#can-find"},{"include":"#abl-system-handles"},{"include":"#db-dot-table-dot-field"},{"include":"#extent"},{"include":"#function-arguments"},{"include":"#get-class"},{"include":"#handle-attributes"},{"include":"#handle-methods"},{"include":"#if-then"},{"include":"#operator"},{"include":"#type-member-call"},{"include":"#include-file"},{"include":"#new-record"},{"include":"#new-class"},{"include":"#record-buffer-functions"},{"include":"#rowid-function"},{"include":"#type-names"}]},"attribute-access":{"begin":":","end":"(?=:)|(?=\\s*)"},"block-label":{"match":"(?i)^\\s*(?!((?:transact(?:ion|io|i)?)|no-lock|(?:exclusive-l(?:ock|oc|o)?)|(?:share(?:-lock|-loc|-lo|-l|-)?)):)([a-zA-Z][a-zA-Z0-9_\\-#$%\\-$#]*)(:)\\s","captures":{"2":{"name":"entity.name.label.abl"},"3":{"name":"punctuation.terminator.abl"}}},"block-statement":{"name":"meta.block.abl","begin":"(?i)(?\u003c!end)\\s*(do|repeat|finally)\\b","end":"\\s*(?=:)|(?\u003c=:)|(?=\\.)|(?\u003c=\\.)\\s*","patterns":[{"include":"#comment"},{"include":"#for-record"},{"include":"#operator"},{"include":"#from-to-by"},{"include":"#while-expression"},{"name":"keyword.other.abl","match":"(?i)\\b((transact(?:ion|io|i)?)|stop-after)\\b"},{"include":"#numeric"},{"include":"#type-member-call"},{"include":"#language-functions"},{"include":"#abl-functions"},{"include":"#punctuation-comma"},{"include":"#punctuation-colon"},{"include":"#branch-options"},{"include":"#keywords"},{"include":"#expression"},{"include":"#preprocessors"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"block-undo-leave-next-retry":{"match":"(?i)\\s*(?\u003c!,)\\s*(leave|next|retry|undo)\\b(?!on)(\\s+([a-zA-Z0-9_\\-#$%\\-$]*))?\\s*","captures":{"1":{"name":"keyword.other.abl"},"3":{"name":"entity.name.label.abl"}}},"branch-leave-next-retry-throw":{"match":"(?i)\\s*(?\u003c=,)\\s*(leave|next|retry|throw)\\s*(?!on)([a-zA-Z0-9_\\-#$%\\-$]*)?\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.label.abl"}}},"branch-options":{"patterns":[{"include":"#on-error-endkey-stop"},{"include":"#branch-leave-next-retry-throw"},{"include":"#branch-return-value-double"},{"include":"#branch-return-value-single"},{"include":"#branch-return-no-apply"},{"include":"#branch-return-error-expression"},{"include":"#punctuation-comma"}]},"branch-return-error-expression":{"begin":"(?i)\\s*(return)\\s+(error)\\s*","end":"(?=:|$)","patterns":[{"include":"#new-class"},{"include":"#function-arguments"},{"include":"#parens"},{"include":"#property-call"},{"include":"#preprocessors"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"branch-return-no-apply":{"match":"(?i)\\s*(return)\\s+(no-apply)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"branch-return-value-double":{"begin":"(?i)\\s*(return)(\\s+(error))?\\s+(\")","end":"(\")","patterns":[{"include":"#escape-char"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"},"3":{"name":"punctuation.definition.string.begin.abl"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.abl"}}},"branch-return-value-single":{"name":"string.single.complex.abl","begin":"(?i)\\s*(return)(\\s+(error))?\\s+(')","end":"(')","patterns":[{"include":"#escape-char"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"},"3":{"name":"punctuation.definition.string.begin.abl"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.abl"}}},"break-by":{"match":"(?i)\\s*((break)\\s+)?(by)\\s+(([a-zA-Z][a-zA-Z_\\-#$%]*\\.)?([a-zA-Z][a-zA-Z_\\-#$%]*\\.)([a-zA-Z][a-zA-Z_\\-#$%]*)(\\[\\d+\\])?)\\b","captures":{"2":{"name":"keyword.other.abl"},"3":{"name":"keyword.other.abl"},"4":{"name":"storage.data.table.abl"}}},"break-group":{"match":"(?i)\\s*(first-of|first|last-of|last)\\s*(\\()\\s*([a-zA-Z][a-zA-Z#$\\-_%\u0026]*\\.[a-zA-Z_][a-zA-Z#$\\-_%\u0026]*(\\.[a-zA-Z_][a-zA-Z#$\\-_%\u0026]*)?)\\s*(\\))\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"meta.brace.round.js"},"3":{"name":"storage.data.table.abl"},"4":{"name":"meta.brace.round.js"}}},"buffer-copy":{"begin":"(?i)\\b(buffer-copy)\\s+([a-zA-Z_][a-zA-Z0-9_\\-#$%]+(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)","end":"(?=\\.)","patterns":[{"match":"\\b([Tt][Oo])\\s+([a-zA-Z_][a-zA-Z0-9_\\-#$%]+(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},{"include":"#using-except"},{"include":"#comment"},{"include":"#preprocessors"},{"match":"(?i)\\b(assign|no-lobs|no-error)\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#db-dot-table-dot-field"},{"include":"#assign-statment"},{"include":"#keywords"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},"buffer-for-table":{"match":"(?i)\\s*(?!do|repeat|for)([a-zA-Z][a-zA-Z_0-9\\-#$%]*)\\s+(for)\\s+((temp-table)\\s+)?([a-zA-Z][a-zA-Z0-9_\\-#$%]*)\\s*","captures":{"1":{"name":"storage.data.table.abl"},"2":{"name":"keyword.other.abl"},"4":{"name":"keyword.other.abl"},"5":{"name":"storage.data.table.abl"}}},"buffer-name":{"match":"(?i)\\b(buffer)\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},"cache-value":{"match":"\\b([Cc][Aa][Cc][Hh][Ee])\\s+(0[xX][[:xdigit:]]+)?|(\\-?[0-9]+(\\.[0-9]+)?)\\b","captures":{"1":{"name":"keyword.other.abl"},"3":{"name":"constant.numeric.source.abl"}}},"can-find":{"begin":"(?i)\\s*(can-find)\\s*(\\()","end":"(?i)\\b(?=\\)|where|no-lock|(share(?:-lock|-loc|-lo|-l|-)?)|using|(no-prefe(?:tch|tc|t)?)|no-wait)\\s*","patterns":[{"include":"#parens"},{"include":"#comment"},{"include":"#string"},{"include":"#numeric"},{"match":"(?i)\\b(first|last)\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#use-index"},{"include":"#of-phrase"},{"include":"#db-dot-table"},{"include":"#db-dot-table-dot-field"}],"beginCaptures":{"1":{"name":"support.function.abl"},"2":{"name":"meta.brace.round.js"}}},"code-block":{"patterns":[{"include":"#create-statement"},{"include":"#record-buffer-functions"},{"include":"#can-find"},{"include":"#comment"},{"include":"#break-group"},{"include":"#block-undo-leave-next-retry"},{"include":"#operator"},{"include":"#string"},{"include":"#language-functions"},{"include":"#numeric"},{"include":"#constant"},{"include":"#operator"},{"include":"#include-file"},{"include":"#run-statement"},{"include":"#define"},{"include":"#block-statement"},{"include":"#end-block"},{"include":"#property-call"},{"include":"#new-record"},{"include":"#type-reference"},{"include":"#abl-functions"},{"include":"#abl-system-handles"},{"include":"#handle-methods"},{"include":"#handle-attributes"},{"include":"#keywords"},{"include":"#variable-name"},{"include":"#static-object-property-call"},{"include":"#punctuation-period"},{"include":"#punctuation-colon"}]},"comment":{"patterns":[{"include":"#singlelinecomment"},{"include":"#multilinecomment"}]},"constant":{"name":"constant.language.abl","match":"(?i)(?\u003c=^|\\b|\\s|\\()(true|false|yes|no|\\?)(?![a-zA-Z0-9_\\-#$%])"},"copy-lob":{"begin":"(?i)\\b(copy-lob)\\b","end":"(?=\\.)","patterns":[{"include":"#code-block"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"create-alias":{"begin":"(?i)\\s*(create)\\s+(alias)\\s*","end":"(?=\\.)","patterns":[{"include":"#abl-functions"},{"include":"#keywords"},{"match":"\\b([a-zA-Z0-9][a-zA-Z0-9_\\-]*)\\b","captures":{"1":{"name":"storage.data.database.abl"}}},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"create-buffer":{"begin":"(?i)(create)\\s+(buffer)\\b","end":"(?i)(\\b((buffer-n(?:ame|am|a)?)|in)\\b)|(?=\\.)","patterns":[{"match":"(?i)\\s*(for|table)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#define-table"},{"include":"#buffer-name"},{"include":"#temp-table-name"},{"include":"#expression"},{"include":"#keywords"},{"include":"#string"},{"include":"#comment"},{"include":"#handle-attributes"},{"include":"#variable-name"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}},"endCaptures":{"1":{"name":"keyword.other.abl"}}},"create-record":{"match":"(?i)\\s*(create)\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*((for)\\s+(tenant))?\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"},"5":{"name":"keyword.other.abl"},"6":{"name":"keyword.other.abl"}}},"create-statement":{"patterns":[{"include":"#create-buffer"},{"include":"#create-alias"},{"include":"#create-widget"},{"include":"#create-with-expression"},{"include":"#create-record"}]},"create-widget":{"match":"(?i)\\s*(create)\\s+(button|combo-box|(?:control-fram(?:e)?)|dialog-box|editor|fill-in|(?:fram(?:e)?)|image|menu|menu-item|radio-set|(?:rect(?:angle|angl|ang|an|a)?)|selection-list|slider|sub-menu|text|toggle-box|window)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"},"3":{"name":"variable.other.abl"}}},"create-with-expression":{"match":"(?i)\\s*(create)\\s+(browse|call|client-principal|database|dataset|data-source|query|sax-attributes|sax-reader|sax-writer|server|server-socket|soap-header|soap-header-entryref|socket|temp-table|widget-pool|x-document|x-noderef)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"db-dot-table":{"match":"(?i)\\b([a-zA-Z_][a-zA-Z0-9#$\\-_%\u0026]*(\\.[a-zA-Z_][a-zA-Z0-9#$\\-_%\u0026]*)?)(?=[^a-zA-Z0-9#$\\-_%\u0026])","captures":{"1":{"name":"storage.data.table.abl"}}},"db-dot-table-dot-field":{"match":"(?i)(?\u003c=^|\\s|\\(|,)(([a-zA-Z][a-zA-Z0-9#$\\-_%\u0026]*\\.)?([a-zA-Z_][a-zA-Z0-9#$\\-_%\u0026]*\\.)([a-zA-Z_][a-zA-Z0-9#$\\-_%\u0026]*)(\\[\\d+\\])?)","captures":{"1":{"name":"storage.data.table.abl"}}},"decimals":{"match":"(?i)\\s*(decimals)\\s((0x)?[[:xdigit:]]+)?","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"constant.numeric.source.abl"}}},"declarations":{"patterns":[{"include":"#define"}]},"define":{"name":"meta.define.abl","begin":"(?i)\\s*(def(?:ine|in|i)?)\\b","end":"(\\.)(?!\\w)","patterns":[{"match":"(?i)\\s*(new|(glob(?:al|a|)?)|shared)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#serializable"},{"include":"#access-modifier"},{"include":"#define-enum-member"},{"include":"#define-variable"},{"include":"#define-parameter"},{"include":"#define-button"},{"include":"#define-dataset"},{"include":"#define-query"},{"include":"#define-browse"},{"include":"#fields-except-list"},{"include":"#define-event"},{"include":"#define-property"},{"include":"#property-accessor"},{"include":"#array-literal"},{"include":"#define-field"},{"include":"#parameter-as"},{"include":"#define-stream"},{"include":"#define-buffer"},{"include":"#define-frame"},{"include":"#for-table"},{"include":"#buffer-for-table"},{"include":"#define-table"},{"include":"#define-index"},{"include":"#define-like"},{"include":"#field-as-object"},{"include":"#preprocessors"},{"include":"#extent"},{"include":"#decimals"},{"include":"#format-constant"},{"include":"#timestamp-constant"},{"include":"#constant"},{"include":"#numeric"},{"include":"#string"},{"include":"#primitive-type"},{"include":"#dll-type"},{"include":"#abl-system-handles"},{"include":"#property-call"},{"include":"#handle-attributes"},{"include":"#handle-methods"},{"include":"#abl-functions"},{"include":"#function-parameter-definition"},{"include":"#keywords"},{"include":"#comment"},{"include":"#label-variable"},{"include":"#type-names"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}},"endCaptures":{"1":{"name":"punctuation.terminator.abl"}}},"define-browse":{"begin":"(?i)\\b(browse)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s*","end":"(?i)\\b(?=\\.)","patterns":[{"match":"\\b([Qq][Uu][Ee][Rr][Yy])\\s+([a-zA-Z][a-zA-Z0-9\\-_#$%\\\u0026]+)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},{"match":"(?i)\\b((share(?:-lock|-loc|-lo|-l|-)?)|(exclusive-l(?:ock|oc|o)?)|no-lock|no-wait|(disp(?:lay|la|l)?))\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#comment"},{"include":"#db-dot-table-dot-field"},{"include":"#keywords"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},"define-buffer":{"begin":"(?i)\\s*(buffer)\\b(?![#$\\-_%\u0026])","end":"(?=\\.)","patterns":[{"include":"#for-table"},{"include":"#buffer-for-table"},{"include":"#keywords"},{"include":"#comment"},{"include":"#string"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"define-button":{"begin":"(?i)\\s*(button)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)","end":"(?=\\.)","patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#from-x-and-y"},{"include":"#numeric"},{"include":"#keywords"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},"define-class":{"name":"meta.define.class.abl","begin":"\\b(?\u003c![#$\\-_%\u0026])([Cc][Ll][Aa][Ss]{2})\\b(?![#$\\-_%\u0026])","end":"\\s*(:)\\s*","patterns":[{"match":"(?i)\\s*(serializable|abstract|final|use-widget-pool|inherits|implements)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#type-names"},{"include":"#punctuation-comma"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}},"endCaptures":{"1":{"name":"punctuation.terminator.abl"}}},"define-dataset":{"begin":"(?i)\\b(dataset)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\b","end":"(?=\\.)","patterns":[{"include":"#parens"},{"include":"#punctuation-comma"},{"match":"(?i)\\b((?:data-rel(?:ation|atio|ati|at|a)?)|parent-id-relation)\\s*([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.dataset.abl"}}},{"match":"(?i)\\b(relation-fi(?:elds|eld|el|e)?)\\b","captures":{"1":{"name":"support.function.abl"}}},{"include":"#keywords"},{"include":"#preprocessors"},{"include":"#db-dot-table"},{"include":"#comment"},{"include":"#string"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.dataset.abl"}}},"define-enum-member":{"begin":"(?i)\\b(enum)\\b","end":"(?=\\.)","patterns":[{"include":"#comment"},{"include":"#operator"},{"include":"#numeric"},{"match":"\\b([a-zA-Z][a-zA-Z0-9_#$%]*)\\b","captures":{"1":{"name":"entity.name.function.abl"}}}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"define-enum-type":{"patterns":[{"name":"meta.define.enum.abl","match":"(?i)\\b(enum)\\s+([\\w#$%\\.]+)\\s*(flags)?\\s*(:)","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.type.abl"},"3":{"name":"keyword.other.abl"},"4":{"name":"punctuation.terminator.abl"}}}]},"define-event":{"match":"(?i)\\b(event)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.function.abl"}}},"define-field":{"match":"(?i)\\s*(field)\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},"define-frame":{"begin":"(?i)\\s*((?:fram(?:e)?))\\s*([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)","end":"(?=[Ww][Ii][Tt][Hh]|\\.(?!\\w))","patterns":[{"include":"#comment"},{"include":"#string"},{"include":"#numeric"},{"include":"#preprocessors"},{"include":"#abl-functions"},{"include":"#keywords"},{"include":"#db-dot-table-dot-field"},{"include":"#constant"},{"include":"#variable-name"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},"define-index":{"begin":"(?i)\\s*(index)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)","end":"(?i)(?=\\bindex\\b|\\.)","patterns":[{"match":"(?i)\\b(AS|IS|UNIQUE|PRIMARY|WORD-INDEX|(asc(?:ending|endin|endi|end|en|e)?)|(desc(?:ending|endin|endi|end|en|e)?))\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"match":"\\b([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\b","captures":{"1":{"name":"storage.data.table.abl"}}},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},"define-interface":{"name":"meta.define.interface.abl","begin":"(?i)\\b(interface)\\s+([\\w#$%]+[\\w#$%\\.]*(\\s*\u003c\\s*[\\w#$%\\.]+\\s*\\\u003e)?)","end":"\\s*(:)","patterns":[{"match":"(?i)\\s*(inherits|implements)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#type-names"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.type.abl"}},"endCaptures":{"1":{"name":"punctuation.terminator.abl"}}},"define-like":{"match":"(?i)\\s*(like|like-sequential)\\s+(([a-zA-Z][a-zA-Z_\\-#$%]*\\.)?([a-zA-Z][a-zA-Z0-9_\\-#$%]*\\.)?([a-zA-Z][a-zA-Z0-9_\\-#$%]*))","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},"define-parameter":{"begin":"(?i)\\b(param(?:eter|ete|et|e)?)\\b","end":"(?i)(?=\\.)|\\b(?=(bgc(?:olor|olo|ol|o)?)|(column-lab(?:el|e)?)|context-help-id|dcolor|decimals|drop-target|extent|font|(fgc(?:olor|olo|ol|o)?)|(form(?:at|a)?)|initial|label|(mouse-p(?:ointer|ointe|oint|oin|oi|o)?)|no-undo|not|(case-sen(?:sitive|sitiv|siti|sit|si|s)?)|(pfc(?:olor|olo|ol|o)?)|view-as|triggers)\\b","patterns":[{"match":"(?i)\\b(table)\\s+(for)\\s+([a-zA-Z][a-zA-Z_\\-#$%]*(\\.[a-zA-Z][a-zA-Z_\\-#$%]*)?)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"},"3":{"name":"storage.data.table.abl"}}},{"match":"(?i)\\b(table-handle|dataset-handle)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},{"match":"(?i)\\b(dataset)\\s+(for)\\s+([a-zA-Z_\\-#$%]+(\\.[a-zA-Z_\\-#$%]+)?)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"},"3":{"name":"storage.data.dataset.abl"}}},{"include":"#parameter-as"},{"include":"#keywords"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"define-property":{"begin":"(?i)\\b(property)\\b","end":"\\s*(?=[Gg][Ee][Tt]|[Ss][Ee][Tt])","patterns":[{"include":"#property-as"},{"include":"#comment"},{"include":"#primitive-type"},{"include":"#extent"},{"include":"#decimals"},{"include":"#array-literal"},{"include":"#timestamp-constant"},{"include":"#numeric"},{"include":"#keywords"},{"include":"#string"},{"include":"#type-names"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"define-query":{"begin":"(?i)\\b(query)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s*","end":"(?i)\\b(?=\\.)\\b","patterns":[{"match":"(?i)\\b(for|scrolling|(rcode-info(?:rmation|rmatio|rmati|rmat|rma|rm|r)?))\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#cache-value"},{"include":"#db-dot-table"},{"include":"#fields-except-list"},{"include":"#punctuation-comma"},{"include":"#expression"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},"define-stream":{"name":"meta.define.stream.abl","match":"(?i)\\s*(stream)\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%\\-]*)","captures":{"1":{"name":"keyword.other.abl"},"2":{"patterns":[{"include":"#variable-name"}]}}},"define-table":{"match":"(?i)(?\u003c=\\b)(temp-table|before-table)\\s*([a-zA-Z_][a-zA-Z0-9_\\-#$%]*)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},"define-type":{"patterns":[{"include":"#define-class"},{"include":"#define-interface"},{"include":"#define-enum-type"}]},"define-variable":{"begin":"(?i)\\s*(var(?:iable|iabl|iab|ia|i)?)\\s*","end":"(?i)(?=\\.)|\\b(?=(bgc(?:olor|olo|ol|o)?)|(column-lab(?:el|e)?)|context-help-id|dcolor|decimals|drop-target|extent|font|(fgc(?:olor|olo|ol|o)?)|(form(?:at|a)?)|(init(?:ial|ia|i)?)|label|(mouse-p(?:ointer|ointe|oint|oin|oi|o)?)|no-undo|not|(case-sen(?:sitive|sitiv|siti|sit|si|s)?)|(pfc(?:olor|olo|ol|o)?)|view-as|triggers)\\b","patterns":[{"match":"\\b([Cc][Ll][Aa][Ss][Ss])\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#variable-as"},{"include":"#variable-like"},{"include":"#primitive-type"},{"include":"#define-like"},{"include":"#type-names"},{"include":"#string"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"define-variable-name":{"match":"(?i)(var(?:iable|iabl|iab|ia|i)?)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},"dll-type":{"match":"(?i)\\b(byte|unsigned-short|short|unsigned-long|long|int64|float)\\b","captures":{"1":{"name":"storage.type.abl"}}},"double-colon-field-name":{"match":"\\s*::([a-zA-Z_\\-#$%]+)\\s*","captures":{"1":{"name":"storage.data.table.abl"}}},"doublequotedstring":{"name":"string.double.complex.abl","begin":"(\")","end":"(?i)(\")(:[LlRrTtCcUu]\\d*\\b)?","patterns":[{"include":"#escape-char"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.abl"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.abl"},"2":{"name":"support.other.abl"}}},"end-block":{"match":"(?i)\\s*(end)\\s+(CASE|CATCH|CLASS|CONSTRUCTOR|DESTRUCTOR|ENUM|FINALLY|FUNCTION|GET|INTERFACE|METHOD|PROCEDURE|SET|TRIGGERS)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"end-function-procedure-method-block":{"match":"(?i)\\s*(end)\\s*(method|procedure|function)?\\s*(?=\\.)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"escape-char":{"name":"constant.character.escape.abl","match":"~."},"event-un-subscribe":{"begin":"(?i)(:)(unsubscribe|subscribe)\\s*(\\()","end":"(\\))","patterns":[{"match":"\\s*([\\w#$%\\-]+(\\.[\\w#$%\\-]+)+)\\s*(:)","captures":{"1":{"name":"entity.name.type.abl"},"3":{"name":"punctuation.separator.colon.abl"}}},{"match":"\\s*([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s*((,)|(:))\\s*","captures":{"1":{"name":"variable.other.abl"},"3":{"name":"punctuation.separator.comma.abl"},"4":{"name":"punctuation.separator.colon.abl"}}},{"match":"\\s*([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s*","captures":{"1":{"name":"entity.name.function.abl"}}},{"include":"#string"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"},"3":{"name":"meta.brace.round.js"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"expression":{"patterns":[{"include":"#string"},{"include":"#timestamp-constant"},{"include":"#constant"},{"include":"#numeric"},{"include":"#variable-name"},{"include":"#double-colon-field-name"}]},"extent":{"match":"(?i)\\s*(extent)\\s*((0x)?[[:xdigit:]]+\\b)?","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"constant.numeric.source.abl"}}},"field-as-object":{"match":"(?i)\\s*((progress\\.lang\\.)?object)\\s*","captures":{"1":{"name":"entity.name.type.abl"}}},"field-name":{"patterns":[{"match":"\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?\\s*(\\[\\d+\\]))\\s*","captures":{"1":{"name":"storage.data.table.abl"}}},{"match":"\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*","captures":{"1":{"name":"storage.data.table.abl"}}}]},"fields-except-list":{"begin":"(?i)\\s*(fields|except)\\s*(\\()","end":"(\\))","patterns":[{"include":"#db-dot-table-dot-field"},{"include":"#field-name"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"meta.brace.round.js"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"find-record":{"match":"(?i)\\s*(find)\\s+(first|last|next|prev|current)?\\s*([a-zA-Z_][a-zA-Z0-9#$\\-_%\u0026]+(\\.[a-zA-Z_][a-zA-Z0-9#$\\-_%\u0026]*)?)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"},"3":{"name":"storage.data.table.abl"}}},"for-each-join":{"begin":"(?i)\\b(each|first|last)\\b(?\u003c!\\()","end":"(?i)\\s*(?=where|no-lock|(exclusive-l(?:ock|oc|o)?)|(share(?:-lock|-loc|-lo|-l|-)?)|tenant-where|use-index|table-scan|using|(no-prefe(?:tch|tc|t)?)|left|outer-join|break|by|(transact(?:ion|io|i)?)|,|:)\\s*","patterns":[{"include":"#fields-except-list"},{"include":"#of-phrase"},{"match":"(?i)\\s*(of)\\s+([a-zA-Z][a-zA-Z_\\-#$%]*(\\.[a-zA-Z][a-zA-Z_\\-#$%]*)?)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},{"match":"\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*","captures":{"1":{"name":"storage.data.table.abl"}}}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"3":{"name":"storage.data.table.abl"}}},"for-each-table":{"end":"(?i)\\s*(?=where|no-lock|(exclusive-l(?:ock|oc|o)?)|(share(?:-lock|-loc|-lo|-l|-)?)|tenant-where|use-index|table-scan|using|(no-prefe(?:tch|tc|t)?)|left|outer-join|break|by|(transact(?:ion|io|i)?)|,|:|on)\\s*","patterns":[{"match":"(?i)\\s*(each|first|last|of)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#fields-except-list"},{"include":"#of-phrase"},{"include":"#field-name"},{"include":"#db-dot-table"},{"include":"#db-dot-table-dot-field"},{"include":"#while-expression"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"for-join":{"match":"(?i)(?\u003c=,|^)\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z_][a-zA-Z0-9_\\-#$%]*)?)\\s+(?=where|no-lock|(exclusive-l(?:ock|oc|o)?)|(share(?:-lock|-loc|-lo|-l|-)?)|tenant-where|use-index|table-scan|using|(no-prefe(?:tch|tc|t)?)|left|outer-join|break|by|(transact(?:ion|io|i)?))\\s*","captures":{"1":{"name":"storage.data.table.abl"}}},"for-record":{"match":"(?i)\\s*(for)\\s+([a-zA-Z_\\-#$%]*)\\s*(,)?\\s*([a-zA-Z_\\-#$%]*)?\\s*(,)?\\s*([a-zA-Z_\\-#$%]*)?\\s*(,)?\\s*([a-zA-Z_\\-#$%]*)?\\s*(,)?\\s*([a-zA-Z_\\-#$%]*)?\\s*(,)?\\s*([a-zA-Z_\\-#$%]*)?","captures":{"1":{"name":"keyword.other.abl"},"10":{"name":"storage.data.table.abl"},"11":{"name":"punctuation.separator.comma.abl"},"12":{"name":"storage.data.table.abl"},"2":{"name":"storage.data.table.abl"},"3":{"name":"punctuation.separator.comma.abl"},"4":{"name":"storage.data.table.abl"},"5":{"name":"punctuation.separator.comma.abl"},"6":{"name":"storage.data.table.abl"},"7":{"name":"punctuation.separator.comma.abl"},"8":{"name":"storage.data.table.abl"},"9":{"name":"punctuation.separator.comma.abl"}}},"for-table":{"match":"(?i)\\s*(for)\\s+((temp-table)\\s+)?([a-zA-Z_\\-#$%]+)\\s*","captures":{"1":{"name":"keyword.other.abl"},"3":{"name":"keyword.other.abl"},"4":{"name":"storage.data.table.abl"}}},"format-constant":{"match":"(?i)\\b((?:form(?:at|a)?))\\s+(9+/9+/9+)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"constant.language.source.abl"}}},"from-to-by":{"begin":"\\s*([a-zA-Z0-9_\\-#$%$\\-_%\u0026]+)\\s+(=)\\s*","end":"(?i)(?=(transact(?:ion|io|i)?)|on|:|with|while)","patterns":[{"match":"(?i)\\s+(to|by)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#numeric"},{"include":"#branch-options"},{"include":"#abl-functions"},{"include":"#db-dot-table-dot-field"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"variable.other.abl"},"2":{"name":"keyword.operator.source.abl"}}},"from-x-and-y":{"match":"(?i)\\b(from)\\s+(X)\\s+((0(x)[[[:xdigit:]]]+)|(\\-?[[0-9]]+(\\.[[0-9]]+)?))\\s+(y)\\s+((0(x)[[[:xdigit:]]]+)|(\\-?[[0-9]]+(\\.[[0-9]]+)?))\\s+ ","captures":{"1":{"name":"keyword.other.abl"},"12":{"name":"constant.numeric.source.abl"},"2":{"name":"keyword.other.abl"},"6":{"name":"constant.numeric.source.abl"},"8":{"name":"keyword.other.abl"}}},"function-arguments":{"name":"meta.function.arguments.abl","begin":"(?=\\()","end":"(?=\\))","patterns":[{"include":"#parens"},{"include":"#function-arguments-no-parens"}],"beginCaptures":{"1":{"name":"meta.brace.round.js"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"function-arguments-no-parens":{"name":"meta.function.arguments.abl","patterns":[{"match":"(?i)\\s*((input-o(?:utput|utpu|utp|u)?)|output|input|table-handle|dataset-handle|append|by-value|by-reference|bind)\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},{"match":"(?i)\\b(dataset)\\s+([a-zA-Z_\\-#$%]+(\\.[a-zA-Z_\\-#$%]+)?)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.dataset.abl"}}},{"match":"(?i)\\b(temp-table|table|buffer)\\s+([a-zA-Z_\\-#$%]+(\\.[a-zA-Z_\\-#$%]+)?)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},{"include":"#function-arguments"},{"include":"#constant"},{"include":"#timestamp-constant"},{"include":"#type-reference"},{"include":"#abl-system-handles"},{"include":"#can-find"},{"include":"#language-functions"},{"include":"#abl-functions"},{"include":"#type-member-call"},{"include":"#db-dot-table-dot-field"},{"include":"#handle-attributes"},{"include":"#handle-methods"},{"include":"#keywords"},{"include":"#expression"},{"include":"#comment"},{"include":"#array-literal"},{"include":"#punctuation-comma"},{"include":"#preprocessors"}]},"function-definition":{"name":"meta.define.function.abl","begin":"(?i)\\b(function)\\s+([a-zA-Z0-9_][a-zA-Z0-9_#$\\-%\u0026]+)\\b","end":"(\\.|:)","patterns":[{"match":"(?i)\\b(map|to)\\s+(?!to\\s+)([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]+)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.function.abl"}}},{"match":"(?i)\\b(returns|private|class|extent|in|super|forward|map)\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#function-parameter-definition"},{"include":"#parens"},{"begin":"(?i)(?\u003c=\\)|in)","end":"(?=(\\.|:)\\s)","patterns":[{"match":"\\b([Ii][Nn])\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"match":"\\b([Ss][Uu][Pp][Ee][Rr])\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#type-member-call"},{"include":"#variable-name"},{"include":"#keywords"},{"include":"#comment"},{"include":"#string"},{"include":"#preprocessors"}]},{"include":"#primitive-type"},{"include":"#type-name"},{"include":"#keywords"},{"include":"#comment"},{"include":"#preprocessors"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.function.abl"}},"endCaptures":{"1":{"name":"punctuation.terminator.abl"}}},"function-parameter-definition":{"name":"meta.function.parameters","begin":"(\\()","end":"(\\))","patterns":[{"include":"#parameter-definition"}],"beginCaptures":{"1":{"name":"meta.brace.round.js"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"get-class":{"name":"meta.function-call.abl","begin":"(?i)\\s*(get-class)\\s*(\\()","end":"(\\))","patterns":[{"include":"#string"},{"include":"#type-names"}],"beginCaptures":{"1":{"name":"support.function.abl"},"2":{"name":"meta.brace.round.js"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"global-scoped-define":{"name":"meta.preprocessor.define.abl","begin":"(?i)((?:\u0026scop(?:ed-define|ed-defin|ed-defi|ed-def|ed-de|ed-d|ed-|ed|e)?)|(?:\u0026glob(?:al-define|al-defin|al-defi|al-def|al-de|al-d|al-|al|a)?))\\s*([\\.a-zA-Z0-9_\\-#$%\\\\/]*)\\s*","end":"(?=//|/\\*)|$","patterns":[{"include":"#string"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.function.preprocessor.abl"}}},"handle-attributes":{"patterns":[{"include":"#handle-attributes-A"},{"include":"#handle-attributes-B"},{"include":"#handle-attributes-C"},{"include":"#handle-attributes-D"},{"include":"#handle-attributes-E"},{"include":"#handle-attributes-F"},{"include":"#handle-attributes-G"},{"include":"#handle-attributes-H"},{"include":"#handle-attributes-I"},{"include":"#handle-attributes-K"},{"include":"#handle-attributes-L"},{"include":"#handle-attributes-M"},{"include":"#handle-attributes-N"},{"include":"#handle-attributes-O"},{"include":"#handle-attributes-P"},{"include":"#handle-attributes-Q"},{"include":"#handle-attributes-R"},{"include":"#handle-attributes-S"},{"include":"#handle-attributes-T"},{"include":"#handle-attributes-U"},{"include":"#handle-attributes-V"},{"include":"#handle-attributes-W"},{"include":"#handle-attributes-X"},{"include":"#handle-attributes-Y"}]},"handle-attributes-A":{"match":"(?i)(:)(a(?:ccelerator|ctive|ctor|dm-data|fter-buffer|fter-rowid|fter-table|llow-column-searching|llow-prev-deserialization|lways-on-top|mbiguous?|mbiguo?|mbig|ppl-alert-boxes?|ppl-alert-box?|ppl-alert-b?|ppl-alert|ppl-context-id|ppserver-info|ppserver-password|ppserver-userid|sync-request-count|sync-request-handle|synchronous|ttached-pairlist|ttr-space?|ttr-spa?|ttr-s?|ttr|ttribute-names|udit-event-context|uto-completion?|uto-completi?|uto-comple?|uto-comp|uto-delete|uto-delete-xml|uto-end-key|uto-go|uto-indent?|uto-inde?|uto-resize|uto-return?|uto-retu?|uto-synchronize|uto-validate?|uto-valida?|uto-vali?|uto-zap?|uto-z|vailable-formats|vailable?|vailab?|vail))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-B":{"match":"(?i)(:)(b(?:ackground?|ackgrou?|ackgr?|ack|ase-ade|asic-logging|atch-mode|atch-size|efore-buffer|efore-rowid|efore-table|gcolor?|gcol?|gc|lank|lock-iteration-display|order-bottom-chars?|order-bottom-cha?|order-bottom-c|order-bottom-pixels?|order-bottom-pixe?|order-bottom-pi?|order-left-chars?|order-left-cha?|order-left-c|order-left-pixels?|order-left-pixe?|order-left-pi?|order-right-chars?|order-right-cha?|order-right-c|order-right-pixels?|order-right-pixe?|order-right-pi?|order-top-chars?|order-top-cha?|order-top-c|order-top-pixels?|order-top-pixe?|order-top-pi?|ox|ox-selectable?|ox-selectab?|ox-select|uffer-chars|uffer-field|uffer-group-id|uffer-group-name|uffer-handle|uffer-lines|uffer-name?|uffer-na?|uffer-partition-id|uffer-tenant-id|uffer-tenant-name|ytes-read|ytes-written))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-C":{"match":"(?i)(:)(c(?:ache|all-name|all-type|an-create?|an-crea|an-delete?|an-dele|an-do-domain-support|an-read|an-write?|ancel-button|ancelled|areful-paint|ase-sensitive?|ase-sensiti?|ase-sensi?|ase-sen|entered?|enter|harset|hecked|hild-buffer|hild-num|lass-type|lient-connection-id|lient-tty|lient-type|lient-workstation|ode|odepage|olumn-bgcolor?|olumn-bgcol?|olumn-bgc|olumn-dcolor|olumn-fgcolor?|olumn-fgcol?|olumn-fgc|olumn-font|olumn-label?|olumn-lab|olumn-movable|olumn-pfcolor?|olumn-pfcol?|olumn-pfc|olumn-read-only|olumn-resizable|olumn-scrolling?|olumn-scrolli?|olumn-scrol?|olumn-scr?|olumns?|om-handle|omplete|onfig-name|ontext-help|ontext-help-file|ontext-help-id|ontrol-box|onvert-3d-colors?|onvert-3d-colo?|onvert-3d-co?|onvert-3d-?|overage|pcase|pcoll|pinternal?|pintern?|pinte?|plog|pprint|prcodein|prcodeout|pstream|pterm|rc-value?|rc-val|urrent-changed|urrent-column|urrent-environment?|urrent-environme?|urrent-environ?|urrent-envir?|urrent-env|urrent-iteration|urrent-request-info|urrent-response-info|urrent-result-row|urrent-row-modified|urrent-window|ursor-char|ursor-line|ursor-offset))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-D":{"match":"(?i)(:)(d(?:ata-entry-return?|ata-entry-retu?|ata-source|ata-source-complete-map|ata-source-modified|ata-source-rowid|ata-type?|ata-ty?|ataset|ate-format?|ate-form?|ate-fo?|b-context|b-list|b-references|bname|color|de-error|de-id?|de-item|de-name|de-topic|eblank|ebug-alert|ecimals|efault|efault-buffer-handle|efault-button?|efault-butt?|efault-commit|efault-string|efault-value|elimiter|escription?|escripti?|irectory|isable-auto-zap|isplay-timezone|isplay-type?|isplay-ty?|omain-description|omain-name|omain-type|own|rag-enabled|rop-target|ynamic))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-E":{"match":"(?i)(:)(e(?:dge-chars?|dge-cha?|dge-c|dge-pixels?|dge-pixe?|dge-pi?|dit-can-paste|dit-can-undo|mpty|nabled|ncoding|ncryption-salt|nd-user-prompt|ntity-expansion-limit|ntry-types-list|rror|rror-column?|rror-colu?|rror-object|rror-object-detail|rror-row|rror-stack-trace|rror-string|vent-group-id|vent-handler|vent-handler-object|vent-procedure|vent-procedure-context|vent-type?|vent-ty?|xclusive-id|xecution-log|xit-code|xpand|xpandable|xtent))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-F":{"match":"(?i)(:)(f(?:gcolor?|gcol?|gc|ile-create-date?|ile-create-da?|ile-create-time?|ile-create-ti?|ile-mod-date?|ile-mod-da?|ile-mod-time?|ile-mod-ti?|ile-name|ile-offset?|ile-offs?|ile-size|ile-type|ill-mode|ill-where-string|illed|irst-async-request?|irst-async-reque?|irst-async-req?|irst-async-r?|irst-async|irst-buffer|irst-child|irst-column|irst-data-source|irst-dataset|irst-form|irst-object|irst-procedure?|irst-procedu?|irst-proce?|irst-query|irst-server-socket|irst-server?|irst-serv|irst-socket|irst-tab-item?|irst-tab-it?|it-last-column|lat-button|ocused-row|ocused-row-selected|ont|oreground?|oregrou?|oregr?|ore|oreign-key-hidden|orm-input|orm-long-input|ormatted?|ormat?|orm|orward-only|ragment?|rame-col|rame-name|rame-row|rame-spacing?|rame-spaci?|rame-spa|rame-x|rame-y|rame?|requency|ull-height-chars?|ull-height-cha?|ull-height-c|ull-height-pixels?|ull-height-pixe?|ull-height-pi?|ull-pathname?|ull-pathna?|ull-width-chars?|ull-width-cha?|ull-width-c?|ull-width|ull-width-pixels?|ull-width-pixe?|ull-width-pi?|unction))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-G":{"match":"(?i)(:)(gr(?:aphic-edge?|aphic-ed?|id-factor-horizontal?|id-factor-horizont?|id-factor-horizo?|id-factor-hori?|id-factor-ho?|id-factor-vertical?|id-factor-vertic?|id-factor-vert?|id-factor-ve?|id-snap|id-unit-height-chars?|id-unit-height-cha?|id-unit-height-c|id-unit-height-pixels?|id-unit-height-pixe?|id-unit-height-pi?|id-unit-width-chars?|id-unit-width-cha?|id-unit-width-c|id-unit-width-pixels?|id-unit-width-pixe?|id-unit-width-pi?|id-visible|oup-box))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-H":{"match":"(?i)(:)(h(?:andler??|as-lobs|as-records|eight-chars?|eight-cha?|eight-c|eight-pixels?|eight-pixe?|eight-pi?|elp|idden|orizontal?|orizont?|orizo?|ori|tml-charset|tml-end-of-line|tml-end-of-page|tml-frame-begin|tml-frame-end|tml-header-begin|tml-header-end|tml-title-begin|tml-title-end|wnd))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-I":{"match":"(?i)(:)(i(?:cfparameter?|cfparamet?|cfparam|con|gnore-current-modified?|gnore-current-modifi?|gnore-current-modi?|mage|mage-down|mage-insensitive|mage-up|mmediate-display|n-handle|ndex|ndex-information?|ndex-informati?|ndex-informa?|ndex-infor?|nherit-bgcolor?|nherit-bgcol?|nherit-bgc|nherit-fgcolor?|nherit-fgcol?|nherit-fgc|nitial|nner-chars|nner-lines|nput-value|nstantiating-procedure|nternal-entries|s-class?|s-json|s-multi-tenant|s-open|s-parameter-set|s-partitioned?|s-xml|tems-per-row))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-K":{"match":"(?i)(:)(ke(?:ep-connection-open|ep-frame-z-order?|ep-frame-z-ord?|ep-frame-z-o?|ep-frame-z|ep-security-cache|ys??))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-L":{"match":"(?i)(:)(l(?:abel|abel-bgcolor?|abel-bgcol?|abel-bgc|abel-dcolor?|abel-dcol?|abel-dc|abel-fgcolor?|abel-fgcol?|abel-fgc|abel-font|abels|abels-have-colons|anguages?|arge|arge-to-small|ast-async-request?|ast-async-reque?|ast-async-req?|ast-async-r?|ast-async|ast-batch|ast-child|ast-form|ast-object|ast-procedure?|ast-procedu?|ast-proce|ast-server-socket|ast-server?|ast-serv|ast-socket|ast-tab-item?|ast-tab-it?|ength|ibrary|ibrary-calling-convention|ine|ist-item-pairs|ist-items|istings|iteral-question|ocal-host|ocal-name|ocal-port|ocal-version-info|ocator-column-number|ocator-line-number|ocator-public-id|ocator-system-id|ocator-type|ocked|og-entry-types|og-threshold|ogfile-name|ogging-level|ogin-expiration-timestamp|ogin-host|ogin-state))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-M":{"match":"(?i)(:)(m(?:andatory|anual-highlight|ax-button|ax-chars|ax-data-guess|ax-height-chars?|ax-height-cha?|ax-height-c|ax-height-pixels?|ax-height-pixe?|ax-height-pi?|ax-value?|ax-val|ax-width-chars?|ax-width-cha?|ax-width-c|ax-width-pixels?|ax-width-pixe?|ax-width-pi?|aximum-level|enu-bar|enu-key?|enu-k|enu-mouse?|enu-mou?|enu-m|erge-by-field|essage-area|essage-area-font|in-button|in-column-width-chars?|in-column-width-cha?|in-column-width-c|in-column-width-pixels?|in-column-width-pixe?|in-column-width-pi?|in-height-chars?|in-height-cha?|in-height-c|in-height-pixels?|in-height-pixe?|in-height-pi?|in-schema-marshall?|in-value?|in-val|in-width-chars?|in-width-cha?|in-width-c|in-width-pixels?|in-width-pixe?|in-width-pi?|odified|ouse-pointer?|ouse-point?|ouse-poi?|ouse-p|ovable|ulti-compile|ultiple|ultitasking-interval|ust-understand))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-N":{"match":"(?i)(:)(n(?:ame|amespace-prefix|amespace-uri|eeds-appserver-prompt|eeds-prompt|ested|ew|ew-row|ext-column?|ext-colu?|ext-rowid|ext-sibling|ext-tab-item?|o-current-value|o-empty-space|o-focus|o-schema-marshall?|o-validate?|o-valida?|o-vali?|ode-value|onamespace-schema-location|um-buffers|um-buttons?|um-butto?|um-but|um-child-relations|um-children|um-columns?|um-colum?|um-col|um-dropped-files|um-entries|um-fields|um-formats|um-header-entries|um-items|um-iterations|um-lines|um-locked-columns?|um-locked-colum?|um-locked-col|um-log-files|um-messages|um-parameters|um-references|um-relations|um-replaced?|um-replac?|um-repl|um-results|um-selected-rows|um-selected-widgets|um-source-buffers|um-tabs|um-to-retain|um-top-buffers|um-visible-columns?|um-visible-colum?|um-visible-col|umeric-decimal-point?|umeric-decimal-poi?|umeric-decimal-p?|umeric-decimal?|umeric-decim?|umeric-dec|umeric-format?|umeric-form?|umeric-fo?|umeric-separator?|umeric-separat?|umeric-separ?|umeric-sep))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-O":{"match":"(?i)(:)(o(?:n-frame-border?|n-frame-bord?|n-frame-bo?|n-frame-?|ptions|rdinal|rigin-handle|rigin-rowid|verlay|wner|wner-document))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-P":{"match":"(?i)(:)(p(?:age-bottom?|age-bott?|age-top|arameter?|aramet?|aram|arent|arent-buffer|arent-fields-after|arent-fields-before|arent-id-relation|arent-relation?|arent-relati?|arent-rela?|arse-status|assword-field|athname|be-hash-algorithm?|be-hash-algorit?|be-hash-algor?|be-hash-alg|be-key-rounds|ersistent-cache-disabled|ersistent-procedure|ersistent?|ersiste?|fcolor?|fcol?|fc|ixels-per-column?|ixels-per-colu?|ixels-per-row|opup-menu?|opup-me?|opup-only?|opup-on?|osition|refer-dataset|repare-string|repared|rev-column?|rev-colu?|rev-sibling|rev-tab-item?|rev-tab-it?|rimary|rimary-passphrase|rinter-control-handle|rinter-hdc|rinter-name|rinter-port|rivate-data?|rivate-da?|rocedure-name|rocedure-type|rofiling|rogress-source?|rogress-sour?|rogress-so?|roxy|roxy-password|roxy-userid|ublic-id|ublished-events))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-Q":{"match":"(?i)(:)(qu(?:alified-user-id|ery|ery-off-end|it))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-R":{"match":"(?i)(:)(r(?:adio-buttons|ead-only|ecid|ecord-length?|ecord-leng?|ecursive|efreshable|ejected|elation-fields?|elation-fiel?|elation-fi|elations-active|emote|emote-host|emote-port|eposition|equest-info|esizable?|esizab?|esize|esponse-info|estart-row|estart-rowid|etain-shape?|etain-sha?|etain-s|eturn-inserted?|eturn-insert?|eturn-inse?|eturn-value-data-type|eturn-value-dll-type|eturn-value?|eturn-val|oles??|ounded|ow|ow-height-chars?|ow-height-cha?|ow-height-c|ow-height-pixels?|ow-height-pixe?|ow-height-pi?|ow-markers?|ow-marke?|ow-mar?|ow-resizable|ow-state|owid))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-S":{"match":"(?i)(:)(s(?:ave-where-string|chema-change|chema-location|chema-marshal|chema-path|creen-lines|creen-value?|creen-val|croll-bars|crollable|crollbar-horizontal?|crollbar-horizont?|crollbar-horizo?|crollbar-hori?|crollbar-ho?|crollbar-vertical?|crollbar-vertic?|crollbar-vert?|crollbar-ve?|eal-timestamp|electable|elected|election-end|election-start|election-text|ensitive|eparator-fgcolor?|eparator-fgcol?|eparator-fgc|eparators|erialize-hidden|erialize-name|erver|erver-connection-bound-request?|erver-connection-bound-reque?|erver-connection-bound-req?|erver-connection-bound?|erver-connection-bou?|erver-connection-context?|erver-connection-conte?|erver-connection-con?|erver-connection-id|erver-operating-mode|ession-end|ession-id|how-in-taskbar?|how-in-taskb?|ide-label-handle?|ide-label-hand?|ide-label-ha?|ide-labels|ignature-value|ingle-run|ingleton|kip-deleted-record?|kip-deleted-reco?|mall-icon|mall-title|oap-fault-actor|oap-fault-code|oap-fault-detail|oap-fault-misunderstood-header|oap-fault-node|oap-fault-role|oap-fault-string|oap-fault-subcode|oap-version|ort|ort-ascending|ort-number|sl-server-name|tandalone|tartup-parameters|tate-detail|tatistics|tatus-area|tatus-area-font|top|top-object|topped?|tream|tretch-to-fit|trict|trict-entity-resolution|ubtype|uper-procedures?|uper-procedur?|uper-proced?|uper-proc|uppress-namespace-processing|uppress-warnings-list|uppress-warnings?|uppress-warnin?|uppress-warn?|uppress-wa?|ymmetric-encryption-aad|ymmetric-encryption-algorithm|ymmetric-encryption-iv|ymmetric-encryption-key|ymmetric-support|ystem-alert-boxes?|ystem-alert-box?|ystem-alert-b?|ystem-alert|ystem-id))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-T":{"match":"(?i)(:)(t(?:ab-position|ab-stop|able|able-crc-list|able-handle|able-list|able-number?|able-numb?|emp-directory?|emp-directo?|emp-direc?|emp-dir|ext-selected|hread-safe|hree-d|ic-marks|ime-source|imezone|itle|itle-bgcolor?|itle-bgcol?|itle-bgc|itle-dcolor?|itle-dcol?|itle-dc|itle-fgcolor?|itle-fgcol?|itle-fgc|itle-font?|itle-fo|oggle-box|ooltips??|op-nav-query|op-only|race-filter|racing|racking-changes|rans-init-procedure?|rans-init-procedu?|rans-init-proce?|ransaction?|ransacti?|ransparent?|ranspare?|ype))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-U":{"match":"(?i)(:)(u(?:ndo|ndo-throw-scope|nique-id|nique-match|rl|rl-password|rl-userid|ser-id))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-V":{"match":"(?i)(:)(v(?:6display|alidate-expression?|alidate-message|alidate-xml|alidation-enabled|alue|ersion|iew-as|iew-first-column-on-reopen|irtual-height-chars?|irtual-height-cha?|irtual-height-c|irtual-height-pixels?|irtual-height-pixe?|irtual-height-pi?|irtual-width-chars?|irtual-width-cha?|irtual-width-c|irtual-width-pixels?|irtual-width-pixe?|irtual-width-pi?|isible))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-W":{"match":"(?i)(:)(w(?:arning|c-admin-app|here-string|idget-enter?|idget-ent?|idget-e|idget-id|idget-leave?|idget-lea?|idget-l|idth-chars?|idth-cha?|idth-c|idth-pixels?|idth-pixe?|idth-pi?|indow|indow-state?|indow-sta|indow-system?|indow-syst?|ord-wrap|ork-area-height-pixels?|ork-area-height-pixe?|ork-area-height-pi?|ork-area-width-pixels?|ork-area-width-pixe?|ork-area-width-pi?|ork-area-x|ork-area-y|rite-status))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-X":{"match":"(?i)(:)(x(?:|-document|code-session-key|ml-data-type|ml-entity-expansion-limit|ml-node-name|ml-node-type|ml-schema-path?|ml-strict-entity-resolution|ml-suppress-namespace-processing))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-attributes-Y":{"match":"(?i)(:)(y(?:|ear-offset))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"handle-methods":{"patterns":[{"include":"#handle-methods-A"},{"include":"#handle-methods-B"},{"include":"#handle-methods-C"},{"include":"#handle-methods-D"},{"include":"#handle-methods-E"},{"include":"#handle-methods-F"},{"include":"#handle-methods-G"},{"include":"#handle-methods-I"},{"include":"#handle-methods-L"},{"include":"#handle-methods-M"},{"include":"#handle-methods-N"},{"include":"#handle-methods-Q"},{"include":"#handle-methods-R"},{"include":"#handle-methods-S"},{"include":"#handle-methods-T"},{"include":"#handle-methods-U"},{"include":"#handle-methods-V"},{"include":"#handle-methods-W"}]},"handle-methods-A":{"begin":"(?i)(:)(a(?:ccept-changes|ccept-row-changes|dd-buffer|dd-calc-column?|dd-calc-colu?|dd-columns-from|dd-events-procedure?|dd-events-procedu?|dd-events-proce?|dd-fields-from|dd-first|dd-header-entry|dd-index-field|dd-last|dd-like-column?|dd-like-colu?|dd-like-field|dd-like-index|dd-new-field|dd-new-index|dd-parent-id-relation|dd-relation?|dd-relati?|dd-rela?|dd-schema-location|dd-source-buffer|dd-super-procedure?|dd-super-procedu?|dd-super-proce?|ppend-child|pply-callback|ttach-data-source|uthentication-failed))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-B":{"begin":"(?i)(:)(b(?:egin-event-group|uffer-compare?|uffer-compa?|uffer-copy|uffer-create|uffer-delete|uffer-export|uffer-export-fields|uffer-field|uffer-import|uffer-import-fields|uffer-release?|uffer-validate|uffer-value))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-C":{"begin":"(?i)(:)(c(?:ancel-break|ancel-requests|ancel-requests-after|lear|lear-appl-context|lear-log|lear-selection?|lear-selecti?|lear-sort-arrows?|lone-node|lose-log|onnect|onnected|onvert-to-offset?|onvert-to-offs|opy-dataset|opy-sax-attributes|opy-temp-table|reate-like|reate-like-sequential|reate-node|reate-node-namespace|reate-result-list-entry|urrent-query))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-D":{"begin":"(?i)(:)(d(?:ebug?|eclare-namespace|elete|elete-char|elete-current-row|elete-header-entry|elete-line|elete-node|elete-result-list-entry|elete-selected-rows??|eselect-focused-row|eselect-rows|eselect-selected-row|etach-data-source|isable|isable-connections|isable-dump-triggers|isable-load-triggers|isconnect?|isconne?|iscon|isplay-message|ump-logging-now))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-E":{"begin":"(?i)(:)(e(?:dit-clear|dit-copy|dit-cut|dit-paste|dit-undo|mpty-dataset|mpty-temp-table|nable|nable-connections|ncode-domain-access-code|ncrypt-audit-mac-key|nd-document|nd-element|nd-event-group|nd-file-drop|ntry|xport|xport-principal))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-F":{"begin":"(?i)(:)(f(?:etch-selected-row|ill|ind-by-rowid|ind-current|ind-first|ind-last|ind-unique|irst-of))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-G":{"begin":"(?i)(:)(get-(?:attribute|attribute-node|binary-data|blue-value?|blue-val?|blue-v?|blue|browse-column?|browse-colu?|buffer-handle|bytes-available|callback-proc-context|callback-proc-name|cgi-list|cgi-long-value|cgi-value|changes|child|child-relation?|child-relati?|child-rela?|client|column|config-value|current?|curre?|dataset-buffer|document-element|dropped-file|dynamic|error-column|error-row|file-name|file-offset?|first?|green-value?|green-val?|green-v?|green|header-entry?|index-by-namespace-name|index-by-qname|iteration|last|localname-by-index|message|message-type|next|node|number|parent|prev|printers|property|qname-by-index|red-value?|red-val?|red-v?|red|relation?|relati?|rela?|repositioned-row|rgb-value?|rgb-val?|rgb-v?|rgb|row|safe-user|selected-widget?|selected-widg?|selected-wi?|selected-?|serialized|signature|socket-option|source-buffer|tab-item|text-height-chars?|text-height-cha?|text-height-c|text-height-pixels?|text-height-pixe?|text-height-pi?|text-width-chars?|text-width-cha?|text-width-c|text-width-pixels?|text-width-pixe?|text-width-pi?|top-buffer|type-by-index|type-by-namespace-name|type-by-qname|uri-by-index|value-by-index|value-by-namespace-name|value-by-qname|wait-state?|wait-sta?|wait-s?|wait))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-I":{"begin":"(?i)(:)(i(?:mport-node|mport-principal|ncrement-exclusive-id|ndex-information?|ndex-informati?|ndex-informa?|ndex-infor?|nitialize|nitialize-document-type|nitiate|nsert|nsert-attribute|nsert-backtab?|nsert-backt?|nsert-bac?|nsert-b|nsert-before|nsert-file|nsert-row|nsert-string|nsert-tab?|nsert-t|nvoke|s-row-selected|s-selected))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-L":{"begin":"(?i)(:)(l(?:ast-of|ist-property-names|oad|oad-domains|oad-icon|oad-image|oad-image-down|oad-image-insensitive|oad-image-up|oad-mouse-pointer?|oad-mouse-point?|oad-mouse-poi?|oad-mouse-p|oad-small-icon|ock-registration|og-audit-event|ogout|ongchar-to-node-value|ookup))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-M":{"begin":"(?i)(:)(m(?:ark-new|ark-row-state|emptr-to-node-value|erge-changes|erge-row-changes|ove-after-tab-item?|ove-after-tab-it?|ove-after-tab-?|ove-after-ta?|ove-after-?|ove-before-tab-item?|ove-before-tab-it?|ove-before-tab-?|ove-before-ta?|ove-before-?|ove-befor|ove-column?|ove-colu?|ove-to-bottom?|ove-to-bott?|ove-to-bo?|ove-to-eof|ove-to-top?|ove-to-t))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-N":{"begin":"(?i)(:)(no(?:de-value-to-longchar|de-value-to-memptr|rmalize))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-Q":{"begin":"(?i)(:)(query-(?:close|open|prepare))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-R":{"begin":"(?i)(:)(r(?:aw-transfer|ead|ead-file|ead-json|ead-xml|ead-xmlschema|efresh|efresh-audit-policy|egister-domain|eject-changes|eject-row-changes|emove-attribute|emove-child|emove-events-procedure?|emove-events-procedu?|emove-events-proce?|emove-super-procedure?|emove-super-procedu?|emove-super-proce?|eplace|eplace-child|eplace-selection-text|eposition-to-row|eposition-to-rowid|eset))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-S":{"begin":"(?i)(:)(s(?:ave|ave-file|ave-row-changes|ax-parse|ax-parse-first|ax-parse-next|croll-to-current-row|croll-to-item?|croll-to-it?|croll-to-selected-row|eal|earch|elect-all|elect-focused-row|elect-next-row|elect-prev-row|elect-row|erialize-row|et-actor|et-appl-context|et-attribute|et-attribute-node|et-blue-value?|et-blue-val?|et-blue-v?|et-blue|et-break|et-buffers|et-callback|et-callback-procedure|et-client|et-commit|et-connect-procedure|et-dynamic|et-green-value?|et-green-val?|et-green-v?|et-green|et-input-source|et-must-understand|et-node|et-numeric-format?|et-numeric-form|et-output-destination|et-parameter|et-property|et-read-response-procedure|et-red-value?|et-red-val?|et-red-v?|et-red|et-repositioned-row|et-rgb-value?|et-rgb-val?|et-rgb-v?|et-rgb|et-role|et-rollback|et-safe-user|et-selection|et-serialized|et-socket-option|et-sort-arrow|et-wait-state?|et-wait-sta?|et-wait-s?|et-wait|tart-document|tart-element|top-parsing|tring-value|ynchronize))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-T":{"begin":"(?i)(:)(te(?:mp-table-prepare?|nant-id|nant-name))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-U":{"begin":"(?i)(:)(u(?:pdate-attribute|rl-decode|rl-encode|ser-data))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-V":{"begin":"(?i)(:)(validate(?:|-domain-access-code|-seal))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"handle-methods-W":{"begin":"(?i)(:)(write(?:|-cdata|-characters|-comment|-data|-data-element|-empty-element|-entity-ref|-external-dtd|-fragment|-json|-message|-processing-instruction|-xml|-xmlschema))\\s*(?=\\()","end":"(\\))","patterns":[{"include":"#function-arguments"}],"beginCaptures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"if-then":{"begin":"(?i)\\b(if)\\b","end":"(?i)\\b(?=then)\\b","patterns":[{"match":"(?i)\\b(and|or)\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#parens"},{"include":"#function-arguments"},{"include":"#property-call"},{"include":"#static-object-property-call"},{"include":"#db-dot-table-dot-field"},{"include":"#comment"},{"include":"#operator"},{"include":"#code-block"},{"include":"#handle-attributes"},{"include":"#preprocessors"},{"include":"#abl-system-handles"},{"include":"#keywords"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"include-file":{"name":"meta.include.abl","begin":"({)\\s*(['\"]?([\\\\\\/\\w$\\-\\.]+)(\\.\\w+['\"]?)?)","end":"\\s*(})\\s*","patterns":[{"include":"#argument-reference"},{"name":"meta.include.argument.abl","match":"(?\u003c=\\s)(\u0026[a-zA-Z0-9][a-zA-Z0-9_\\-#$%#$\\-%\\.]+)\\s*(=)?","captures":{"1":{"name":"support.other.argument.abl"},"2":{"name":"keyword.operator.source.abl"}}},{"include":"#string"},{"match":"([a-zA-Z0-9][a-zA-Z0-9_\\-#$%#$\\-%\\.:]+)\\b","captures":{"1":{"name":"support.other.argument.abl"}}},{"match":"(?\u003c=\\=)(/\\*+)|(\\*+/)|(//)","captures":{"0":{"name":"support.other.argument.abl"}}},{"include":"#argument-reference"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"punctuation.section.abl"},"2":{"name":"entity.name.include.abl"}},"endCaptures":{"1":{"name":"punctuation.section.abl"}}},"inherits-implements-type":{"name":"meta.define-type.implements.abl","begin":"(?i)\\s*(implements|inherits)\\s*(([\\w#$%]+|progress)(\\.[\\w#$%]+)*(?\u003c!\\.))\\s*","end":"(?i)\\s*(serializable|abstract|final|use-widget-pool|inherits|implements+?)","patterns":[{"include":"#type-names"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.type.abl"}},"endCaptures":{"1":{"name":"keyword.other.abl"}}},"input-output-from-to":{"begin":"(?i)\\b(input|output)\\s+((stream|stream-handle)\\s+([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\s+)?(from|to)","end":"(?i)(?=\\.|target|source)","patterns":[{"include":"#type-member-call"},{"include":"#abl-functions"},{"include":"#abl-system-handles"},{"include":"#keywords"},{"include":"#comment"},{"include":"#array-literal"},{"include":"#preprocessors"},{"include":"#opsys-device-name"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"3":{"name":"keyword.other.abl"},"4":{"patterns":[{"include":"#variable-name"}]},"5":{"name":"keyword.other.abl"}}},"keywords":{"patterns":[{"include":"#keywords-A"},{"include":"#keywords-B"},{"include":"#keywords-C"},{"include":"#keywords-D"},{"include":"#keywords-E"},{"include":"#keywords-F"},{"include":"#keywords-G"},{"include":"#keywords-H"},{"include":"#keywords-I"},{"include":"#keywords-J"},{"include":"#keywords-K"},{"include":"#keywords-L"},{"include":"#keywords-M"},{"include":"#keywords-N"},{"include":"#keywords-O"},{"include":"#keywords-P"},{"include":"#keywords-Q"},{"include":"#keywords-R"},{"include":"#keywords-S"},{"include":"#keywords-T"},{"include":"#keywords-U"},{"include":"#keywords-V"},{"include":"#keywords-W"},{"include":"#keywords-X"},{"include":"#keywords-Y"}]},"keywords-A":{"match":"(?i)\\b(a(?:bort|bstract|ccumulate?|ccumula?|ccumu?|cross|ctive-form|ctive-window|dd|dvise|ggregate|lert-box|ll|llow-replication|lter|lternate-key|mbiguous?|mbiguo?|mbig|nd|nsi-only|ny|ny-key|ny-printable|nywhere|ppend|ppend-line|pplication|pply|rray-message?|rray-messa?|rray-mes?|rray-m|s|s-cursor|scending?|scendi?|scen?|sc|sk-overwrite|ssembly|ssign|t|ttach|ttachment|ttribute-type|udit-control|udit-policy|uthorization|uto-endkey|uto-go|utomatic|vailable?|vailab?|vail|verage?|vera?|ve|vg))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-B":{"match":"(?i)\\b(b(?:ack-tab|ackspace|ackwards?|ase-key|ase64|atch|efore-hide?|efore-hi?|egins|ell|etween|gcolor?|gcol?|gc|ig-endian|inary|ind|ind-where|lob|lock|lock-level?|lock-lev|order-bottom?|order-bott?|order-bo?|order-left?|order-le?|order-right?|order-rig?|order-r|order-top?|order-t|oth|ottom|ottom-column|reak|reak-line|rowse|rowse-column-data-types|rowse-column-formats|rowse-column-labels|rowse-header|tos|uffer|uffer-compare?|uffer-compa?|uffer-copy|uttons?|uttons?|y|y-pointer|y-reference|y-value|y-variant-pointer?|y-variant-point|yte))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-C":{"match":"(?i)\\b(c(?:ache|ache-size|all|ancel-pick|ase|atch|decl|entered?|enter|hained|haracter_length|haracter?|haract?|hara?|heck|heck-mem-stomp|hoices|hoose|lass|lear|lient-principal|lipboard|lob|lose|odebase-locator|ol|ol-of|ollate|olon|olon-aligned?|olon-align|olor|olor-table|olumn-codepage|olumn-label-bgcolor?|olumn-label-bgcol?|olumn-label-bgc|olumn-label-dcolor|olumn-label-fgcolor?|olumn-label-fgcol?|olumn-label-fgc|olumn-label-font|olumn-label-height-chars?|olumn-label-height-cha?|olumn-label-height-c|olumn-label-height-pixels?|olumn-label-height-pixe?|olumn-label-height-pi?|olumn-label?|olumn-lab|olumn-of|olumns?|om-self|ombo-box|ommand|ompares?|ompiler??|omponent-handle|omponent-self|onnect|onstrained|onstructor|ontainer-event|ontains|ontents|ontext|ontext-help-id|ontext-popup?|ontext-pop|ontrol|ontrol-container?|ontrol-contain?|ontrol-conta?|ontrol-frame?|onvert|opy|opy-lob|ount|reate|reate-on-add|reate-test-file|tos|urrent|urrent-language?|urrent-langua?|urrent-lang|urrent-value|urrent_date|ursor-down|ursor-left|ursor-right|ursor-up|ursor?|urs|ut))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-D":{"match":"(?i)\\b(d(?:ata-bind?|ata-bi?|ata-refresh-line|ata-refresh-page|ata-relation?|ata-relati?|ata-rela?|ata-source|atabase|ataset|ataset-handle|color|de|de-notify|ebug-list|ebug-set-tenant|ebugger|eclare|efault|efault-action|efault-button?|efault-butt?|efault-extension?|efault-extensi?|efault-exten?|efault-ext?|efault-pop-up|efault-untranslatable|efault-window|efer-lob-fetch|efine-user-event-manager|efine?|efi?|el|elegate|elete|elete-character|elete-column|elete-end-line|elete-field|elete-word|elimiter|escending?|escendi?|escen?|esc|eselect|eselect-extend|eselection|eselection-extend|estructor|etach|ialog-box|ialog-help|ictionary?|ictiona?|ictio?|ict|ir|isabled??|isconnect?|isconne?|iscon|ismiss-menu|isplay?|ispl?|istinct|ll-call-type|os??|os-end|otnet-clr-loaded|ouble|own|rop|rop-down|rop-down-list|rop-file-notify|rop-target|slog-manager|ump|ynamic-current-value|ynamic-new|ynamic-property))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-E":{"match":"(?i)\\b(e(?:ach|cho|dge|dge-pixels?|dge-pixe?|dge-pi?|diting|ditor|ditor-backtab|ditor-tab|lse|mpty|mpty-selection|nable|nd|nd-box-selection|nd-error|nd-key|nd-move|nd-resize|nd-row-resize|nd-search|ndkey|nter-menubar|ntry|num|q|rror|rror-status?|rror-stat|scape|vent|vent-handler-context|vents|xcept|xclusive|xclusive-lock?|xclusive-lo?|xclusive-web-user?|xclusive-web-us?|xclusive-web-?|xecute|xists|xit|xpire|xplicit|xport|xtended|xtent|xternal|xtract))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-F":{"match":"(?i)\\b(f(?:alse|alse-leaks|etch|gcolor?|gcol?|gc|ields?|ile|ile-access-date?|ile-access-da?|ile-access-time?|ile-access-ti?|ile-information?|ile-informati?|ile-informa?|ile-infor?|ilename|ill-in|ilters|inal|inally|ind|ind-case-sensitive|ind-global|ind-next|ind-next-occurrence|ind-prev-occurrence|ind-previous|ind-select|ind-wrap-around|inder|irehose-cursor|irst|ix-codepage|ixed-only|lags|lat-button|loat|ocus|ocus-in|ont|ont-table|or|orce-file|oreign-key-hidden|ormat?|orm|ormat?|orm|orwards?|rame-value?|rame-val|rame?|rom|rom-chars?|rom-cha?|rom-c|rom-current?|rom-curre?|rom-cur|rom-pixels?|rom-pixe?|rom-pi?|romnoreorder|ull-height|unction|unction-call-type))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-G":{"match":"(?i)\\b(g(?:e|enerate-md5|et|et-attr-call-type|et-dir|et-file|et-key-value?|et-key-val|et-text-height|et-text-width|etbyte|lobal?|lob|o|o-on|oto|rant|rant-archive|raphic-edge?|raphic-ed?|rayed|rid-set|rid-unit-height|rid-unit-width|roup|t))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-H":{"match":"(?i)\\b(h(?:aving|eader|eight|elp|elp-context?|elp-conte?|elp-con|elp-topic|elpfile-name?|elpfile-na?|idden|ide|int|ome|oriz-end|oriz-home|oriz-scroll-drag|ost-byte-order))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-I":{"match":"(?i)\\b(i(?:f|mage|mage-down|mage-insensitive|mage-size|mage-size-chars?|mage-size-cha?|mage-size-c|mage-size-pixels?|mage-size-pixe?|mage-size-pi?|mage-up|mplements|mport|n|ndex-hint|ndexed-reposition|ndicator|nformation?|nformati?|nforma?|nfor?|nherit-color-mode|nherits|nit|nitial|nitial-dir|nitial-filter|nitiate|nner|nput|nput-output?|nput-outp?|nput-ou?|nsert|nsert-column|nsert-field|nsert-field-data|nsert-field-label|nsert-mode|nterface|nto|s|tem|teration-changed))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-J":{"match":"(?i)\\b(join(?:|-by-sqldb|-on-select))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-K":{"match":"(?i)\\b(ke(?:ep-frame-z-order?|ep-frame-z-ord?|ep-frame-z-o?|ep-frame-z|ep-messages|ep-tab-order|y-code|y-function?|y-functi?|y-func|y-label|ycache-join))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-L":{"match":"(?i)\\b(l(?:abel|abel-pfcolor?|abel-pfcol?|abel-pfc|andscape|ast-event?|ast-key|e|eading|eak-detection|eave|eft|eft-aligned?|eft-align|eft-end|ength|ike|ike-sequential|ine-down|ine-left|ine-right|ine-up|isting?|isti|ittle-endian|oad|oad-from|oad-picture|oad-result-into|ob-dir|ocked|og-id|og-manager|ong|ongchar?|ongch|ookahead|ower|t))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-M":{"match":"(?i)\\b(m(?:achine-class|ain-menu|ap|argin-extra|argin-height|argin-height-chars?|argin-height-cha?|argin-height-c|argin-height-pixels?|argin-height-pixe?|argin-height-pi?|argin-width|argin-width-chars?|argin-width-cha?|argin-width-c|argin-width-pixels?|argin-width-pixe?|argin-width-pi?|atches|ax|ax-button|ax-height|ax-rows|ax-size|ax-width|aximize|d5-value|emptr|enu|enu-drop|enu-item|enubar|essage|essage-area|essage-area-msg|essage-line|ethod|in-height|in-schema-marshall?|in-size|in-width|od|odulo|ouse|ouse-pointer?|ouse-point?|ouse-poi?|ouse-p|ove|pe|ultiple-key|ust-exist))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-N":{"match":"(?i)\\b(n(?:amespace-prefix|amespace-uri|ative|e|ested|ew|ew-instance|ew-line|ext|ext-error|ext-frame|ext-prompt|ext-word|o|o-apply|o-array-message?|o-array-messa?|o-array-mes?|o-array-m|o-assign|o-attr|o-attr-list?|o-attr-li?|o-attr-space?|o-attr-spa?|o-attr-s|o-auto-trim?|o-auto-validate|o-bind-where|o-box|o-column-scrolling?|o-column-scrolli?|o-column-scrol?|o-column-scr?|o-console|o-convert|o-convert-3d-colors?|o-convert-3d-colo?|o-convert-3d-co?|o-convert-3d-?|o-debug|o-drag|o-echo|o-error|o-fill?|o-fi?|o-firehose-cursor|o-focus|o-help|o-hide|o-index-hint|o-inherit-bgcolor?|o-inherit-bgcol?|o-inherit-bgc|o-inherit-fgcolor?|o-inherit-fgcol?|o-inherit-fgc|o-join-by-sqldb|o-keycache-join|o-labels?|o-lobs|o-lock|o-lookahead|o-map|o-message?|o-messa?|o-mes|o-pause|o-prefetch?|o-prefet?|o-query-order-added?|o-query-order-add?|o-query-order-a?|o-query-order?|o-query-ord?|o-query-o|o-query-unique-added?|o-query-unique-add?|o-query-unique-a?|o-query-unique?|o-query-uniq?|o-query-un?|o-return-value?|o-return-val|o-row-markers|o-schema-marshall?|o-scrollbar-vertical?|o-scrollbar-vertic?|o-scrollbar-vert?|o-scrollbar-ve?|o-scrolling|o-separate-connection|o-separators|o-tab-stop?|o-tab-st?|o-tab-?|o-underline?|o-underli?|o-under?|o-undo??|o-wait|o-word-wrap|ode-type|on-serializable|one|ot-active|ull|um-copies|um-selected|umeric))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-O":{"match":"(?i)\\b(o(?:bject|ctet_length|ff??|ff-end|ff-home|k|k-cancel|ld|le-invoke-locale?|le-invoke-loca|le-names-locale?|le-names-loca|n|pen|pen-line-above|ption|ptions-file|r|rdered-join|rientation|s-append|s-command|s-copy|s-create-dir|s-delete|s-dir|s-rename|s2|s400|therwise|ut-of-data|uter|uter-join|utput|verlay|verride))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-P":{"match":"(?i)\\b(p(?:ackage-private|ackage-protected|age|age-bottom?|age-bott?|age-down|age-left|age-right|age-right-text|age-up|age-width?|age-wid|aged|arameter?|aramet?|aram|arent-id-field|arent-window-close|artial-key|ascal|aste|ause|erformance?|erforman?|erform?|erfo?|fcolor?|fcol?|fc|ick|ick-area|ick-both|ixels|ortrait|recision|reprocess?|reproce?|reselect?|resele?|rev|rev-frame|rev-word|rinter|rinter-setup|rivate|rivileges|rocedure-call-type|rocedure-complete|rocedure?|rocedu?|roce|rocess|rofile-file|rofiler|rompt|rompt-for?|rompt-f|romsgs|ropath|roperty|rotected|ublic|ublish|ut|ut-bits|ut-bytes??|ut-double|ut-float|ut-int64|ut-key-value?|ut-key-val|ut-long|ut-short|ut-string|ut-unsigned-long|ut-unsigned-short|utbyte))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-Q":{"match":"(?i)\\b(qu(?:ery|ery-tuning|estion|it))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-R":{"match":"(?i)\\b(r(?:adio-set|aw|aw-transfer|code-information?|code-informati?|code-informa?|code-infor?|ead-available|ead-exact-num|ead-response|eadkey|eal|ecall|ectangle?|ectang?|ecta?|ecursive|eference-only|einstate|elease|epeat|eplication-create|eplication-delete|eplication-write|eports|eposition|eposition-backwards?|eposition-backwar?|eposition-backw?|eposition-forwards?|eposition-forwar?|eposition-forw|eposition-parent-relation?|eposition-parent-relati?|eposition-parent-rela?|equest|esize|esult|esume-display|etain|etry-cancel|eturn|eturn-to-start-dir?|eturn-value?|eturn-val|eturns|everse-from|evert|evoke|ight|ight-aligned?|ight-align|ight-end|outine-level|ow|ow-created|ow-deleted|ow-display|ow-entry|ow-height|ow-leave|ow-modified|ow-of|ow-unmodified|ule|ule-row|ule-y|un|un-procedure?|un-procedu?|un-proce?))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-S":{"match":"(?i)\\b(s(?:ave|ave-as|ax-attributes|ax-complete?|ax-comple|ax-parser-error|ax-reader|ax-running|ax-uninitialized|ax-write-begin|ax-write-complete|ax-write-content|ax-write-element|ax-write-error|ax-write-idle|ax-write-tag|ax-writer|ax-xml|chema|creen|creen-io|croll|croll-bars|croll-horizontal|croll-left|croll-mode|croll-notify|croll-right|croll-vertical|crollable|crollbar-drag|crolled-row-position?|crolled-row-positi?|crolled-row-posi?|crolling|earch-self|earch-target|ection|ecurity-policy|eek|elect|elect-extend|elect-on-join|elect-repositioned-row|elected-items|election|election-extend|election-list|elf|end|ensitive|eparate-connection|eparators|erializable|erialize-hidden|erialize-name|erver|erver-socket|ession|et|et-attr-call-type|et-byte-order|et-cell-focus|et-contents|et-db-logging|et-event-manager-option|et-option|et-pointer-value?|et-pointer-val|et-state|ettings|hare-lock?|hare-lo?|hare-?|hared|hort|how-in-taskbar?|how-in-taskb?|how-stats?|ide-labels?|ide-labe?|ignature|ilent|imple|ingle|ingle-character|ingle-run|ize|ize-chars?|ize-cha?|ize-c|ize-pixels?|ize-pixe?|ize-pi?|kip|kip-group-duplicates|kip-schema-check|lider|mallint|oap-fault|oap-header|oap-header-entryref|ocket|ome|ource|ource-procedure|pace|ql|tart|tart-box-selection|tart-extend-box-selection|tart-mem-check|tart-move|tart-resize|tart-row-resize|tart-search|tarting|tatic|tatus|tatus-area|tatus-area-msg|tdcall|tomp-detection|tomp-frequency|top|top-after|top-display|top-mem-check|tored-procedure?|tored-procedu?|tored-proce?|tream|tream-handle|tream-io|tring-xref|ub-average?|ub-avera?|ub-ave|ub-count|ub-maximum?|ub-maxim?|ub-max|ub-menu|ub-menu-help|ub-minimum?|ub-minim?|ub-min|ub-total|ubscribe|ubstring?|ubstri?|um|ummary|uper|uspend|ystem-dialog|ystem-help))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-T":{"match":"(?i)\\b(t(?:ab|able-scan|arget|arget-procedure|emp-table|enant|enant-where|erm|erminal|erminate|ext|ext-cursor|ext-seg-growth?|ext-seg-grow?|ext-seg-gr?|ext-seg-?|hen|his-object|his-procedure|hree-d|hrough|hrow|hru|itle|o|ooltip|op|op-column|opic|otal|railing|rans|ransaction-mode|ransaction?|ransacti?|riggers??|rue|tcodepage))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-U":{"match":"(?i)\\b(u(?:nbuffered?|nbuffer?|nbuff|nderline?|nderli?|ndo|nformatted?|nformatt?|nforma?|nion|nique|nix|nix-end|nless-hidden|nload|nsigned-byte|nsigned-int64|nsigned-integer|nsigned-long|nsigned-short|nsubscribe|p|pdate|pper|se|se-dict-exps?|se-dict-ex?|se-dict-?|se-dic|se-filename|se-index|se-revvideo|se-text|se-underline|se-widget-pool|ser|sing|tc-offset))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-V":{"match":"(?i)\\b(v(?:6frame|alidate|alue|alue-changed|alues|ar|ariable?|ariab?|ari?|erbose?|erbo?|ertical?|ertic?|ert|iew|iew-as|irtual-height|irtual-width|ms|oid))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-W":{"match":"(?i)\\b(w(?:ait|ait-for|arning|eb-context?|eb-conte?|eb-con|eb-notify|hen|here|hile|idget|idget-id|idget-pool|idth|indow-close|indow-delayed-minimize?|indow-delayed-minimi?|indow-delayed-mini?|indow-maximized?|indow-maximiz?|indow-maxim|indow-minimized?|indow-minimiz?|indow-minim|indow-name|indow-normal|indow-resized|indow-restored|ith|ord-index|ork-table?|ork-tab|orkfile|rite))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-X":{"match":"(?i)\\b(x(?:-document|-noderef|-of|code|ml-data-type|ml-node-name|ml-node-type|or|ref|ref-xml))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"keywords-Y":{"match":"(?i)\\b(y(?:-of|ear|ear-offset|es|es-no|es-no-cancel))\\b(?![#$\\-_%\u0026])","captures":{"1":{"name":"keyword.other.abl"}}},"label-variable":{"match":"(?i)\\s*([a-zA-Z0-9_\\-#$%]+)\\s+(label)\\s*","captures":{"1":{"name":"variable.other.abl"},"2":{"name":"keyword.other.abl"}}},"language-functions":{"match":"(?i)\\b(opsys|(provers(?:ion|io|i)?)|guid|generate-uuid)\\b","captures":{"1":{"name":"support.function.abl"}}},"method-definition":{"name":"meta.define.method.abl","begin":"(?i)^\\s*(method|constructor|destructor)\\s*","end":"(?=:|\\.)","patterns":[{"include":"#access-modifier"},{"match":"(?i)\\s*(void)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"begin":"(?i)\\s*([a-zA-Z0-9_]+[a-zA-Z0-9_\\-{}#$%\u0026]*)?\\s*(\\()\\s*","end":"(\\))","patterns":[{"include":"#parameter-definition"}],"beginCaptures":{"1":{"name":"entity.name.function.abl"},"2":{"name":"meta.brace.round.js"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},{"include":"#parameter-as"},{"include":"#string"},{"include":"#extent"},{"include":"#primitive-type"},{"match":"(?i)\\b([a-zA-Z0-9_]+[a-zA-Z0-9_\\-{}#$%\u0026]*)\\b\\R","captures":{"1":{"name":"entity.name.function.abl"}}},{"include":"#dll-type"},{"include":"#type-names"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"multilinecomment":{"name":"comment.block.source.abl","contentName":"comment","begin":"/\\*","end":"\\*/","patterns":[{"name":"comment.block.source.abl","include":"#multilinecomment"}]},"new-class":{"begin":"(?i)\\b(new)\\b(?!\\-)","end":"(?=\\()","patterns":[{"include":"#type-names"},{"include":"#string"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"new-record":{"patterns":[{"match":"(?i)\\s*(new)\\s+(\\()\\s*([a-zA-Z_][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*(\\))","captures":{"1":{"name":"support.function.abl"},"2":{"name":"meta.brace.round.js"},"3":{"name":"storage.data.table.abl"},"5":{"name":"meta.brace.round.js"}}},{"match":"(?i)\\s*((new)\\s+(?!.*\\()([a-zA-Z_{][a-zA-Z0-9_\\-#$%\\.{\u0026}]*))","captures":{"2":{"name":"support.function.abl"},"3":{"name":"storage.data.table.abl"}}}]},"numeric":{"name":"constant.numeric.source.abl","match":"(?\u003c![a-zA-Z0-9_\\-#$%-])(0[xX][[:xdigit:]]+)|(\\-?\\.?[0-9]+(\\.[0-9]+)?)"},"of-phrase":{"patterns":[{"match":"\\s*([Oo][Ff])\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z_][a-zA-Z0-9_\\-#$%]*)?)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},{"match":"(?i)\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z_][a-zA-Z0-9_\\-#$%]*)?)\\s+(of)\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z_][a-zA-Z0-9_\\-#$%]*)?)\\s*","captures":{"1":{"name":"storage.data.table.abl"},"3":{"name":"keyword.other.abl"},"4":{"name":"storage.data.table.abl"}}}]},"on-error-endkey-stop":{"match":"(?i)\\s*(on)\\s+(endkey|error|stop|quit)\\s+(undo)\\s*(?!leave|next|retry|return|throw)([a-zA-Z0-9_\\-#$%\\-$]*)?\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"},"3":{"name":"keyword.other.abl"},"4":{"name":"entity.name.label.abl"}}},"operator":{"patterns":[{"include":"#operator-no-space"},{"include":"#operator-with-space"},{"include":"#operator-with-trailing-space"}]},"operator-no-space":{"match":"(\\+=|-=|\\\\=|\\*=|\u003c=|\u003c\u003e|\u003e=|=|\\+|-|/|\u003c|\u003e|\\*)","captures":{"1":{"name":"keyword.operator.source.abl"}}},"operator-with-space":{"match":"(?i)(?\u003c=\\s)(contains|begins|matches|eq|le|lt|ge|gt|ne)(?=\\s|\\()","captures":{"1":{"name":"keyword.operator.source.abl"}}},"operator-with-trailing-space":{"match":"\\b([Nn][Oo][Tt])(?=\\s|\\()","captures":{"1":{"name":"keyword.operator.source.abl"}}},"opsys-device-name":{"match":"([_\\w\\/\\-\\\\$:\\.]+)(?\u003c!\\.)","captures":{"1":{"name":"storage.other.opsys-device.abl"}}},"ordinal":{"match":"(?i)\\s*(ordinal)\\s((0x)?[[:xdigit:]]+)?","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"constant.numeric.source.abl"}}},"parameter-as":{"begin":"\\s*([a-zA-Z0-9_\\-#$%]+)\\s+([Aa][Ss])\\s+","end":"(?=\\s|\\)|\\.|,)","patterns":[{"match":"\\s*([Cc][Ll][Aa][Ss]{2})\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#primitive-type"},{"include":"#dll-type"},{"include":"#type-names"},{"include":"#parens"},{"include":"#string"},{"include":"#punctuation-period"},{"include":"#punctuation-comma"}],"beginCaptures":{"1":{"name":"variable.parameter.abl"},"2":{"name":"keyword.other.abl"}}},"parameter-definition":{"name":"meta.define.parameter.abl","patterns":[{"match":"(?i)\\s*((input-o(?:utput|utpu|utp|u)?)|input|output|append|bind|by-value|(presel(?:ect|ec|e)?)|buffer|(param(?:eter|ete|et|e)?)|no-undo)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"match":"(?i)\\s*(dataset-handle|table-handle)\\s+([a-zA-Z][a-zA-Z0-9_\\-]*)","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.parameter.abl"}}},{"match":"(?i)\\s*(dataset)\\s+([a-zA-Z][a-zA-Z0-9_\\-]*)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.dataset.abl"}}},{"match":"(?i)\\s*(table)\\s+([a-zA-Z][a-zA-Z0-9_\\-]*)\\s*","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},{"include":"#parameter-as"},{"match":"(?i)\\s*((char(?:acter|acte|act|ac|a)?)|com-handle|date|datetime-tz|datetime|(dec(?:imal|ima|im|i)?)|handle|int64|(int(?:eger|ege|eg|e)?)|(log(?:ical|ica|ic|i)?)|(longch(?:ar|a)?)|memptr|raw|recid|rowid|(widget-h(?:andle|andl|and|an|a)?))(?![=a-zA-Z0-9_\\-])\\s*(,*)","captures":{"1":{"name":"storage.type.abl"},"2":{"name":"punctuation.separator.comma.abl"}}},{"match":"\\s*(,)\\s*","captures":{"1":{"name":"punctuation.separator.comma.abl"}}},{"include":"#buffer-for-table"},{"include":"#extent"},{"include":"#property-call"},{"include":"#abl-functions"},{"include":"#array-literal"},{"include":"#decimals"},{"include":"#constant"},{"include":"#abl-system-handles"},{"include":"#keywords"},{"include":"#handle-attributes"},{"include":"#handle-methods"},{"include":"#type-names"},{"include":"#string"},{"include":"#comment"},{"include":"#preprocessors"}]},"parameter-name":{"name":"variable.parameter.abl","match":"(?\u003c=^|\\s)(a-zA-Z0-9_\\-#$%|-)+(?=\\s)"},"parens":{"name":"meta.brace.round.js","match":"\\(|\\)"},"preprocessors":{"match":"(?i)(\u0026window-system|\u0026text-height|\u0026line-number|\u0026batch-mode|\u0026file-name|\u0026undefine|\u0026sequence|\u0026message|defined|\u0026elseif|(?:\u0026scop(?:ed-define|ed-defin|ed-defi|ed-def|ed-de|ed-d|ed-|ed|e)?)|(?:\u0026glob(?:al-define|al-defin|al-defi|al-def|al-de|al-d|al-|al|a)?)|\u0026opsys|\u0026endif|\u0026else|\u0026then|\u0026if)|({\u0026[a-zA-Z0-9_\\-#$%\\s\\(\\)]+})|(\u0026[a-zA-Z0-9_\\-#$%]+)","captures":{"1":{"name":"storage.type.function.abl"},"2":{"name":"storage.type.function.abl"}}},"primitive-type":{"match":"(?i)(?\u003c=^|\\s)(blob|(char(?:acter|acte|act|ac|a)?)|cha|ch|c|clob|com-handle|date|da|datetime|datetime-tz|(dec(?:imal|ima|im|i)?)|de|handle|int64|(int(?:eger|ege|eg|e)?)|in|i|(log(?:ical|ica|ic|i)?)|lo|l|(longch(?:ar|a)?)|memptr|raw|recid|rowid|widget-handle)(?![=a-zA-Z0-9_\\-#$%\\-])","captures":{"1":{"name":"storage.type.abl"}}},"procedure-definition":{"name":"meta.procedure.abl","begin":"(?i)\\b(proce(?:dure|dur|du|d)?)\\s+(?=[a-zA-Z_])","end":"(?=:|\\.)","patterns":[{"match":"(?i)\\b(private|external|cdecl|pascal|stdcall|ordinal|(persist(?:ent|en|e)?)|thread-safe|in|super)\\b","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#string"},{"match":"([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026\\.]+)(?\u003c!\\.)","captures":{"1":{"name":"entity.name.procedure.abl"}}},{"include":"#argument-reference"},{"include":"#numeric"},{"include":"#comment"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}},"endCaptures":{"1":{"name":"punctuation.terminator.abl"}}},"procedure-name":{"match":"([\\w\\-\\$\\@\\/\\\\\\.]{1,256})(?=\\b|\\.$)","captures":{"1":{"name":"entity.name.procedure.abl"}}},"property-accessor":{"patterns":[{"include":"#property-get-set-super"},{"include":"#property-get-set-empty"},{"include":"#property-get-set-block"}]},"property-as":{"match":"\\s*([a-zA-Z0-9_\\-#$%]+)\\s+([Aa][Ss])\\s*","captures":{"1":{"name":"entity.name.function.abl"},"2":{"name":"keyword.other.abl"}}},"property-call":{"match":"(:)([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\b","captures":{"1":{"name":"punctuation.separator.colon.abl"},"2":{"name":"entity.name.function.abl"}}},"property-get-set-block":{"begin":"\\s*(?\u003c!:)\\s*([Gg][Ee][Tt]|[Ss][Ee][Tt])\\b(?![#$\\-_%\u0026])","end":"\\s*([Ee][Nn][Dd])\\s*([Gg][Ee][Tt]|[Ss][Ee][Tt])?\\s*(?=\\.)\\s*","patterns":[{"include":"#function-parameter-definition"},{"include":"#code-block"},{"include":"#punctuation-colon"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}},"endCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"property-get-set-empty":{"match":"\\b([Gg][Ee][Tt]|[Ss][Ee][Tt])\\s*(?=\\.)","captures":{"1":{"name":"keyword.other.abl"}}},"property-get-set-super":{"match":"(?i)\\b(get|set)\\s+(super)\\s*(?=\\.)","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}}},"punctuation-colon":{"name":"punctuation.terminator.abl","match":":"},"punctuation-comma":{"match":"(,)","captures":{"1":{"name":"punctuation.separator.comma.abl"}}},"punctuation-period":{"match":"(\\.)","captures":{"1":{"name":"punctuation.terminator.abl"}}},"punctuation-semicolon":{"match":"(;)","captures":{"1":{"name":"punctuation.terminator.abl"}}},"punctuation-separator":{"name":"punctuation.separator.abl","patterns":[{"include":"#punctuation-comma"},{"match":"(:)","captures":{"1":{"name":"punctuation.separator.colon.abl"}}},{"match":"(\\.)","captures":{"1":{"name":"punctuation.separator.period.abl"}}}]},"record-buffer-functions":{"match":"(?i)\\b((?:avail(?:able|abl|ab|a)?)|locked|ambiguous)\\s*(\\()?\\s*([a-zA-Z][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*(\\))?","captures":{"1":{"name":"support.function.abl"},"2":{"name":"meta.brace.round.js"},"3":{"name":"storage.data.table.abl"},"5":{"name":"meta.brace.round.js"}}},"release":{"begin":"(?i)\\s*(release)\\s*","end":"(?=\\.)","patterns":[{"include":"#comment"},{"include":"#string"},{"match":"(?i)\\s*(object)\\s+(.*)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"variable.other.abl"}}},{"include":"#keywords"},{"include":"#db-dot-table"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"rowid-function":{"match":"(?i)\\s*(rowid)\\s*(\\()\\s*([a-zA-Z_][a-zA-Z0-9_\\-#$%]*(\\.[a-zA-Z][a-zA-Z0-9_\\-#$%]*)?)\\s*(\\))","captures":{"1":{"name":"support.function.abl"},"2":{"name":"meta.brace.round.js"},"3":{"name":"storage.data.table.abl"},"5":{"name":"meta.brace.round.js"}}},"run-statement":{"begin":"\\b([Rr][Uu][Nn])\\b","end":"(?i)(?=\\.|value|set|persistent|single-run|singleton|on|no-error|in|asynchronous|\\()","patterns":[{"include":"#string"},{"include":"#argument-reference"},{"include":"#comment"},{"include":"#procedure-name"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"serializable":{"match":"(?i)\\b(non-serializable|serializable)\\b","captures":{"1":{"name":"keyword.other.abl"}}},"singlelinecomment":{"name":"comment.line.double-slash.abl","match":"//.*$"},"singlequotedstring":{"name":"string.single.complex.abl","begin":"(')","end":"(?i)(')(:[L|R|T|C|U]\\d*\\b)?","patterns":[{"include":"#escape-char"}],"beginCaptures":{"1":{"name":"punctuation.definition.string.begin.abl"}},"endCaptures":{"1":{"name":"punctuation.definition.string.end.abl"},"2":{"name":"support.other.abl"}}},"statements":{"name":"meta.statements.abl","patterns":[{"include":"#comment"},{"include":"#buffer-copy"},{"include":"#trigger-procedure"},{"include":"#abl-function-variable-arg"},{"include":"#while-expression"},{"include":"#rowid-function"},{"include":"#var-statement"},{"include":"#input-output-from-to"},{"include":"#function-definition"},{"include":"#record-buffer-functions"},{"include":"#create-statement"},{"include":"#can-find"},{"include":"#release"},{"include":"#copy-lob"},{"include":"#event-un-subscribe"},{"include":"#buffer-name"},{"include":"#temp-table-name"},{"include":"#annotation"},{"include":"#undo-statement"},{"include":"#block-statement"},{"include":"#block-label"},{"include":"#end-block"},{"include":"#end-function-procedure-method-block"},{"include":"#find-record"},{"include":"#type-argument-function"},{"include":"#get-class"},{"include":"#if-then"},{"include":"#string"},{"include":"#translation-attribute"},{"include":"#break-group"},{"include":"#event-un-subscribe"},{"include":"#property-call"},{"include":"#handle-attributes"},{"include":"#handle-methods"},{"include":"#abl-functions"},{"include":"#unqualified-method-call"},{"include":"#function-arguments"},{"include":"#method-definition"},{"include":"#access-modifier"},{"match":"(?i)\\s*(void)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#parens"},{"include":"#declarations"},{"include":"#decimals"},{"include":"#numeric"},{"include":"#constant"},{"include":"#timestamp-constant"},{"include":"#break-by"},{"include":"#new-record"},{"include":"#type-reference"},{"include":"#procedure-definition"},{"include":"#for-join"},{"include":"#operator"},{"include":"#analyze-suspend-resume"},{"include":"#global-scoped-define"},{"include":"#label-variable"},{"include":"#define-field"},{"include":"#define-like"},{"include":"#format-constant"},{"include":"#preprocessors"},{"include":"#dll-type"},{"include":"#parameter-as"},{"include":"#buffer-for-table"},{"include":"#primitive-type"},{"include":"#property-accessor"},{"include":"#for-each-table"},{"include":"#for-each-join"},{"include":"#of-phrase"},{"include":"#db-dot-table-dot-field"},{"include":"#code-block"},{"include":"#language-functions"},{"include":"#comment"},{"include":"#array-literal"},{"include":"#punctuation-semicolon"},{"include":"#punctuation-comma"},{"include":"#punctuation-colon"},{"include":"#parens"},{"include":"#keywords"},{"include":"#variable-name"},{"include":"#punctuation-period"},{"include":"#punctuation-colon"}]},"static-object-property-call":{"match":"(?i)\\s*(([\\w#$%\\-]+|progress)(\\.[\\w#$%\\-]+)+)\\s*(:)([\\w\\-]+)\\s*","captures":{"1":{"name":"entity.name.type.abl"},"4":{"name":"punctuation.separator.colon.abl"},"5":{"name":"entity.name.function.abl"}}},"string":{"patterns":[{"include":"#singlequotedstring"},{"include":"#doublequotedstring"},{"include":"#translation-attribute"}]},"temp-table-name":{"match":"(?i)\\b(temp-table)\\s+([a-zA-Z][a-zA-Z0-9_\\-#$%]*)","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},"timestamp-constant":{"name":"constant.language.abl"},"translation-attribute":{"match":"(:[LlRrTtCcUu]\\d*)\\b","captures":{"1":{"name":"support.other.abl"}}},"trigger-procedure":{"begin":"(?i)\\b(trigger)\\s+(proce(?:dure|dur|du|d)?)\\b","end":"(?=:|\\.)","patterns":[{"include":"#comment"},{"include":"#preprocessors"},{"include":"#primitive-type"},{"include":"#variable-as"},{"include":"#variable-like"},{"include":"#keywords"},{"include":"#db-dot-table"},{"include":"#string"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"keyword.other.abl"}},"endCaptures":{"1":{"name":"punctuation.terminator.abl"}}},"type-argument-function":{"name":"meta.function-call.abl","begin":"(?i)\\s*(cast|type-of)\\s*(?=\\()","end":"(?\u003c=\\))","patterns":[{"begin":"(?\u003c=\\()","end":"(,)","patterns":[{"include":"#function-arguments-no-parens"},{"include":"#parens"}],"endCaptures":{"1":{"name":"punctuation.separator.comma.abl"}}},{"include":"#type-names"},{"include":"#comment"},{"include":"#string"},{"include":"#parens"},{"include":"#punctuation-comma"},{"include":"#preprocessors"}],"beginCaptures":{"1":{"name":"support.function.abl"}},"endCaptures":{"1":{"name":"meta.brace.round.js"}}},"type-member-call":{"patterns":[{"include":"#property-call"},{"include":"#unqualified-method-call"},{"include":"#static-object-property-call"}]},"type-name":{"match":"(?i)\\b([\\w#$%\\-]+(\\.[\\w#$%\\-]+)*)\\b","captures":{"1":{"name":"entity.name.type.abl"}}},"type-name-generic":{"name":"meta.generic.abl","begin":"(?i)\\s*(([\\w#$%\\-]+)(\\.[\\w#$%\\-]+)*\\s*)\\s*(\u003c)","end":"(\u003e)","patterns":[{"include":"#type-name-generic"},{"include":"#punctuation-comma"},{"include":"#type-name"}],"beginCaptures":{"1":{"name":"entity.name.type.abl"},"4":{"name":"punctuation.definition.generic.begin.abl"}},"endCaptures":{"1":{"name":"punctuation.definition.generic.end.abl"}}},"type-names":{"patterns":[{"include":"#type-name-generic"},{"include":"#type-name"}]},"type-reference":{"patterns":[{"include":"#define-type"},{"include":"#get-class"},{"include":"#new-class"},{"include":"#using"},{"include":"#type-argument-function"}]},"undo-statement":{"begin":"(?i)\\s*(undo)\\s*([a-zA-Z0-9_\\-#$%\\-$]*)?\\s*(,)","end":"(?=\\.|:)","patterns":[{"include":"#string"},{"match":"(?i)\\s*(leave|next|retry)\\s([a-zA-Z0-9_\\-#$%\\-$]*)?","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.label.abl"}}},{"include":"#new-class"},{"include":"#keywords"},{"include":"#code-block"},{"include":"#property-call"},{"include":"#function-arguments"},{"include":"#expression"},{"include":"#punctuation-colon"}],"beginCaptures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.label.abl"},"3":{"name":"punctuation.separator.comma.abl"}}},"unqualified-method-call":{"match":"\\b([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)\\b(?=\\()","captures":{"1":{"name":"entity.name.function.abl"}}},"use-index":{"match":"(?i)\\b(use-index)\\s+([a-zA-Z_][a-zA-Z0-9_\\-$]*)\\b","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"storage.data.table.abl"}}},"using":{"name":"meta.using.abl","begin":"(?i)\\s*(using)\\s*","end":"(\\.)","patterns":[{"match":"(?i)\\s*((([\\w#$%]+|progress)(\\.[\\w#$%]+)*)\\.\\*)\\s*","captures":{"2":{"name":"entity.name.package.abl"}}},{"match":"(?i)\\s*(from|propath|assembly)\\s*","captures":{"1":{"name":"keyword.other.abl"}}},{"include":"#type-name"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}},"endCaptures":{"1":{"name":"punctuation.terminator.abl"}}},"using-except":{"begin":"(?i)\\b(using|except)\\b","end":"(?i)\\s*(?=to|using|except)\\b","patterns":[{"include":"#field-name"},{"include":"#comment"},{"include":"#preprocessors"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}},"var-statement":{"name":"meta.define.abl","begin":"^\\s*(var)\\s+","end":"(\\s([a-zA-Z][a-zA-Z0-9_\\-#$%]*))","patterns":[{"include":"#access-modifier"},{"include":"#serializable"},{"match":"(?i)\\s*(class)\\s*(blob|character|char|clob|com-handle|date|datetime|datetime-tz|decimal|handle|int64|integer|int|logical|longchar|memptr|raw|recid|rowid|widget-handle)?","captures":{"1":{"name":"keyword.other.abl"},"2":{"name":"entity.name.type.abl"}}},{"include":"#primitive-type"},{"include":"#type-names"},{"include":"#array-literal"},{"include":"#string"},{"include":"#comment"},{"include":"#preprocessors"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}},"endCaptures":{"2":{"name":"variable.other.abl"}}},"variable-as":{"match":"\\s*([a-zA-Z0-9_\\-#$%\\-]+)\\s+([Aa][Ss])\\b","captures":{"1":{"name":"variable.other.abl"},"2":{"name":"keyword.other.abl"}}},"variable-like":{"match":"(?i)\\s*([a-zA-Z0-9_\\-#$%\\-]+)\\s+(?=like)\\s*","captures":{"1":{"name":"variable.other.abl"}}},"variable-name":{"name":"variable.other.abl","match":"(?\u003c=^|\\s|\\[|\\(|,)([a-zA-Z_][a-zA-Z0-9_#$\\-%\u0026]*)(?=\\.\\s|\\.$|,|:|\\s|\\)|\\]|\\[|$)"},"while-expression":{"begin":"(?i)\\s*(while)\\b","end":"(?i)(?=(transact(?:ion|io|i)?)|on|:|with)","patterns":[{"include":"#comment"},{"include":"#operator"},{"include":"#property-call"},{"include":"#branch-options"},{"include":"#expression"}],"beginCaptures":{"1":{"name":"keyword.other.abl"}}}}}