github-linguist 6.0.1 → 6.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/annotation.liquidhaskell.haskell.json +13 -4
  3. data/grammars/hint.haskell.json +13 -4
  4. data/grammars/hint.message.haskell.json +13 -4
  5. data/grammars/hint.type.haskell.json +13 -4
  6. data/grammars/source.angelscript.json +1 -1
  7. data/grammars/source.ballerina.json +25 -2
  8. data/grammars/source.batchfile.json +69 -38
  9. data/grammars/source.c.json +1 -1
  10. data/grammars/source.clarion.json +4 -4
  11. data/grammars/source.cs.json +3952 -780
  12. data/grammars/source.elixir.json +7 -7
  13. data/grammars/source.fortran.json +38 -35
  14. data/grammars/source.fortran.modern.json +6 -6
  15. data/grammars/source.graphql.json +55 -2
  16. data/grammars/source.haskell.json +13 -4
  17. data/grammars/source.hsig.json +13 -4
  18. data/grammars/source.hx.json +2309 -0
  19. data/grammars/source.hxml.json +37 -5
  20. data/grammars/source.isabelle.theory.json +7 -7
  21. data/grammars/source.js.json +39 -54
  22. data/grammars/source.js.regexp.json +11 -5
  23. data/grammars/source.julia.json +16 -5
  24. data/grammars/{source.Kotlin.json → source.kotlin.json} +118 -33
  25. data/grammars/source.mathematica.json +0 -1
  26. data/grammars/source.meson.json +4 -0
  27. data/grammars/source.mupad.json +36 -12
  28. data/grammars/source.netlinx.erb.json +1 -2
  29. data/grammars/source.netlinx.json +0 -3
  30. data/grammars/source.nextflow.json +7 -7
  31. data/grammars/source.perl.json +1 -1
  32. data/grammars/source.renpy.json +436 -648
  33. data/grammars/source.scala.json +133 -87
  34. data/grammars/source.sed.json +1520 -0
  35. data/grammars/source.shell.json +17 -17
  36. data/grammars/source.solidity.json +1 -1
  37. data/grammars/source.swift.json +1 -1
  38. data/grammars/source.terraform.json +1 -1
  39. data/grammars/source.ts.json +493 -122
  40. data/grammars/source.tsx.json +568 -191
  41. data/grammars/source.x86.json +295 -0
  42. data/grammars/source.yaml.json +41 -21
  43. data/grammars/source.yara.json +1 -1
  44. data/grammars/text.haml.json +15 -0
  45. data/grammars/text.html.creole.json +1 -1
  46. data/grammars/text.html.php.blade.json +2 -2
  47. data/grammars/text.html.php.json +55 -134
  48. data/grammars/text.html.smarty.json +25 -1
  49. data/grammars/text.html.vue.json +0 -6
  50. data/grammars/text.restructuredtext.json +110 -17
  51. data/grammars/text.tex.latex.haskell.json +13 -4
  52. data/lib/linguist/documentation.yml +1 -0
  53. data/lib/linguist/generated.rb +9 -1
  54. data/lib/linguist/heuristics.rb +2 -0
  55. data/lib/linguist/language.rb +0 -8
  56. data/lib/linguist/languages.json +1 -1
  57. data/lib/linguist/languages.yml +103 -7
  58. data/lib/linguist/linguist.bundle +0 -0
  59. data/lib/linguist/samples.json +1221 -262
  60. data/lib/linguist/shebang.rb +7 -4
  61. data/lib/linguist/strategy/extension.rb +15 -2
  62. data/lib/linguist/strategy/filename.rb +15 -2
  63. data/lib/linguist/vendor.yml +7 -0
  64. data/lib/linguist/version.rb +1 -1
  65. metadata +17 -19
  66. data/grammars/source.erazor.json +0 -118
  67. data/grammars/source.haxe.2.json +0 -1267
  68. data/grammars/source.hss.1.json +0 -442
  69. data/grammars/source.nmml.json +0 -81
  70. data/grammars/source.sbt.json +0 -39
@@ -2,16 +2,48 @@
2
2
  "name": "Hxml",
3
3
  "scopeName": "source.hxml",
4
4
  "patterns": [
5
- {
6
- "name": "keyword.other.hxml",
7
- "match": "(-cpp?|-js|-as3|-swf-(header|version|lib)|-swf9?|-neko|-python|-php|-cs|-java|-xml|-x|-main|-lib|-D|-resource|-exclude|-v|-debug|-prompt|-cmd|-dce|--flash-strict|--no-traces|--flash-use-stage|--neko-source|--gen-hx-classes|-java-lib|-net-lib|--each|--next|--display|--no-output|--times|--no-inline|--no-opt|--php-front|--php-lib|--php-prefix|--remap|-help|--help|-java|-cs|--dead-code-elimination|--js-modern|--interp|--macro|--dce|--wait|--connect|--cwd|--help-defines|--run)"
8
- },
9
5
  {
10
6
  "name": "comment.line.number-sign.hxml",
11
7
  "match": "(#).*$\\n?",
12
8
  "captures": {
13
9
  "1": {
14
- "name": "punctuation.definition.comment.actionscript"
10
+ "name": "punctuation.definition.comment.hxml"
11
+ }
12
+ }
13
+ },
14
+ {
15
+ "match": "^\\s*(-cppia|-cpp?|-js|-as3|-swf-(header|version|lib(-extern)?)|-swf9?|-neko|-python|-php|-cs|-java-lib|-java|-xml|-lua|-hl|-x|-lib|-D|-resource|-exclude|-version|-v|-debug|-prompt|-cmd|-dce\\s+(std|full|no)?|--flash-strict|--no-traces|--flash-use-stage|--neko-source|--gen-hx-classes|-net-lib|-net-std|-c-arg|--each|--next|--display|--no-output|--times|--no-inline|--no-opt|--php-front|--php-lib|--php-prefix|--remap|--help-defines|--help-metas|-help|--help|-java|-cs|--dead-code-elimination|--js-modern|--interp|--eval|--dce|--wait|--connect|--cwd|--run).*$",
16
+ "captures": {
17
+ "1": {
18
+ "name": "keyword.other.hxml"
19
+ }
20
+ }
21
+ },
22
+ {
23
+ "begin": "(?:^|[^a-zA-Z])(--macro)\\b",
24
+ "end": "\\n",
25
+ "patterns": [
26
+ {
27
+ "include": "source.hx"
28
+ }
29
+ ],
30
+ "beginCaptures": {
31
+ "1": {
32
+ "name": "keyword.other.hxml"
33
+ }
34
+ }
35
+ },
36
+ {
37
+ "match": "(?:^|[^a-zA-Z])(-main)\\b\\s*\\b(?:(([a-z][a-zA-Z0-9]*\\.)*)(_*[A-Z]\\w*))?\\b",
38
+ "captures": {
39
+ "1": {
40
+ "name": "keyword.other.hxml"
41
+ },
42
+ "2": {
43
+ "name": "support.package.hx"
44
+ },
45
+ "4": {
46
+ "name": "entity.name.type.hx"
15
47
  }
16
48
  }
17
49
  }
@@ -34,19 +34,19 @@
34
34
  },
35
35
  {
36
36
  "name": "markup.heading",
37
- "match": "\\b(header|chapter|section|subsection|subsubsection|sect|subsect|subsubsect)\\b"
37
+ "match": "\\b(header|chapter|section|subsection|subsubsection|sect|subsect|subsubsect|paragraph|subparagraph)\\b"
38
38
  },
39
39
  {
40
40
  "name": "keyword.other.minor",
41
- "match": "\\b(and|assumes|attach|avoids|binder|checking|class_instance|class_relation|code_module|congs|constant|constrains|datatypes|defines|file|fixes|for|functions|hints|identifier|if|imports|in|includes|infix|infixl|infixr|is|keywords|lazy|module_name|monos|morphisms|no_discs_sels|notes|obtains|open|output|overloaded|parametric|permissive|pervasive|rep_compat|shows|structure|type_class|type_constructor|unchecked|unsafe|where|begin|end)\\b"
41
+ "match": "\\b(abbrevs|and|assumes|attach|avoids|binder|checking|class_instance|class_relation|code_module|congs|constant|constrains|datatypes|defines|file|fixes|for|functions|hints|identifier|if|imports|in|includes|infix|infixl|infixr|is|keywords|lazy|module_name|monos|morphisms|no_discs_sels|notes|obtains|open|output|overloaded|parametric|permissive|pervasive|private|qualified|rep_compat|rewrites|shows|structure|type_class|type_constructor|unchecked|unsafe|when|where|begin|end)\\b"
42
42
  },
43
43
  {
44
44
  "name": "keyword.other.diagnostic",
45
- "match": "\\b(ML_command|ML_val|class_deps|code_deps|code_thms|display_drafts|find_consts|find_theorems|find_unused_assms|full_prf|help|locale_deps|nitpick|pr|prf|print_abbrevs|print_antiquotations|print_attributes|print_binds|print_bnfs|print_bundles|print_case_translations|print_cases|print_claset|print_classes|print_codeproc|print_codesetup|print_coercions|print_commands|print_context|print_defn_rules|print_dependencies|print_facts|print_induct_rules|print_inductives|print_interps|print_locale|print_locales|print_methods|print_options|print_orders|print_quot_maps|print_quotconsts|print_quotients|print_quotientsQ3|print_quotmapsQ3|print_rules|print_simpset|print_state|print_statement|print_syntax|print_theorems|print_theory|print_trans_rules|prop|pwd|quickcheck|refute|sledgehammer|smt_status|solve_direct|spark_status|term|thm|thm_deps|thy_deps|try|try0|typ|unused_thms|value|values|welcome|print_ML_antiquotations|print_term_bindings|values_prolog)\\b"
45
+ "match": "\\b(ML_command|ML_val|class_deps|code_deps|code_thms|display_drafts|find_consts|find_theorems|find_unused_assms|full_prf|help|locale_deps|nitpick|pr|prf|print_abbrevs|print_antiquotations|print_attributes|print_binds|print_bnfs|print_bundles|print_case_translations|print_cases|print_claset|print_classes|print_codeproc|print_codesetup|print_coercions|print_commands|print_context|print_definitions|print_defn_rules|print_dependencies|print_facts|print_induct_rules|print_inductives|print_interps|print_locale|print_locales|print_methods|print_options|print_orders|print_quot_maps|print_quotconsts|print_quotients|print_quotientsQ3|print_quotmapsQ3|print_rules|print_simpset|print_state|print_statement|print_syntax|print_theorems|print_theory|print_trans_rules|prop|pwd|quickcheck|refute|sledgehammer|smt_status|solve_direct|spark_status|term|thm|thm_deps|thy_deps|try|try0|typ|unused_thms|value|values|welcome|print_ML_antiquotations|print_term_bindings|print_record|values_prolog|nunchaku\n )\\b"
46
46
  },
47
47
  {
48
48
  "name": "keyword.other.declaration",
49
- "match": "\\b(ML|ML_file|abbreviation|adhoc_overloading|arities|atom_decl|attribute_setup|axiomatization|bundle|case_of_simps|class|classes|classrel|codatatype|code_abort|code_class|code_const|code_datatype|code_identifier|code_include|code_instance|code_modulename|code_monad|code_printing|code_reflect|code_reserved|code_type|coinductive|coinductive_set|consts|context|datatype|datatype_new|datatype_new_compat|declaration|declare|default_sort|defer_recdef|definition|defs|domain|domain_isomorphism|domaindef|equivariance|export_code|extract|extract_type|fixrec|fun|fun_cases|hide_class|hide_const|hide_fact|hide_type|import_const_map|import_file|import_tptp|import_type_map|inductive|inductive_set|instantiation|judgment|lifting_forget|lifting_update|local_setup|locale|method_setup|nitpick_params|no_adhoc_overloading|no_notation|no_syntax|no_translations|no_type_notation|nominal_datatype|nonterminal|notation|notepad|oracle|overloading|parse_ast_translation|parse_translation|partial_function|primcorec|primrec|primrec_new|print_ast_translation|print_translation|quickcheck_generator|quickcheck_params|realizability|realizers|recdef|record|refute_params|setup|setup_lifting|simproc_setup|simps_of_case|sledgehammer_params|spark_end|spark_open|spark_open_siv|spark_open_vcg|spark_proof_functions|spark_types|statespace|syntax|syntax_declaration|text|text_raw|txt|txt_raw|theorems|translations|type_notation|type_synonym|typed_print_translation|typedecl|hoarestate|install_C_file|install_C_types|wpc_setup|c_defs|c_types|memsafe|SML_export|SML_file|SML_import|approximate|bnf_axiomatization|cartouche|datatype_compat|free_constructors|functor|nominal_function|nominal_termination|permanent_interpretation|binds|defining|smt2_status|term_cartouche|boogie_file|text_cartouche|autocorres|sep_instance)\\b"
49
+ "match": "\\b(ML|ML_file|ML_file_debug|ML_file_no_debug|abbreviation|alias|adhoc_overloading|arities|atom_decl|attribute_setup|axiomatization|bundle|unbundle|case_of_simps|class|classes|classrel|codatatype|code_abort|code_class|code_const|code_datatype|code_identifier|code_include|code_instance|code_modulename|code_monad|code_printing|code_reflect|code_reserved|code_type|coinductive|coinductive_set|consts|context|datatype|datatype_new|datatype_new_compat|declaration|declare|default_sort|defer_recdef|definition|defs|domain|domain_isomorphism|domaindef|equivariance|experiment|export_code|extract|extract_type|fixrec|fun|fun_cases|hide_class|hide_const|hide_fact|hide_type|import_const_map|import_file|import_tptp|import_type_map|inductive|inductive_set|instantiation|judgment|lifting_forget|lifting_update|local_setup|locale|method_setup|nitpick_params|nunchaku_params|no_adhoc_overloading|no_notation|no_syntax|no_translations|no_type_notation|nominal_datatype|nonterminal|notation|notepad|oracle|overloading|parse_ast_translation|parse_translation|partial_function|primcorec|primrec|primrec_new|print_ast_translation|print_translation|quickcheck_generator|quickcheck_params|realizability|realizers|recdef|record|refute_params|setup|setup_lifting|simproc_setup|simps_of_case|sledgehammer_params|spark_end|spark_open|spark_open_siv|spark_open_vcg|spark_proof_functions|spark_types|statespace|syntax|syntax_declaration|text|text_raw|txt|txt_raw|theorems|translations|type_alias|type_notation|type_synonym|typed_print_translation|typedecl|hoarestate|install_C_file|install_C_types|wpc_setup|c_defs|c_types|memsafe|SML_export|SML_file|SML_file_debug|SML_file_no_debug|SML_import|approximate|bnf_axiomatization|cartouche|datatype_compat|free_constructors|functor|nominal_function|nominal_termination|permanent_interpretation|binds|defining|smt2_status|term_cartouche|boogie_file|text_cartouche|autocorres|sep_instance)\\b"
50
50
  },
51
51
  {
52
52
  "name": "keyword.other.script",
@@ -54,15 +54,15 @@
54
54
  },
55
55
  {
56
56
  "name": "keyword.other.goal",
57
- "match": "\\b(ax_specification|bnf|code_pred|corollary|cpodef|crunch_ignore|enriched_type|function|instance|interpretation|lift_definition|nominal_inductive|nominal_inductive2|nominal_primrec|pcpodef|primcorecursive|quotient_definition|quotient_type|recdef_tc|rep_datatype|spark_vc|specification|subclass|sublocale|termination|theorem|typedef|wrap_free_constructors)\\b"
57
+ "match": "\\b(ax_specification|bnf|copy_bnf|lift_bnf|code_pred|corollary|cpodef|crunch_ignore|enriched_type|function|instance|interpretation|global_interpretation|lift_definition|nominal_inductive|nominal_inductive2|nominal_primrec|pcpodef|primcorecursive|quotient_definition|quotient_type|recdef_tc|rep_datatype|old_rep_datatype|spark_vc|specification|subclass|sublocale|termination|theorem|typedef|wrap_free_constructors)\\b"
58
58
  },
59
59
  {
60
60
  "name": "keyword.control.proof",
61
- "match": "\\b(have|hence|interpret|next|proof|finally|from|then|ultimately|with|ML_prf|also|include|including|let|moreover|note|unfolding|using|write|ML_prf|also|include|including|let|moreover|note|txt|txt_raw|unfolding|using|write|assume|case|def|fix|presume|guess|obtain|show|thus|apply|apply_end|apply_trace|back|defer|prefer|and|by|done|qed)\\b"
61
+ "match": "\\b(have|hence|interpret|next|proof|finally|from|then|ultimately|with|ML_prf|also|include|including|let|moreover|note|unfolding|using|write|also|include|including|let|moreover|note|txt|txt_raw|unfolding|using|supply|write|assume|case|def|fix|presume|consider|guess|obtain|show|subgoal|thus|apply|apply_end|apply_trace|back|defer|prefer|and|by|done|qed)\\b"
62
62
  },
63
63
  {
64
64
  "name": "support.constant",
65
- "match": "\\b(lemma|schematic_lemma|theorem|schematic_theorem|corollary|schematic_corollary|lemmas)\\b"
65
+ "match": "\\b(lemma|schematic_lemma|theorem|schematic_theorem|corollary|schematic_corollary|lemmas|schematic_goal|proposition|named_theorems|method)\\b"
66
66
  },
67
67
  {
68
68
  "name": "invalid.illegal.abandon-proof",
@@ -135,56 +135,6 @@
135
135
  {
136
136
  "include": "#numbers"
137
137
  },
138
- {
139
- "begin": "{(?=.*\\bfrom\\b)",
140
- "end": "}",
141
- "patterns": [
142
- {
143
- "match": "(?x)\n(?: \\b(default)\\b | \\b([a-zA-Z_$][\\w$]*)\\b)\n\\s*\n(\\b as \\b)\n\\s*\n(?: \\b(default)\\b | (\\*) | \\b([a-zA-Z_$][\\w$]*)\\b)",
144
- "captures": {
145
- "1": {
146
- "name": "variable.language.default.js"
147
- },
148
- "2": {
149
- "name": "variable.other.module.js"
150
- },
151
- "3": {
152
- "name": "keyword.control.js"
153
- },
154
- "4": {
155
- "name": "variable.language.default.js"
156
- },
157
- "5": {
158
- "name": "invalid.illegal.js"
159
- },
160
- "6": {
161
- "name": "variable.other.module-alias.js"
162
- }
163
- }
164
- },
165
- {
166
- "name": "meta.delimiter.object.comma.js",
167
- "match": ","
168
- },
169
- {
170
- "include": "#comments"
171
- },
172
- {
173
- "name": "variable.other.module.js",
174
- "match": "\\b([a-zA-Z_$][\\w$]*)\\b"
175
- }
176
- ],
177
- "beginCaptures": {
178
- "0": {
179
- "name": "punctuation.definition.modules.begin.js"
180
- }
181
- },
182
- "endCaptures": {
183
- "0": {
184
- "name": "punctuation.definition.modules.end.js"
185
- }
186
- }
187
- },
188
138
  {
189
139
  "begin": "(?![a-zA-Z_$0-9]){",
190
140
  "end": "}",
@@ -193,7 +143,7 @@
193
143
  "match": "(?x)\n(?: \\b(default)\\b | \\b([a-zA-Z_$][\\w$]*)\\b)\n\\s*\n(\\b as \\b)\n\\s*\n(?: \\b(default)\\b | (\\*) | \\b([a-zA-Z_$][\\w$]*)\\b)",
194
144
  "captures": {
195
145
  "1": {
196
- "name": "invalid.illegal.js"
146
+ "name": "variable.language.default.js"
197
147
  },
198
148
  "2": {
199
149
  "name": "variable.other.module.js"
@@ -772,6 +722,38 @@
772
722
  }
773
723
  }
774
724
  },
725
+ {
726
+ "begin": "(?\u003c![\\w$])Promise(?![\\w$]|\\s*:)",
727
+ "end": "(?x)\n(?\u003c=\\)) | (?=\n (?! (\\s*//)|(\\s*/\\*)|(\\s*\\.\\s*(all|race|reject|resolve)\\s*\\() )\\s*\\S\n)",
728
+ "patterns": [
729
+ {
730
+ "include": "#comments"
731
+ },
732
+ {
733
+ "name": "meta.method-call.js",
734
+ "begin": "\\s*(\\.)\\s*(\\w+)\\s*(?=\\()",
735
+ "end": "(?\u003c=\\))",
736
+ "patterns": [
737
+ {
738
+ "include": "#arguments"
739
+ }
740
+ ],
741
+ "beginCaptures": {
742
+ "1": {
743
+ "name": "meta.delimiter.method.period.js"
744
+ },
745
+ "2": {
746
+ "name": "support.function.promise.js"
747
+ }
748
+ }
749
+ }
750
+ ],
751
+ "beginCaptures": {
752
+ "0": {
753
+ "name": "support.class.promise.js"
754
+ }
755
+ }
756
+ },
775
757
  {
776
758
  "include": "#strings"
777
759
  },
@@ -911,7 +893,7 @@
911
893
  },
912
894
  {
913
895
  "name": "support.class.js",
914
- "match": "(?x) (?\u003c!\\$) \\b\n(Array|ArrayBuffer|Atomics|Boolean|DataView|Date|Error|EvalError|Float32Array|Float64Array|Function|Generator\n|GeneratorFunction|Int16Array|Int32Array|Int8Array|InternalError|Intl|JSON|Map|Number|Object|Promise|Proxy\n|RangeError|ReferenceError|Reflect|RegExp|Set|SharedArrayBuffer|SIMD|String|Symbol|SyntaxError|TypeError\n|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|URIError|WeakMap|WeakSet)\n\\b"
896
+ "match": "(?x) (?\u003c!\\$) \\b\n(Array|ArrayBuffer|Atomics|Boolean|DataView|Date|Error|EvalError|Float32Array|Float64Array|Function|Generator\n|GeneratorFunction|Int16Array|Int32Array|Int8Array|InternalError|Intl|JSON|Map|Number|Object|Proxy\n|RangeError|ReferenceError|Reflect|RegExp|Set|SharedArrayBuffer|SIMD|String|Symbol|SyntaxError|TypeError\n|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|URIError|WeakMap|WeakSet)\n\\b"
915
897
  },
916
898
  {
917
899
  "match": "(?x) (\\.) \\s* (?:\n (constructor|length|prototype) |\n (EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\n)\\b",
@@ -963,7 +945,7 @@
963
945
  {
964
946
  "name": "string.regexp.js",
965
947
  "begin": "(?\u003c=[\\[=(?:+,!]|^|return|=\u003e|\u0026\u0026|\\|\\|)\\s*(/)(?![/*+?])(?=.*/)",
966
- "end": "(/)[gimuy]*",
948
+ "end": "(/)([gimsuy]*)",
967
949
  "patterns": [
968
950
  {
969
951
  "include": "source.js.regexp"
@@ -977,6 +959,9 @@
977
959
  "endCaptures": {
978
960
  "1": {
979
961
  "name": "punctuation.definition.string.end.js"
962
+ },
963
+ "2": {
964
+ "name": "meta.flag.regexp"
980
965
  }
981
966
  }
982
967
  },
@@ -1400,7 +1385,7 @@
1400
1385
  },
1401
1386
  {
1402
1387
  "name": "support.function.js",
1403
- "match": "(?x)\n\\b(shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|\nscrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|\nsup|sub|substr|substring|splice|split|send|set(Milliseconds|Seconds|Minutes|Hours|\nMonth|Year|FullYear|Date|UTC(Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|\nTime|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|\nsavePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|\ncontextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|\ncreateEventObject|to(GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|\ntest|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|\nuntaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|stringify|\nprint|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|\nfileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|\nforward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|\nabort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|\nreleaseCapture|releaseEvents|go|get(Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|\nTime|Date|TimezoneOffset|UTC(Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|\nAttention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|\nmoveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back)\\b"
1388
+ "match": "(?x)\n\\b(catch|finally|then|shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|\nscrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|\nsup|sub|substr|substring|splice|split|send|set(Milliseconds|Seconds|Minutes|Hours|\nMonth|Year|FullYear|Date|UTC(Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|\nTime|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|\nsavePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|\ncontextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|\ncreateEventObject|to(GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|\ntest|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|\nuntaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|stringify|\nprint|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|\nfileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|\nforward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|\nabort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|\nreleaseCapture|releaseEvents|go|get(Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|\nTime|Date|TimezoneOffset|UTC(Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|\nAttention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|\nmoveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back)\\b"
1404
1389
  },
1405
1390
  {
1406
1391
  "name": "support.function.dom.js",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  {
36
36
  "name": "keyword.other.back-reference.regexp",
37
- "match": "\\\\[1-9]\\d*"
37
+ "match": "\\\\[1-9]\\d*|\\\\k\u003c[a-zA-Z_$][\\w$]*\u003e"
38
38
  },
39
39
  {
40
40
  "name": "keyword.operator.quantifier.regexp",
@@ -46,7 +46,7 @@
46
46
  },
47
47
  {
48
48
  "name": "meta.group.assertion.regexp",
49
- "begin": "(\\()((\\?=)|(\\?!))",
49
+ "begin": "(\\()(?:(\\?=)|(\\?!)|(\\?\u003c=)|(\\?\u003c!))",
50
50
  "end": "(\\))",
51
51
  "patterns": [
52
52
  {
@@ -57,11 +57,17 @@
57
57
  "1": {
58
58
  "name": "punctuation.definition.group.regexp"
59
59
  },
60
- "3": {
60
+ "2": {
61
61
  "name": "meta.assertion.look-ahead.regexp"
62
62
  },
63
- "4": {
63
+ "3": {
64
64
  "name": "meta.assertion.negative-look-ahead.regexp"
65
+ },
66
+ "4": {
67
+ "name": "meta.assertion.look-behind.regexp"
68
+ },
69
+ "5": {
70
+ "name": "meta.assertion.negative-look-behind.regexp"
65
71
  }
66
72
  },
67
73
  "endCaptures": {
@@ -72,7 +78,7 @@
72
78
  },
73
79
  {
74
80
  "name": "meta.group.regexp",
75
- "begin": "\\((\\?:)?",
81
+ "begin": "\\(((\\?:)|(\\?\u003c[a-zA-Z_$][\\w$]*\u003e))?",
76
82
  "end": "\\)",
77
83
  "patterns": [
78
84
  {
@@ -42,7 +42,7 @@
42
42
  {
43
43
  "name": "meta.array.julia",
44
44
  "begin": "\\[",
45
- "end": "\\]((\\.)?'*)",
45
+ "end": "(?:\\])(?:(\\.)?'*)",
46
46
  "patterns": [
47
47
  {
48
48
  "name": "constant.numeric.julia",
@@ -56,7 +56,15 @@
56
56
  "include": "$self"
57
57
  }
58
58
  ],
59
+ "beginCaptures": {
60
+ "0": {
61
+ "name": "meta.bracket.julia"
62
+ }
63
+ },
59
64
  "endCaptures": {
65
+ "0": {
66
+ "name": "meta.bracket.julia"
67
+ },
60
68
  "1": {
61
69
  "name": "keyword.operator.transpose.julia"
62
70
  }
@@ -104,7 +112,7 @@
104
112
  "function_call": {
105
113
  "patterns": [
106
114
  {
107
- "begin": "([[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?\\.?\\(",
115
+ "begin": "([[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?\\.?(?=\\()",
108
116
  "end": "\\)(('|(\\.'))*\\.?')?",
109
117
  "patterns": [
110
118
  {
@@ -124,6 +132,9 @@
124
132
  }
125
133
  },
126
134
  "endCaptures": {
135
+ "0": {
136
+ "name": "meta.bracket.julia"
137
+ },
127
138
  "1": {
128
139
  "name": "keyword.operator.transposed-func.julia"
129
140
  }
@@ -134,7 +145,7 @@
134
145
  "function_decl": {
135
146
  "patterns": [
136
147
  {
137
- "match": "([[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?\\((?=.*\\)(::[^\\s]+)?(\\s*\\bwhere\\b\\s*[^\\s]+)?\\s*?=(?![=\u003e]))",
148
+ "match": "([[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?(?=\\(.*\\)(::[^\\s]+)?(\\s*\\bwhere\\b\\s*[^\\s]+)?\\s*?=(?![=\u003e]))",
138
149
  "captures": {
139
150
  "1": {
140
151
  "name": "entity.name.function.julia"
@@ -145,7 +156,7 @@
145
156
  }
146
157
  },
147
158
  {
148
- "match": "\\b(function|macro)(?:\\s+(?:[[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*(\\.))?([[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?|\\s*)\\(",
159
+ "match": "\\b(function|macro)(?:\\s+(?:[[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*(\\.))?([[:alpha:]_∇][[:word:]⁺-ₜ!′∇]*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?|\\s*)(?=\\()",
149
160
  "captures": {
150
161
  "1": {
151
162
  "name": "keyword.other.julia"
@@ -167,7 +178,7 @@
167
178
  "patterns": [
168
179
  {
169
180
  "name": "keyword.other.julia",
170
- "match": "\\b(?\u003c![:_])(?:function|@generated|type|immutable|mutable|struct|macro|quote|abstract|bitstype|typealias|module|baremodule|new|where)\\b"
181
+ "match": "\\b(?\u003c![:_\\.])(?:function|@generated|type|immutable|mutable|struct|macro|quote|abstract|bitstype|typealias|module|baremodule|new|where)\\b"
171
182
  },
172
183
  {
173
184
  "begin": "\\b(for)\\b",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "Kotlin",
3
- "scopeName": "source.Kotlin",
3
+ "scopeName": "source.kotlin",
4
4
  "patterns": [
5
5
  {
6
6
  "include": "#comments"
@@ -24,17 +24,65 @@
24
24
  }
25
25
  ],
26
26
  "repository": {
27
+ "annotations": {
28
+ "patterns": [
29
+ {
30
+ "name": "meta.declaration.annotation.kotlin",
31
+ "begin": "(@[^ (]+)(\\()",
32
+ "end": "(\\))",
33
+ "patterns": [
34
+ {
35
+ "match": "(\\w*)\\s*(=)",
36
+ "captures": {
37
+ "1": {
38
+ "name": "constant.other.key.kotlin"
39
+ },
40
+ "2": {
41
+ "name": "keyword.operator.assignment.kotlin"
42
+ }
43
+ }
44
+ },
45
+ {
46
+ "include": "#statements"
47
+ },
48
+ {
49
+ "name": "punctuation.seperator.property.kotlin",
50
+ "match": ","
51
+ }
52
+ ],
53
+ "beginCaptures": {
54
+ "1": {
55
+ "name": "storage.type.annotation.kotlin"
56
+ },
57
+ "2": {
58
+ "name": "punctuation.definition.annotation-arguments.begin.kotlin"
59
+ }
60
+ },
61
+ "endCaptures": {
62
+ "1": {
63
+ "name": "punctuation.definition.annotation-arguments.end.kotlin"
64
+ }
65
+ }
66
+ },
67
+ {
68
+ "name": "storage.type.annotation.kotlin",
69
+ "match": "@\\w*"
70
+ }
71
+ ]
72
+ },
27
73
  "classes": {
28
- "begin": "(?=\\s*(?:companion|class|object|interface))",
29
- "end": "}|(?=$)",
74
+ "begin": "(?\u003c!::)(?=\\b(?:companion|class|object|interface)\\b)",
75
+ "end": "(?=$|\\})",
30
76
  "patterns": [
77
+ {
78
+ "include": "#comments"
79
+ },
31
80
  {
32
81
  "begin": "\\b(companion\\s*)?(class|object|interface)\\b",
33
- "end": "(?=\u003c|{|\\(|:)",
82
+ "end": "(?=\u003c|\\{|\\(|:|$)",
34
83
  "patterns": [
35
84
  {
36
- "name": "keyword.other.kotlin",
37
- "match": "\\b(object)\\b"
85
+ "include": "#comments"
38
86
  },
39
87
  {
40
88
  "name": "entity.name.type.class.kotlin",
@@ -43,7 +91,10 @@
43
91
  ],
44
92
  "beginCaptures": {
45
93
  "1": {
46
- "name": "keyword.other.kotlin"
94
+ "name": "storage.modifier.kotlin"
95
+ },
96
+ "2": {
97
+ "name": "storage.modifier.kotlin"
47
98
  }
48
99
  }
49
100
  },
@@ -101,6 +152,25 @@
101
152
  ]
102
153
  },
103
154
  "comments": {
155
+ "patterns": [
156
+ {
157
+ "name": "comment.block.empty.kotlin",
158
+ "match": "/\\*\\*/",
159
+ "captures": {
160
+ "0": {
161
+ "name": "punctuation.definition.comment.kotlin"
162
+ }
163
+ }
164
+ },
165
+ {
166
+ "include": "text.html.javadoc"
167
+ },
168
+ {
169
+ "include": "#comments-inline"
170
+ }
171
+ ]
172
+ },
173
+ "comments-inline": {
104
174
  "patterns": [
105
175
  {
106
176
  "name": "comment.block.kotlin",
@@ -170,8 +240,8 @@
170
240
  ]
171
241
  },
172
242
  "functions": {
173
- "begin": "(?=\\s*(?:fun))",
174
- "end": "}|(?=$)",
243
+ "begin": "(?=\\s*\\b(?:fun)\\b)",
244
+ "end": "(?=$|\\})",
175
245
  "patterns": [
176
246
  {
177
247
  "begin": "\\b(fun)\\b",
@@ -358,12 +428,12 @@
358
428
  "imports": {
359
429
  "patterns": [
360
430
  {
361
- "match": "^\\s*(import)\\s+[^ $]+\\s+(as)?",
431
+ "match": "^\\s*(import)\\s+[^ $.]+(\\.([`][^$`]+[`]|[^` $.]+))+\\s+(as)?",
362
432
  "captures": {
363
433
  "1": {
364
434
  "name": "keyword.other.kotlin"
365
435
  },
366
- "2": {
436
+ "4": {
367
437
  "name": "keyword.other.kotlin"
368
438
  }
369
439
  }
@@ -374,7 +444,7 @@
374
444
  "patterns": [
375
445
  {
376
446
  "name": "storage.modifier.kotlin",
377
- "match": "\\b(var|val|public|private|protected|abstract|final|enum|open|attribute|annotation|override|inline|var|val|vararg|lazy|in|out|internal|data|tailrec|operator|infix|const|yield|typealias|typeof)\\b"
447
+ "match": "\\b(var|val|external|public|private|protected|abstract|final|sealed|enum|open|attribute|annotation|override|inline|vararg|in|out|internal|data|tailrec|operator|infix|const|yield|typealias|typeof|expect|actual|reified|suspend)\\b"
378
448
  },
379
449
  {
380
450
  "name": "keyword.control.catch-exception.kotlin",
@@ -396,6 +466,10 @@
396
466
  "name": "keyword.operator.assignment.kotlin",
397
467
  "match": "(=)"
398
468
  },
469
+ {
470
+ "name": "keyword.operator.reference.kotlin",
471
+ "match": "(::)"
472
+ },
399
473
  {
400
474
  "name": "keyword.operator.declaration.kotlin",
401
475
  "match": "(:)"
@@ -404,6 +478,14 @@
404
478
  "name": "keyword.operator.dot.kotlin",
405
479
  "match": "(\\.)"
406
480
  },
481
+ {
482
+ "name": "keyword.operator.dot.kotlin",
483
+ "match": "(\\?\\.)"
484
+ },
485
+ {
486
+ "name": "keyword.operator.elvis.kotlin",
487
+ "match": "(\\?:)"
488
+ },
407
489
  {
408
490
  "name": "keyword.operator.increment-decrement.kotlin",
409
491
  "match": "(\\-\\-|\\+\\+)"
@@ -491,6 +573,9 @@
491
573
  {
492
574
  "include": "#namespaces"
493
575
  },
576
+ {
577
+ "include": "#annotations"
578
+ },
494
579
  {
495
580
  "include": "#typedefs"
496
581
  },
@@ -626,11 +711,11 @@
626
711
  "types": {
627
712
  "patterns": [
628
713
  {
629
- "name": "storage.type.buildin.kotlin",
630
- "match": "\\b(Any|Unit|String|Int|Boolean|Char|Long|Double|Float|Short|Byte|dynamic)\\b"
714
+ "name": "storage.type.builtin.kotlin",
715
+ "match": "\\b(Nothing|Any|Unit|String|CharSequence|Int|Boolean|Char|Long|Double|Float|Short|Byte|dynamic)\\b"
631
716
  },
632
717
  {
633
- "name": "storage.type.buildin.array.kotlin",
718
+ "name": "storage.type.builtin.array.kotlin",
634
719
  "match": "\\b(IntArray|BooleanArray|CharArray|LongArray|DoubleArray|FloatArray|ShortArray|ByteArray)\\b"
635
720
  },
636
721
  {
@@ -646,7 +731,7 @@
646
731
  ],
647
732
  "beginCaptures": {
648
733
  "1": {
649
- "name": "storage.type.buildin.collection.kotlin"
734
+ "name": "storage.type.builtin.collection.kotlin"
650
735
  }
651
736
  }
652
737
  },
@@ -662,20 +747,6 @@
662
747
  }
663
748
  ]
664
749
  },
665
- {
666
- "begin": "(#)\\(",
667
- "end": "\\)",
668
- "patterns": [
669
- {
670
- "include": "#expressions"
671
- }
672
- ],
673
- "beginCaptures": {
674
- "1": {
675
- "name": "keyword.operator.tuple.kotlin"
676
- }
677
- }
678
- },
679
750
  {
680
751
  "begin": "\\{",
681
752
  "end": "\\}",
@@ -701,12 +772,12 @@
701
772
  ]
702
773
  },
703
774
  "variables": {
704
- "begin": "(?=\\s*(?:var|val))",
705
- "end": "(?=:|=|$)",
775
+ "begin": "(?=\\s*\\b(?:var|val)\\b)",
776
+ "end": "(?=:|=|(\\b(by)\\b)|$)",
706
777
  "patterns": [
707
778
  {
708
779
  "begin": "\\b(var|val)\\b",
709
- "end": "(?=:|=|$)",
780
+ "end": "(?=:|=|(\\b(by)\\b)|$)",
710
781
  "patterns": [
711
782
  {
712
783
  "begin": "\u003c",
@@ -749,6 +820,20 @@
749
820
  }
750
821
  }
751
822
  },
823
+ {
824
+ "begin": "\\b(by)\\b",
825
+ "end": "(?=$)",
826
+ "patterns": [
827
+ {
828
+ "include": "#expressions"
829
+ }
830
+ ],
831
+ "beginCaptures": {
832
+ "1": {
833
+ "name": "keyword.other.kotlin"
834
+ }
835
+ }
836
+ },
752
837
  {
753
838
  "begin": "(=)",
754
839
  "end": "(?=$)",