github-linguist 7.27.0 → 7.28.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/ext/linguist/lex.linguist_yy.c +313 -294
  3. data/ext/linguist/lex.linguist_yy.h +5 -4
  4. data/ext/linguist/tokenizer.l +5 -2
  5. data/grammars/inline.edgeql.json +1 -0
  6. data/grammars/inline.hbs.json +1 -0
  7. data/grammars/inline.template.json +1 -0
  8. data/grammars/markdown.lean4.codeblock.json +1 -0
  9. data/grammars/markdown.move.codeblock.json +1 -0
  10. data/grammars/mdx.LANGUAGE.codeblock.json +1 -0
  11. data/grammars/source.al.json +1 -1
  12. data/grammars/source.bicep.json +1 -1
  13. data/grammars/source.cds.json +1 -1
  14. data/grammars/source.cobol.json +1 -1
  15. data/grammars/source.cs.json +1 -1
  16. data/grammars/source.dart.json +1 -1
  17. data/grammars/source.denizenscript.json +1 -1
  18. data/grammars/source.dm.json +1 -1
  19. data/grammars/source.earthfile.json +1 -1
  20. data/grammars/source.edgeql.json +1 -0
  21. data/grammars/source.fsharp.json +1 -1
  22. data/grammars/source.gdresource.json +1 -1
  23. data/grammars/source.gdscript.json +1 -1
  24. data/grammars/source.genero-4gl.json +1 -0
  25. data/grammars/source.genero-per.json +1 -0
  26. data/grammars/source.gjs.json +1 -0
  27. data/grammars/source.gsc.json +1 -1
  28. data/grammars/source.gts.json +1 -0
  29. data/grammars/source.hcl.json +1 -0
  30. data/grammars/source.hcl.terraform.json +1 -0
  31. data/grammars/source.ice.json +1 -0
  32. data/grammars/source.julia.json +1 -1
  33. data/grammars/source.kotlin.json +1 -1
  34. data/grammars/source.lean4.json +1 -0
  35. data/grammars/source.lean4.markdown.json +1 -0
  36. data/grammars/source.matlab.json +1 -1
  37. data/grammars/source.mdx.json +1 -1
  38. data/grammars/source.meta-info.json +1 -1
  39. data/grammars/source.nasal.json +1 -1
  40. data/grammars/source.nim.json +1 -1
  41. data/grammars/source.nushell.json +1 -1
  42. data/grammars/source.odin.json +1 -1
  43. data/grammars/source.praat.json +1 -0
  44. data/grammars/source.ql.json +1 -1
  45. data/grammars/source.raku.json +1 -1
  46. data/grammars/source.rego.json +1 -1
  47. data/grammars/source.rpgle.json +1 -1
  48. data/grammars/source.rust.json +1 -1
  49. data/grammars/source.sentinel.json +1 -0
  50. data/grammars/source.slice.json +1 -1
  51. data/grammars/source.swift.json +1 -1
  52. data/grammars/source.textgrid.json +1 -0
  53. data/grammars/source.toit.json +1 -0
  54. data/grammars/source.vba.json +1 -1
  55. data/grammars/source.viml.json +1 -1
  56. data/grammars/text.adblock.json +1 -1
  57. data/grammars/text.html.ember-handlebars.json +1 -0
  58. data/grammars/text.html.statamic.json +1 -1
  59. data/grammars/text.md.json +1 -1
  60. data/grammars/text.tex.json +1 -1
  61. data/grammars/version +1 -1
  62. data/lib/linguist/VERSION +1 -1
  63. data/lib/linguist/generated.rb +4 -4
  64. data/lib/linguist/heuristics.yml +6 -0
  65. data/lib/linguist/languages.json +1 -1
  66. data/lib/linguist/languages.yml +63 -9
  67. data/lib/linguist/samples.json +1 -1
  68. metadata +23 -6
  69. data/grammars/govulncheck.json +0 -1
  70. data/grammars/source.dmf.json +0 -1
  71. data/grammars/source.genero-forms.json +0 -1
  72. data/grammars/source.genero.json +0 -1
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github-linguist
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.27.0
4
+ version: 7.28.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-13 00:00:00.000000000 Z
11
+ date: 2023-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi
@@ -233,20 +233,22 @@ files:
233
233
  - grammars/file.lasso.json
234
234
  - grammars/go.mod.json
235
235
  - grammars/go.sum.json
236
- - grammars/govulncheck.json
237
236
  - grammars/hidden.manref.json
238
237
  - grammars/hidden.regexp.injection-shell.json
239
238
  - grammars/hint.haskell.json
240
239
  - grammars/hint.message.haskell.json
241
240
  - grammars/hint.type.haskell.json
242
241
  - grammars/injections.etc.json
242
+ - grammars/inline.edgeql.json
243
243
  - grammars/inline.graphql.json
244
244
  - grammars/inline.graphql.php.json
245
245
  - grammars/inline.graphql.python.json
246
246
  - grammars/inline.graphql.re.json
247
247
  - grammars/inline.graphql.res.json
248
248
  - grammars/inline.graphql.scala.json
249
+ - grammars/inline.hbs.json
249
250
  - grammars/inline.prisma.json
251
+ - grammars/inline.template.json
250
252
  - grammars/liquid.injection.json
251
253
  - grammars/markdown.bicep.codeblock.json
252
254
  - grammars/markdown.cadence.codeblock.json
@@ -258,12 +260,15 @@ files:
258
260
  - grammars/markdown.haxe.codeblock.json
259
261
  - grammars/markdown.hxml.codeblock.json
260
262
  - grammars/markdown.lean.codeblock.json
263
+ - grammars/markdown.lean4.codeblock.json
261
264
  - grammars/markdown.mcfunction.codeblock.json
265
+ - grammars/markdown.move.codeblock.json
262
266
  - grammars/markdown.plantuml.codeblock.json
263
267
  - grammars/markdown.prisma.codeblock.json
264
268
  - grammars/markdown.rescript.codeblock.json
265
269
  - grammars/markdown.talon.codeblock.json
266
270
  - grammars/markdown.textproto.codeblock.json
271
+ - grammars/mdx.LANGUAGE.codeblock.json
267
272
  - grammars/objdump.x86asm.json
268
273
  - grammars/source.2da.json
269
274
  - grammars/source.4dm.json
@@ -407,7 +412,6 @@ files:
407
412
  - grammars/source.ditroff.desc.json
408
413
  - grammars/source.ditroff.json
409
414
  - grammars/source.dm.json
410
- - grammars/source.dmf.json
411
415
  - grammars/source.dockerfile.json
412
416
  - grammars/source.dosbox-conf.json
413
417
  - grammars/source.dot.json
@@ -417,6 +421,7 @@ files:
417
421
  - grammars/source.ebnf.json
418
422
  - grammars/source.ecl.json
419
423
  - grammars/source.ed.json
424
+ - grammars/source.edgeql.json
420
425
  - grammars/source.editorconfig.json
421
426
  - grammars/source.eiffel.json
422
427
  - grammars/source.elixir.json
@@ -463,8 +468,8 @@ files:
463
468
  - grammars/source.gemini.json
464
469
  - grammars/source.generic-config.json
465
470
  - grammars/source.generic-db.json
466
- - grammars/source.genero-forms.json
467
- - grammars/source.genero.json
471
+ - grammars/source.genero-4gl.json
472
+ - grammars/source.genero-per.json
468
473
  - grammars/source.gerber.json
469
474
  - grammars/source.gf.json
470
475
  - grammars/source.gfm.blade.json
@@ -472,6 +477,7 @@ files:
472
477
  - grammars/source.gitattributes.json
473
478
  - grammars/source.gitconfig.json
474
479
  - grammars/source.gitignore.json
480
+ - grammars/source.gjs.json
475
481
  - grammars/source.gleam.json
476
482
  - grammars/source.glsl.json
477
483
  - grammars/source.gn.json
@@ -486,11 +492,14 @@ files:
486
492
  - grammars/source.groovy.gradle.json
487
493
  - grammars/source.groovy.json
488
494
  - grammars/source.gsc.json
495
+ - grammars/source.gts.json
489
496
  - grammars/source.hack.json
490
497
  - grammars/source.haproxy-config.json
491
498
  - grammars/source.harbour.json
492
499
  - grammars/source.haskell.json
493
500
  - grammars/source.hc.json
501
+ - grammars/source.hcl.json
502
+ - grammars/source.hcl.terraform.json
494
503
  - grammars/source.hgignore.json
495
504
  - grammars/source.hlasm.json
496
505
  - grammars/source.hlcode.json
@@ -507,6 +516,7 @@ files:
507
516
  - grammars/source.hx.type.json
508
517
  - grammars/source.hxml.json
509
518
  - grammars/source.hy.json
519
+ - grammars/source.ice.json
510
520
  - grammars/source.icurry.json
511
521
  - grammars/source.ideal.json
512
522
  - grammars/source.idl-dlm.json
@@ -560,6 +570,8 @@ files:
560
570
  - grammars/source.lcov.json
561
571
  - grammars/source.lean.json
562
572
  - grammars/source.lean.markdown.json
573
+ - grammars/source.lean4.json
574
+ - grammars/source.lean4.markdown.json
563
575
  - grammars/source.lex.json
564
576
  - grammars/source.lex.regexp.json
565
577
  - grammars/source.lid.json
@@ -703,6 +715,7 @@ files:
703
715
  - grammars/source.postscript.json
704
716
  - grammars/source.pov-ray sdl.json
705
717
  - grammars/source.powershell.json
718
+ - grammars/source.praat.json
706
719
  - grammars/source.prisma.json
707
720
  - grammars/source.processing.json
708
721
  - grammars/source.procfile.json
@@ -772,6 +785,7 @@ files:
772
785
  - grammars/source.scilab.json
773
786
  - grammars/source.sdbl.json
774
787
  - grammars/source.sed.json
788
+ - grammars/source.sentinel.json
775
789
  - grammars/source.sepolicy.json
776
790
  - grammars/source.sexp.json
777
791
  - grammars/source.sfv.json
@@ -816,6 +830,7 @@ files:
816
830
  - grammars/source.tea.json
817
831
  - grammars/source.terra.json
818
832
  - grammars/source.terraform.json
833
+ - grammars/source.textgrid.json
819
834
  - grammars/source.textproto.json
820
835
  - grammars/source.thrift.json
821
836
  - grammars/source.tl.json
@@ -824,6 +839,7 @@ files:
824
839
  - grammars/source.tm-properties.json
825
840
  - grammars/source.tnsaudit.json
826
841
  - grammars/source.toc.json
842
+ - grammars/source.toit.json
827
843
  - grammars/source.toml.json
828
844
  - grammars/source.ts.json
829
845
  - grammars/source.ts.prismaClientRawSQL.json
@@ -914,6 +930,7 @@ files:
914
930
  - grammars/text.html.ecmarkup.json
915
931
  - grammars/text.html.ecr.json
916
932
  - grammars/text.html.elixir.json
933
+ - grammars/text.html.ember-handlebars.json
917
934
  - grammars/text.html.erb.json
918
935
  - grammars/text.html.erlang.yaws.json
919
936
  - grammars/text.html.factor.json
@@ -1 +0,0 @@
1
- {"scopeName":"govulncheck","patterns":[{"include":"#log"},{"include":"#info"},{"include":"#affecting"},{"include":"#unaffecting"},{"include":"#callstack"},{"include":"#callstacklong"},{"include":"#frame"},{"include":"#framePosition"}],"repository":{"affecting":{"name":"markup.heading.1.govulncheck","match":"^(⚠) (\\S+) \\((https://[^)]+)\\)","captures":{"1":{"name":"token.error-token.severity.govulncheck"},"2":{"name":"token.error-token.vulnid.govulncheck"},"3":{"name":"entity.link.govulncheck"}}},"callstack":{"name":"markup.list.unnumbered.callstack.summary.govulncheck","match":"^\\- (\\S+) (\\S+) calls ([^,]+)$","captures":{"1":{"name":"markup.link.callstack.position.govulncheck"},"2":{"name":"markup.italic.raw.callstack.symbol.govulncheck"},"3":{"name":"markup.italic.callstack.symbol.govulncheck"}}},"callstacklong":{"name":"markup.list.unnumbered.callstack.summary.govulncheck","match":"^\\- (\\S+) (\\S+) calls ([^,]+), which eventually calls (\\S+)","captures":{"1":{"name":"markup.link.callstack.position.govulncheck"},"2":{"name":"markup.italic.raw.callstack.symbol.govulncheck"},"3":{"name":"markup.italic.callstack.symbol.govulncheck"},"4":{"name":"markup.italic.callstack.symbol.govulncheck"}}},"frame":{"name":"markup.list.unnumbered.fram.govulncheck","match":"^\\t(\\S+)","captures":{"1":{"name":"markup.italic.raw.callstack.symbol.govulncheck"}}},"framePosition":{"name":"markup.list.unnumbered.frame.govulncheck","match":"^\\t\\t(\\([^)]+\\))","captures":{"1":{"name":"comment.govulncheck"}}},"info":{"name":"comment.govulncheck","match":"^# .*"},"log":{"name":"comment.govulncheck","match":"^\\d{2}:\\d{2}:\\d{2} \\S.*$"},"unaffecting":{"match":"^(ⓘ) (\\S+) \\((https://[^)]+)\\)","captures":{"1":{"name":"token.info-token.severity.govulncheck"},"2":{"name":"token.info-token.vulnid.govulncheck"},"3":{"name":"entity.link.govulncheck"}}}}}
@@ -1 +0,0 @@
1
- {"name":"Dream Maker Interface","scopeName":"source.dmf","patterns":[{"name":"constant.numeric.dm","match":"((#?\\b[0-9a-fA-F]*)|\\b(([0-9]+(,|x)?[0-9]*)|(\\.[0-9]+)))\\b"},{"name":"storage.type.dm","match":"(^(macro|menu)|(\\b(window|elem)))\\b"},{"name":"variable.language.dm","match":"\\b(true|false|none)\\b"},{"name":"constant.language.dm","match":"\\b([A-Z_]+)\\b"},{"name":"string.quoted.double.dm","begin":"\"","end":"\"","patterns":[{"include":"#string_escaped_char"},{"include":"#string_embedded_expression"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dm"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.dm"}}},{"name":"string.quoted.single.dm","begin":"'","end":"'","patterns":[{"include":"#string_escaped_char"}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.dm"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.dm"}}},{"name":"meta.function.dm","begin":"(?x)\n \t\t(?: ^ # begin-of-line\n \t\t |\n \t\t (?: (?= \\s ) (?\u003c!else|new|return) (?\u003c=\\w) # or word + space before name\n \t\t | (?= \\s*[A-Za-z_] ) (?\u003c!\u0026\u0026) (?\u003c=[*\u0026\u003e]) # or type modifier before name\n \t\t )\n \t\t)\n \t\t(\\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()\n \t\t(\n \t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name\n \t\t\t(?: (?\u003c=operator) (?: [-*\u0026\u003c\u003e=+!]+ | \\(\\) | \\[\\] ) ) # if it is a C++ operator\n \t\t)\n \t\t \\s*(?=\\()","end":"(?\u003c=\\})|(?=#)|(;)?","patterns":[{"include":"#comments"},{"include":"#parens"},{"name":"storage.modifier.dm","match":"\\bconst\\b"},{"include":"#block"}],"beginCaptures":{"1":{"name":"punctuation.whitespace.function.leading.dm"},"3":{"name":"entity.name.function.dm"},"4":{"name":"punctuation.definition.parameters.dm"}}}]}
@@ -1 +0,0 @@
1
- {"name":"Genero Forms","scopeName":"source.genero-forms","patterns":[{"include":"#Comments"},{"include":"#GridLayout"},{"include":"#Keywords"},{"include":"#Layout"},{"name":"storage.type.per","match":"\\b(DECIMAL|CHAR|DATE|INTEGER)\\b"},{"include":"#StringDoubleQuote"},{"include":"#StringSingleQuote"},{"include":"#FormAttributes"},{"include":"#ComparisonOperators"},{"include":"#Groups"},{"include":"#Tables"},{"name":"keyword.amp.per","match":"(\u0026)"}],"repository":{"Comments":{"patterns":[{"name":"comment.line.number-sign.per","match":"#.*"},{"name":"comment.line.double-dash.per","match":"--.*"}]},"ComparisonOperators":{"patterns":[{"name":"keyword.operator.per","match":"(\\=|\\\u003c|\\\u003e|\\!)"}]},"EscapeCharacters":{"name":"constant.character.escape.4gl","match":"\\\\.{1}"},"FormAttributes":{"match":"(?i)\\s*\\b(AGGREGATE|BUTTON|BUTTONEDIT|CANVAS|CHECKBOX|COMBOBOX|DATEEDIT|EDIT|FIELD|IMAGE|LABEL|PROGRESSBAR|RADIOGROUP|SCROLLGRID|SLIDER|SPINEDIT|TABLE|TEXTEDIT|TIMEEDIT|TREE|WEBCOMPONENT|SCREEN RECORD|PHANTOM)\\b\\s+(\\w+)\\s*(?:(\\:|\\=)|(?:\\())","captures":{"1":{"name":"storage.type.class.per"},"2":{"name":"entity.name.function.per"},"3":{"name":"keyword.operator.per"}}},"FormFields":{"name":"variable.parameter.per","begin":"\\[","end":"\\]","patterns":[{"include":"#StringDoubleQuote"},{"include":"#StringSingleQuote"},{"name":"support.constant.field.divide.per","match":"(\\||:)"},{"name":"variable.parameter.form.grid.per","match":"(?i)\\b([a-z0-9\\#\\/\\'\\_]+)\\b"}],"beginCaptures":{"0":{"name":"string.unquoted.form.grid.field.brackes.per"}},"endCaptures":{"0":{"name":"string.unquoted.form.grid.field.brackets.per"}}},"FormatStrings":{"patterns":[{"name":"support.type.format.per","match":"[\\#\\\u003c\\\u003e\\*\\-\\+]{2,}"},{"name":"constant.lanauge.format.per","match":"\\\u0026"},{"name":"keyword.operator.per","match":"\\,"}]},"GridLayout":{"name":"meta.form.grid.per","begin":"\\{","end":"\\}","patterns":[{"include":"#FormFields"},{"include":"#Tags"}]},"Groups":{"patterns":[{"match":"(?i)\\b(GROUP)\\b\\s+(\\w+)\\s*(\\:)","captures":{"1":{"name":"storage.type.class.per"},"2":{"name":"entity.name.function.per"},"3":{"name":"keyword.operator.per"}}}]},"Keywords":{"patterns":[{"name":"keyword.per","match":"(?i)\\b(DATABASE|SCREEN SIZE|BY|END|ATTRIBUTES|TYPE|INSTRUCTIONS|DELIMITERS|COMMENTS)\\b"},{"name":"keyword.per","match":"(?i)\\b(ACCELERATOR|ACCELERATOR2|ACCELERATOR3|ACCELERATOR4|ACTION|AGGREGATETEXT|AGGREGATETYPE|AUTOSCALE|AUTONEXT|BUTTONTEXTHIDDEN|CENTURY|CLASS|COLOR|COLOR WHERE|CONFIG|CONTEXTMENU|COMMENT|COMPONENTTYPE|DEFAULT|DEFAULTVIEW|DISPLAY LIKE|DOUBLECLICK|DOWNSHIFT|EXPANDEDCOLUMN|FONTPITCH|FORMAT|GRIDCHILDRENINPARENT|HIDDEN|HEIGHT|IDCOLUMN|IMAGE|IMAGECOLUMN|IMAGECOLLAPSED|IMAGEEXPANDED|IMAGELEAF|INCLUDE|INITIALIZER|INVISIBLE|ISNODECOLUMN|ITEMS|JUSTIFY|KEY|MINHEIGHT|MINWIDTH|NOENTRY|NOT NULL|NOTEDITABLE|OPTIONS|ORIENTATION|PARENTIDCOLUMN|PICTURE|PROGRAM|PROPERTIES|QUERYEDITABLE|REQUIRED|REVERSE|SAMPLE|SCROLL|SCROLLBARS|SIZEPOLICY|SPACING|SPLITTER|STEP|STRETCH|STYLE|TABINDEX|TAG|TEXT|TITLE|UNSORTABLE|UNSORTABLECOLUMNS|UNSIZABLE|UNSIZABLECOLUMNS|UNHIDABLE|UNHIDABLECOLUMNS|UNMOVABLE|UNMOVABLECOLUMNS|UPSHIFT|VALIDATE|VALIDATE LIKE|VALUEMIN|VALUEMAX|VALUECHECKED|VALUEUNCHECKED|VERIFY|VERSION|WANTFIXEDPAGESIZE|WANTNORETURNS|WANTTABS|WIDGET|WIDTH|WINDOWSTYLE|WORDWRAP)\\b"},{"name":"constant.language.per","match":"(?i)\\b(FORMONLY|FIXED)\\b"}]},"Layout":{"patterns":[{"name":"keyword.layout.per","match":"(?i)\\b(GRID|TABLE|HBOX|VBOX|LAYOUT|FORM)\\b"},{"name":"keyword.layout.per","match":"(?i)\\b(TABLE|FOLDER)\\b"},{"match":"(?i)(GROUP|TABLE|PAGE)\\s*(\\w*)\\s*\\(","captures":{"1":{"name":"keyword.layout.per"},"2":{"name":"support.type.class.per"}}}]},"StringDoubleQuote":{"patterns":[{"name":"string.quoted.double.content.per","begin":"\"","end":"\"","patterns":[{"include":"#EscapeCharacters"},{"include":"#FormatStrings"}],"beginCaptures":{"0":{"name":"string.quoted.double.per"}},"endCaptures":{"0":{"name":"string.quoted.double.per"}}}]},"StringSingleQuote":{"patterns":[{"name":"string.quoted.single.content.per","begin":"'","end":"'","patterns":[{"include":"#EscapeCharacters"},{"include":"#FormatStrings"}],"beginCaptures":{"0":{"name":"string.quoted.single.per"}},"endCaptures":{"0":{"name":"string.quoted.single.per"}}}]},"Tables":{"name":"support.class.table.per","begin":"(?i)\\bTABLES\\b","end":"(?i)\\bEND\\b","beginCaptures":{"0":{"name":"keyword.per"}},"endCaptures":{"0":{"name":"keyword.per"}}},"Tags":{"begin":"\\\u003c","end":"\\\u003e","patterns":[{"match":"(?i)\\b(G|GROUP|T|TABLE|TREE|S|SCROLLGRID)\\b\\s+(\\w+)","captures":{"0":{"name":"support.function.per"},"1":{"name":"support.variable.per"}}},{"include":"#StringDoubleQuote"},{"include":"#StringSingleQuote"}],"beginCaptures":{"0":{"name":"string.unquoted.form.grid.group.brackes.per"}},"endCaptures":{"0":{"name":"string.unquoted.form.grid.group.brackes.per"}}}}}
@@ -1 +0,0 @@
1
- {"name":"Genero","scopeName":"source.genero","patterns":[{"include":"#CharacterOperators"},{"include":"#Comments"},{"include":"#ComparisonOperators"},{"include":"#DateOperators"},{"include":"#EscapeCharacters"},{"include":"#FlowControl"},{"include":"#Functions"},{"include":"#GeneroControlBlocks"},{"include":"#KeywordsControl"},{"include":"#KeywordsOther"},{"include":"#KeywordsSupport"},{"include":"#KeywordsOtherUnsorted"},{"include":"#KeywordsString"},{"include":"#KeywordsSql"},{"include":"#LogicalOperators"},{"include":"#MathOperators"},{"include":"#Numbers"},{"include":"#Parens"},{"include":"#StringDoubleQuote"},{"include":"#StringSingleQuote"},{"include":"#Support"},{"include":"#SupportConstant"},{"include":"#Types"},{"include":"#TypeModifiers"}],"repository":{"CharacterOperators":{"name":"keyword.operator.char.4gl","match":"\\b(?i)(USING|CLIPPED|COLUMN|ASCII|LSTR|ORD|SFMT|SPACES)\\b"},"Comments":{"patterns":[{"name":"comment.block.document.4gl","match":"#\\+.*$"},{"name":"comment.line.number-sign.4gl","match":"#.*"},{"name":"comment.line.double-dash.4gl","match":"--.*"},{"name":"comment.block.4gl","begin":"\\{","end":"\\}","beginCaptures":{"0":{"name":"comment.block.4gl"}},"endCaptures":{"0":{"name":"comment.block.4gl"}}}]},"ComparisonOperators":{"patterns":[{"name":"keyword.operator.4gl","match":"(?i)(\\=|\\\u003c|\\\u003e|\\!)"},{"name":"keyword.operator.4gl","match":"(?i)(LIKE|MATCHES|IIF|NVL)"}]},"DateOperators":{"name":"support.type.4gl","match":"\\b(?i)(DATE|UNITS|CURRENT|TODAY|DAY|YEAR|TIME|EXTEND|WEEKDAY|MONTH|MDY)\\b"},"DialogOperators":{"name":"support.function.4gl","match":"\\b(?i)(FIELD_TOUCHED|GET_FLDBUF|INFIELD|ARG_VAL|ARR_COUNT|ARR_CURR|CURSOR_NAME|DOWNSHIFT|ERR_GET|ERR_PRINT|ERR_QUIT|ERRORLOG|FGL_DRAWBOX|FGL_DYNARR_EXTENTSIZE|FGL_GETENV|FGL_GETKEY|FGL_ISDYNARR_ALLOCATED|FGL_KEYVAL|FGL_LASTKEY|FGL_SCR_SIZE|FGL_SETCURRLINE|LENGTH|NUM_ARGS|ORD|SRC_LINE|SET_COUNT|SHOWHELP|STARTLOG|UPSHIFT|MDY|LOAD|UNLOAD)\\b"},"EscapeCharacters":{"name":"constant.character.escape.4gl","match":"\\\\.{1}"},"FlowControl":{"patterns":[{"name":"keyword.other.flowcontrol.4gl","match":"\\b(?i)(IF|CALL|FOR|WHILE|RETURNING|EXIT|RETURN|CONTINUE|CASE|LABEL|SLEEP|TRY|CATCH|GOTO)\\b"}]},"Functions":{"patterns":[{"name":"meta.function.4gl","match":"(?i)(?:^\\s*)\\b(MAIN)\\b","captures":{"1":{"name":"storage.type.function.4gl"}}},{"name":"meta.function.4gl","match":"(?xi)^(PUBLIC|PRIVATE|\\s*)?(?:\\s*)(?:\\b(FUNCTION|REPORT|DIALOG)\\b\\s+)((?:\\w+))","captures":{"1":{"name":"storage.type.modifier.4gl"},"2":{"name":"keyword.other.4gl"},"3":{"name":"entity.name.function.4gl"}}}]},"GeneroControlBlocks":{"name":"meta.name.section.4gl","match":"\\b(?i)(menu\\s|input\\sby\\sname|construct\\sby\\sname|display\\sarray)\\b","captures":{"1":{"name":"keyword.control.4gl"}}},"KeywordsControl":{"name":"keyword.control.4gl","match":"\\b(?i)(IF|CALL|FOR|ELSE|WHILE|RETURNING|EXIT|RETURN|CONTINUE|CASE|WHEN|AFTER|FOREACH|THEN|END MAIN|END REPORT|END|RUN|LABEL|CHANGE|ON|ACTION|END IF|IIF|GOTO|BREAK|NAME|IDLE|DISPLAY|SLEEP|BREAKPOINT|BEFORE|CONSTRUCT|INPUT)\\b"},"KeywordsOther":{"name":"keyword.other.4gl","match":"\\b(?i)(LET|INTO|FUNCTION|CURSOR|DEFINE|ERROR|INITIALIZE|KEY|TABLE|DEFAULT|UP|ROWS|SCREEN|LEFT|FORM|TABLES|GLOBAL|FIELD|MORE|CLEAR|INSTRUCTIONS|INTERRUPT|ESCAPE|MENU|COMMENT|DATABASE|COLUMN|COMMENTS|ATTRIBUTE|SQL|DEFER|GLOBALS|COLUMNS|DELIMITERS|RIGHT|TAB|WINDOW|ROW|DEFAULTS|DELIMITER|DOWN|ESC|COLOR|ATTRIBUTES|ASCENDING|DESCENDINGSQLAWARN|SQLERRM|SQLERROR|SQLERRP|SQLSTATE|SQLWARNING|OPTION|OPTIONS|ALL|HIDE|SPACE|SPACES|WRAP|STEP|SKIP|SIZE|LINE|LINES|MARGIN|MESSAGE|INVISIBLE|BLACK|BLINK|BLUE|BOLD|BORDER|BOTTOM|CYAN|UNDERLINE|WHITE|YELLOW|RED|PROMPT|NOENTRY|MAGENTO|MODULE)\\b"},"KeywordsOtherUnsorted":{"patterns":[{"name":"keyword.other.unsorted.4gl","match":"\\b(?i)(INT_FLAG|CHECK|VERIFY|NUMBER|SCROLL|HEADER|INDEX|TEMP|READ|START|SET|NEED|ONLY|AS|INCLUDE|TYPE|CONSTANT|AVERAGE|NEW|PROGRAM|AUDIT|LOG|REMOVE|STOP|PRIOR|LOCK|OUTPUT|PRINT|EACH|REVERSE|TOP|PERCENT|MODULE|FOUND|MIN|DATA|AVG|SOME|WORK|VARIABLES|USER|TOTAL|SUM|ADD|OLD|WHENEVER|ENTRY|PRECISION|DBA|GREEN|RESTRICT|ROLLFORWARD|COBOL|REPEATABLE|PLI|DISCONNECT|SYSTEM|COMMAND|READONLY|RECOVER|ENABLED|ATTACH|FILE|TRIGGER|EVERY|BEGIN|TYPEDEF|CLASS_ORIGIN|DEBUG|ROWID|COMPRESS|IMMEDIATE|SYSDEPEND|ROOT|RESUME|TRIM|VARIANCE|REOPTIMIZATION|SYSFRAGMENTS|MODIFY|LONG|RETURNED_SQLSTATE|REAL|PRINTER|SYSFRAGAUTH|PAUSE|EXTERNAL|FORTRAN|CHARACTER_LENGTH|UNSIGNED|CONTROL|SCHEMA|TRAILER|FORMAT|REMAINDER|SERIAL|SYSCONSTRAINTS|EXPLAIN|SYSUSERS|SERVER_NAME|SYSTABLES|ASCII|ABORT|NOCR|RENAME|SHARE|REFERENCES|FRAGMENT|ROUND|MEMORY|BETWEEN|DIAGNOSTICS|EXPRESSION|SYSCOLUMNS|MESSAGE_LENGTH|SESSION|PROCEDURE|SYSPROCPLAN|ROWIDS|BUFFERED|WRITE|FINISH|LOCATE|DIALOG|SUBDIALOG|BOTH|OCTET_LENGTH|DEC|ITYPE|PASCAL|CONSTRAINED|SYSREFERENCES|STATISTICS|SYSCOLDEPEND|PRIMARY|EXP|TRANSACTION|SQRT|DETACH|WARNING|HEX|SECTION|CHAR_LENGTH|ABSOLUTE|EXTENT|ATAN|PAGE|AUTONEXT|SYSPROCEDURES|SITENAME|QUIT|FIELD_TOUCHED|SCALE|COMMIT|PDQPRIORITY|RELATIVE|FOREIGN|DBINFO|AUTO|SYSSYNTABLE|SHORT|ISOLATION|DEALLOCATE|HELP|PIPE|SYSROLEAUTH|LOGN|SYSTRIGBODY|INDICATOR|ASIN|DBSERVERNAME|REVOKE|DEFERRED|RAISE|ROLLBACK|FILTERING|DORMANT|SYSVIEWS|MODE|CASCADE|CLUSTER|EXCLUSIVE|ATAN2|ROLE|MEDIUM|SIZEOF|NULLABLE|WAIT|DIRTY|STATIC|VIOLATIONS|PICTURE|WAITING|SWITCH|ANSI|ACCEPT|UNCOMMITTED|DESCRIPTOR|FILLFACTOR|SYSOPCLSTR|OPTIMIZATION|AUTHORIZATION|QUIT_FLAG|STABILITY|DISTINCT|ISAM|ALLOCATE|PREVPAGE|COS|REQUIRED|ABS|RESOLUTION|TRAILING|SYSTRIGGERS|NEXTPAGE|HIGH|DISABLED|LEADING|EXCEPTION|CHARACTER|COMPOSITES|RESOURCE|DISTRIBUTIONS|SYSTABAUTH|STRUCT|SYSPROCBODY|TRACE|SERIALIZABLE|CONNECTION|GO|COMMITTED|ILENGHT|REFERENCING|ZEROFILL|SYSDISTRIB|SYSCHECKS|SYNONYM|LOW|SYSPROCAUTH|INDEXES|POW|ACCESS|STDEV|OFF|ROBIN|CONSTRAINT|TRUNC|NONE|SYSVIOLATIONS|PRIVILEGES|DESCRIBE|UNCONSTRAINED|CONNECTION_ALIAS|LINENO|EXTERN|VARYING|ADA|PAGENO|ROW_COUNT|LANGUAGE|SYSDEFAULTS|APPEND|VIEW|LOG10|SYSINDEXES|TAN|ACOS|INIT|CONNECT|UNLOCK|GRANT|NUMERIC|DATASKIP|VALIDATE|SYSCOLAUTH|MESSAGE_TEXT|DIM|SYSSYNONYMS|SYSBLOBS|FRACTION|TRIGGERS|EXEC|CONCURRENT|REGISTER|SYSOBJSTATE|RANGE|SUBCLASS_ORIGIN|NORMAL|IDATA|CONSTRAINTS|NEXT|SHOW|ADD|SCR_LINE)\\b"},{"name":"keyword.other.unsorted","match":"\\\u0026"}]},"KeywordsSql":{"name":"keyword.control.sql.4gl","match":"\\b(?i)(USING|FROM|CLOSE|OPEN|FETCH|PREPARE|DECLARE|EXECUTE|SELECT|WHERE|CREATE|UPDATE|DELETE|INSERT|FOREACH|COUNT|FREE|FLUSH|PUT|ALTER|ASC|DESC|DROP|ORDER|UNION|UNIQUE|OUTER|MAX|EXISTS|GROUP|HAVING|VALUES|VALUE|IN|BY)\\b"},"KeywordsString":{"patterns":[{"name":"keyword.operator.string.4gl","match":"\\b(?i)(IS|THRU|WITH|HOLD|TO|PREVIOUS|NO|LAST|AT|WITHOUT|OF|ANY|OTHERWISE|THROUGH|FORMONLY|CLIPPED|INFIELD|FIRST)\\b"},{"name":"keyword.operator.string.4gl","match":"(\\,|\\.|\\|\\|)"}]},"KeywordsSupport":{"name":"support.type.4gl","match":"\\b(?i)(SECOND|YEAR|DAY|HOUR|TIME|TODAY|SQLERRD|SQLCA|MINUTE|SQLCODE|WEEKDAY|STATUS|MONTH)\\b"},"LogicalOperators":{"name":"keyword.operator.logical.4gl","match":"\\b(?i)(AND|NOT|OR)\\b"},"MathOperators":{"patterns":[{"name":"keyword.operator.math.4gl","match":"(\\;|\\:|\\+|\\-|\\/|\\*\\*)"},{"name":"keyword.operator.math.4gl","match":"(?i)\\b(MOD)\\b"}]},"Numbers":{"name":"constant.numeric.4gl","match":"\\b\\d+\\b"},"Parens":{"patterns":[{"name":"variable.parameter.4gl","begin":"\\(","end":"\\)","patterns":[{"include":"#StringDoubleQuote"},{"include":"#SupportConstant"},{"include":"$self"}],"beginCaptures":{"0":{"name":"keyword.control.4gl"}},"endCaptures":{"0":{"name":"keyword.control.4gl"}}}]},"SQLPlaceHolder":{"patterns":[{"name":"constant.character.placeholder.4gl","match":"\\?"},{"name":"keyword.sql.comma.4gl","match":"\\,"},{"name":"entity.name.tag.4gl","match":"(?i)\\b(AND|OR|ORDER BY|GROUP BY|PARTITION BY|ON|SELECT|UPDATE|INSERT|DELETE|FROM|WHERE|LEFT JOIN|INNER JOIN|RIGHT JOIN|DECLARE|SET)\\b"},{"name":"support.function.sql.4gl","match":"(?i)\\b(COUNT|ROW_NUMBER|OVER|MIN|MAX|AVG|SUM)\\b"},{"name":"support.type.sql.4gl","match":"(?i)\\b(ASC|DESC)\\b"},{"name":"constant.character.placeholder.4gl","match":"(?i)@\\b([a-z0-9\\-]+)\\b"},{"match":"(?i)(?:\\()?\\s*(\\*)\\s*(?:\\))?","captures":{"1":{"name":"constant.character.placeholder.4gl"}}}]},"StringDoubleQuote":{"patterns":[{"name":"string.quoted.double.content.4gl","begin":"\"","end":"\"","patterns":[{"include":"#EscapeCharacters"},{"include":"#SQLPlaceHolder"},{"include":"#LogicalOperators"},{"include":"#SupportConstant"},{"include":"#ComparisonOperators"}],"beginCaptures":{"0":{"name":"string.quoted.double.4gl"}},"endCaptures":{"0":{"name":"string.quoted.double.4gl"}}}]},"StringSingleQuote":{"patterns":[{"name":"string.quoted.single.content.4gl","begin":"'","end":"'","patterns":[{"include":"#EscapeCharacters"},{"include":"#SQLPlaceHolder"},{"include":"#LogicalOperators"},{"include":"#SupportConstant"},{"include":"#ComparisonOperators"}],"beginCaptures":{"0":{"name":"string.quoted.single.4gl"}},"endCaptures":{"0":{"name":"string.quoted.single.4gl"}}}]},"Support":{"match":"\\b(?i)(import)\\s*([a-z0-9]+)(\\s+\\w+)?\\b","captures":{"1":{"name":"support.function.4gl"},"2":{"name":"support.class.4gl"},"3":{"name":"support.type.4gl"}}},"SupportConstant":{"patterns":[{"name":"support.constant.4gl","match":"(?i)\\b(NULL|FALSE|NOTFOUND|TRUE)\\b"}]},"TypeModifiers":{"name":"storage.type.modifier.4gl","match":"\\b(?i)(DYNAMIC|PRIVATE|PUBLIC)\\b"},"Types":{"name":"storage.type.4gl","match":"\\b(?i)(RECORD|SMALLINT|ARRAY|DATE|DECIMAL|INTEGER|PRECISION|FLOAT|VARCHAR|BOOLEAN|MONEY|BYTE|DATETIME|TEXT|INT|INTERVAL|NUMERIC|CHARGETYPE|DEC|SMALLFLOAT|CHARACTER|CHAR|STRING|DO|DOUBLE|NCHAR|NVARCHAR|TINYINT)\\b"}}}