github-linguist 7.3.1 → 7.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -391,6 +391,15 @@
391
391
  {
392
392
  "include": "#decorator"
393
393
  },
394
+ {
395
+ "begin": "(?\u003c=:)\\s*",
396
+ "end": "(?=\\s|[;),}\\]:\\-\\+]|;|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))",
397
+ "patterns": [
398
+ {
399
+ "include": "#expression"
400
+ }
401
+ ]
402
+ },
394
403
  {
395
404
  "include": "#method-declaration"
396
405
  },
@@ -595,6 +604,9 @@
595
604
  "name": "keyword.control.switch.tsx",
596
605
  "match": "(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"
597
606
  },
607
+ {
608
+ "include": "#if-statement"
609
+ },
598
610
  {
599
611
  "name": "keyword.control.conditional.tsx",
600
612
  "match": "(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"
@@ -1807,20 +1819,7 @@
1807
1819
  "end": "(?=\\s*(\\?\\.\\s*)?(\u003c\\s*(((keyof|infer|typeof)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])|(\\'[^\\']*\\')|(\\\"[^\\\"]*\\\")|(\\`[^\\`]*\\`))(?=\\s*([\\\u003c\\\u003e\\,\\.\\[]|=\u003e|\u0026(?!\u0026)|\\|(?!\\|)))))([^\u003c\u003e\\(]|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(?\u003c==)\\\u003e|\\\u003c\\s*(((keyof|infer|typeof)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])|(\\'[^\\']*\\')|(\\\"[^\\\"]*\\\")|(\\`[^\\`]*\\`))(?=\\s*([\\\u003c\\\u003e\\,\\.\\[]|=\u003e|\u0026(?!\u0026)|\\|(?!\\|)))))(([^\u003c\u003e\\(]|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(?\u003c==)\\\u003e|\\\u003c\\s*(((keyof|infer|typeof)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])|(\\'[^\\']*\\')|(\\\"[^\\\"]*\\\")|(\\`[^\\`]*\\`))(?=\\s*([\\\u003c\\\u003e\\,\\.\\[]|=\u003e|\u0026(?!\u0026)|\\|(?!\\|)))))([^\u003c\u003e\\(]|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(?\u003c==)\\\u003e)*(?\u003c!=)\\\u003e))*(?\u003c!=)\\\u003e)*(?\u003c!=)\u003e\\s*)?\\()",
1808
1820
  "patterns": [
1809
1821
  {
1810
- "include": "#literal"
1811
- },
1812
- {
1813
- "include": "#support-objects"
1814
- },
1815
- {
1816
- "include": "#object-identifiers"
1817
- },
1818
- {
1819
- "include": "#punctuation-accessor"
1820
- },
1821
- {
1822
- "name": "keyword.operator.expression.import.tsx",
1823
- "match": "(?:(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))"
1822
+ "include": "#support-function-call-identifiers"
1824
1823
  },
1825
1824
  {
1826
1825
  "name": "entity.name.function.tsx",
@@ -2016,6 +2015,67 @@
2016
2015
  }
2017
2016
  ]
2018
2017
  },
2018
+ "if-statement": {
2019
+ "patterns": [
2020
+ {
2021
+ "begin": "(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))\\s*(?!\\{))",
2022
+ "end": "(?=;|$)",
2023
+ "patterns": [
2024
+ {
2025
+ "include": "#comment"
2026
+ },
2027
+ {
2028
+ "begin": "(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(if)\\s*(\\()",
2029
+ "end": "\\)",
2030
+ "patterns": [
2031
+ {
2032
+ "include": "#expression"
2033
+ }
2034
+ ],
2035
+ "beginCaptures": {
2036
+ "1": {
2037
+ "name": "keyword.control.conditional.tsx"
2038
+ },
2039
+ "2": {
2040
+ "name": "meta.brace.round.tsx"
2041
+ }
2042
+ },
2043
+ "endCaptures": {
2044
+ "0": {
2045
+ "name": "meta.brace.round.tsx"
2046
+ }
2047
+ }
2048
+ },
2049
+ {
2050
+ "name": "string.regexp.tsx",
2051
+ "begin": "(?\u003c=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/[gimsuy]*(?!\\s*[a-zA-Z0-9_$]))",
2052
+ "end": "(/)([gimsuy]*)",
2053
+ "patterns": [
2054
+ {
2055
+ "include": "#regexp"
2056
+ }
2057
+ ],
2058
+ "beginCaptures": {
2059
+ "0": {
2060
+ "name": "punctuation.definition.string.begin.tsx"
2061
+ }
2062
+ },
2063
+ "endCaptures": {
2064
+ "1": {
2065
+ "name": "punctuation.definition.string.end.tsx"
2066
+ },
2067
+ "2": {
2068
+ "name": "keyword.other.tsx"
2069
+ }
2070
+ }
2071
+ },
2072
+ {
2073
+ "include": "#statements"
2074
+ }
2075
+ ]
2076
+ }
2077
+ ]
2078
+ },
2019
2079
  "import-declaration": {
2020
2080
  "name": "meta.import.tsx",
2021
2081
  "begin": "(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",
@@ -2842,7 +2902,7 @@
2842
2902
  },
2843
2903
  {
2844
2904
  "name": "meta.method.declaration.tsx",
2845
- "begin": "(?x)(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*[\\(\\\u003c])",
2905
+ "begin": "(?x)(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\u003e\\s*))?[\\(])",
2846
2906
  "end": "(?=\\}|;|,|$)|(?\u003c=\\})",
2847
2907
  "patterns": [
2848
2908
  {
@@ -2872,7 +2932,7 @@
2872
2932
  },
2873
2933
  {
2874
2934
  "name": "meta.method.declaration.tsx",
2875
- "begin": "(?x)(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?\u003c!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?\u003c!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\`([^\\`\\\\]|\\\\\\`|\\\\)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*[\\(\\\u003c])",
2935
+ "begin": "(?x)(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?\u003c!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?\u003c!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\`([^\\`\\\\]|\\\\\\`|\\\\)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\u003e\\s*))?[\\(])",
2876
2936
  "end": "(?=\\}|;|,|$)|(?\u003c=\\})",
2877
2937
  "patterns": [
2878
2938
  {
@@ -3265,7 +3325,7 @@
3265
3325
  },
3266
3326
  "object-literal-method-declaration": {
3267
3327
  "name": "meta.method.declaration.tsx",
3268
- "begin": "(?x)(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?\u003c!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?\u003c!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\`([^\\`\\\\]|\\\\\\`|\\\\)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*[\\(\\\u003c])",
3328
+ "begin": "(?x)(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?\u003c!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?\u003c!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\`([^\\`\\\\]|\\\\\\`|\\\\)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\u003e\\s*))?[\\(])",
3269
3329
  "end": "(?=\\}|;|,)|(?\u003c=\\})",
3270
3330
  "patterns": [
3271
3331
  {
@@ -3275,7 +3335,7 @@
3275
3335
  "include": "#function-body"
3276
3336
  },
3277
3337
  {
3278
- "begin": "(?x)(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?\u003c!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?\u003c!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\`([^\\`\\\\]|\\\\\\`|\\\\)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*[\\(\\\u003c])",
3338
+ "begin": "(?x)(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?\u003c!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?\u003c!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?\u003c!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\\\'|\\\\)*\\')|(\\\"([^\\\"\\\\]|\\\\\\\"|\\\\)*\\\")|(\\`([^\\`\\\\]|\\\\\\`|\\\\)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\u003e\\s*))?[\\(])",
3279
3339
  "end": "(?=\\(|\\\u003c)",
3280
3340
  "patterns": [
3281
3341
  {
@@ -4212,6 +4272,26 @@
4212
4272
  "name": "variable.language.super.tsx",
4213
4273
  "match": "(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))super\\b(?!\\$)"
4214
4274
  },
4275
+ "support-function-call-identifiers": {
4276
+ "patterns": [
4277
+ {
4278
+ "include": "#literal"
4279
+ },
4280
+ {
4281
+ "include": "#support-objects"
4282
+ },
4283
+ {
4284
+ "include": "#object-identifiers"
4285
+ },
4286
+ {
4287
+ "include": "#punctuation-accessor"
4288
+ },
4289
+ {
4290
+ "name": "keyword.operator.expression.import.tsx",
4291
+ "match": "(?:(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))"
4292
+ }
4293
+ ]
4294
+ },
4215
4295
  "support-objects": {
4216
4296
  "patterns": [
4217
4297
  {
@@ -4323,7 +4403,7 @@
4323
4403
  }
4324
4404
  },
4325
4405
  {
4326
- "match": "(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n (constructor|length|prototype|__proto__)\n |\n (EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY))\\b(?!\\$)",
4406
+ "match": "(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c]|\\\u003c\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=\u003c\u003e]|=[^\u003c])*\\\u003e)*\u003e\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))",
4327
4407
  "captures": {
4328
4408
  "1": {
4329
4409
  "name": "punctuation.accessor.tsx"
@@ -4541,6 +4621,29 @@
4541
4621
  },
4542
4622
  "template": {
4543
4623
  "patterns": [
4624
+ {
4625
+ "name": "string.template.tsx",
4626
+ "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(\u003c\\s*(((keyof|infer|typeof)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])|(\\'[^\\']*\\')|(\\\"[^\\\"]*\\\")|(\\`[^\\`]*\\`))(?=\\s*([\\\u003c\\\u003e\\,\\.\\[]|=\u003e|\u0026(?!\u0026)|\\|(?!\\|)))))([^\u003c\u003e\\(]|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(?\u003c==)\\\u003e|\\\u003c\\s*(((keyof|infer|typeof)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])|(\\'[^\\']*\\')|(\\\"[^\\\"]*\\\")|(\\`[^\\`]*\\`))(?=\\s*([\\\u003c\\\u003e\\,\\.\\[]|=\u003e|\u0026(?!\u0026)|\\|(?!\\|)))))(([^\u003c\u003e\\(]|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(?\u003c==)\\\u003e|\\\u003c\\s*(((keyof|infer|typeof)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])|(\\'[^\\']*\\')|(\\\"[^\\\"]*\\\")|(\\`[^\\`]*\\`))(?=\\s*([\\\u003c\\\u003e\\,\\.\\[]|=\u003e|\u0026(?!\u0026)|\\|(?!\\|)))))([^\u003c\u003e\\(]|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(?\u003c==)\\\u003e)*(?\u003c!=)\\\u003e))*(?\u003c!=)\\\u003e)*(?\u003c!=)\u003e\\s*)?`)",
4627
+ "end": "(?=`)",
4628
+ "patterns": [
4629
+ {
4630
+ "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",
4631
+ "end": "(?=(\u003c\\s*(((keyof|infer|typeof)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])|(\\'[^\\']*\\')|(\\\"[^\\\"]*\\\")|(\\`[^\\`]*\\`))(?=\\s*([\\\u003c\\\u003e\\,\\.\\[]|=\u003e|\u0026(?!\u0026)|\\|(?!\\|)))))([^\u003c\u003e\\(]|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(?\u003c==)\\\u003e|\\\u003c\\s*(((keyof|infer|typeof)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])|(\\'[^\\']*\\')|(\\\"[^\\\"]*\\\")|(\\`[^\\`]*\\`))(?=\\s*([\\\u003c\\\u003e\\,\\.\\[]|=\u003e|\u0026(?!\u0026)|\\|(?!\\|)))))(([^\u003c\u003e\\(]|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(?\u003c==)\\\u003e|\\\u003c\\s*(((keyof|infer|typeof)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])|(\\'[^\\']*\\')|(\\\"[^\\\"]*\\\")|(\\`[^\\`]*\\`))(?=\\s*([\\\u003c\\\u003e\\,\\.\\[]|=\u003e|\u0026(?!\u0026)|\\|(?!\\|)))))([^\u003c\u003e\\(]|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(?\u003c==)\\\u003e)*(?\u003c!=)\\\u003e))*(?\u003c!=)\\\u003e)*(?\u003c!=)\u003e\\s*)?`)",
4632
+ "patterns": [
4633
+ {
4634
+ "include": "#support-function-call-identifiers"
4635
+ },
4636
+ {
4637
+ "name": "entity.name.function.tagged-template.tsx",
4638
+ "match": "([_$[:alpha:]][_$[:alnum:]]*)"
4639
+ }
4640
+ ]
4641
+ },
4642
+ {
4643
+ "include": "#type-arguments"
4644
+ }
4645
+ ]
4646
+ },
4544
4647
  {
4545
4648
  "name": "string.template.tsx",
4546
4649
  "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\u003c\\s*(((keyof|infer|typeof)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])|(\\'[^\\']*\\')|(\\\"[^\\\"]*\\\")|(\\`[^\\`]*\\`))(?=\\s*([\\\u003c\\\u003e\\,\\.\\[]|=\u003e|\u0026(?!\u0026)|\\|(?!\\|)))))([^\u003c\u003e\\(]|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(?\u003c==)\\\u003e|\\\u003c\\s*(((keyof|infer|typeof)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])|(\\'[^\\']*\\')|(\\\"[^\\\"]*\\\")|(\\`[^\\`]*\\`))(?=\\s*([\\\u003c\\\u003e\\,\\.\\[]|=\u003e|\u0026(?!\u0026)|\\|(?!\\|)))))(([^\u003c\u003e\\(]|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(?\u003c==)\\\u003e|\\\u003c\\s*(((keyof|infer|typeof)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])|(\\'[^\\']*\\')|(\\\"[^\\\"]*\\\")|(\\`[^\\`]*\\`))(?=\\s*([\\\u003c\\\u003e\\,\\.\\[]|=\u003e|\u0026(?!\u0026)|\\|(?!\\|)))))([^\u003c\u003e\\(]|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(?\u003c==)\\\u003e)*(?\u003c!=)\\\u003e))*(?\u003c!=)\\\u003e)*(?\u003c!=)\u003e\\s*)`)",
@@ -0,0 +1,260 @@
1
+ {
2
+ "name": "ZAP",
3
+ "scopeName": "source.zap",
4
+ "patterns": [
5
+ {
6
+ "include": "#whitespace"
7
+ },
8
+ {
9
+ "include": "#comment"
10
+ },
11
+ {
12
+ "include": "#number"
13
+ },
14
+ {
15
+ "include": "#string"
16
+ },
17
+ {
18
+ "include": "#labels"
19
+ },
20
+ {
21
+ "include": "#instruction"
22
+ },
23
+ {
24
+ "include": "#debug_directive"
25
+ },
26
+ {
27
+ "include": "#directive"
28
+ }
29
+ ],
30
+ "repository": {
31
+ "branch": {
32
+ "name": "meta.branch.zap",
33
+ "match": "(?x)\n(?: (/) | (\\\\) )\n\\s*\n(?:\n (TRUE | FALSE)\n| ( [A-Za-z?$#\u0026] [A-Za-z0-9\\-?$#\u0026.]* )\n)",
34
+ "captures": {
35
+ "1": {
36
+ "name": "keyword.control.branch.positive.zap"
37
+ },
38
+ "2": {
39
+ "name": "keyword.control.branch.negative.zap"
40
+ },
41
+ "3": {
42
+ "name": "keyword.control.branch.${3:/downcase}.zap"
43
+ },
44
+ "4": {
45
+ "name": "keyword.control.branch.label.name.zap"
46
+ }
47
+ }
48
+ },
49
+ "comment": {
50
+ "name": "comment.line.zap",
51
+ "match": "(;).*$",
52
+ "captures": {
53
+ "1": {
54
+ "name": "punctuation.definition.comment.line.zap"
55
+ }
56
+ }
57
+ },
58
+ "debug_directive": {
59
+ "name": "meta.directive.debug.zap",
60
+ "begin": "(?x)\n(?\u003c=\\s|:|^)\n(\\.)(DEBUG-[-A-Z]+)\n(?= \\s | ; | $)",
61
+ "end": "(?=;|$)",
62
+ "patterns": [
63
+ {
64
+ "include": "#operands"
65
+ }
66
+ ],
67
+ "beginCaptures": {
68
+ "0": {
69
+ "name": "keyword.directive.debug.${2:/downcase}.zap"
70
+ },
71
+ "1": {
72
+ "name": "punctuation.directive.debug.zap"
73
+ }
74
+ }
75
+ },
76
+ "directive": {
77
+ "name": "meta.directive.zap",
78
+ "begin": "(?x)\n(?\u003c=\\s|:|^)\n(?!\\.DEBUG-)\n(?:\n ((\\.)(FUNCT))\n \\s+\n ([A-Za-z?$#\u0026][A-Za-z0-9\\-?$#\u0026.]*)\n (?= \\s | [,;] | $)\n|\n ((\\.)([A-Z]+))\n (?= \\s | ; | $)\n)",
79
+ "end": "(?=;|$)",
80
+ "patterns": [
81
+ {
82
+ "include": "#operands"
83
+ }
84
+ ],
85
+ "beginCaptures": {
86
+ "1": {
87
+ "name": "keyword.directive.${3:/downcase}.zap"
88
+ },
89
+ "2": {
90
+ "name": "punctuation.directive.zap"
91
+ },
92
+ "4": {
93
+ "name": "entity.name.function.zap"
94
+ },
95
+ "5": {
96
+ "name": "keyword.directive.${7:/downcase}.zap"
97
+ },
98
+ "6": {
99
+ "name": "punctuation.directive.zap"
100
+ }
101
+ }
102
+ },
103
+ "global_label": {
104
+ "name": "meta.label.global.zap",
105
+ "match": "([A-Za-z?$#\u0026][A-Za-z0-9\\-?$#\u0026.]*)(::)",
106
+ "captures": {
107
+ "1": {
108
+ "name": "keyword.control.definition.label.global.name.zap"
109
+ },
110
+ "2": {
111
+ "name": "punctuation.definition.label.global.zap"
112
+ }
113
+ }
114
+ },
115
+ "identifier": {
116
+ "name": "meta.variable.zap",
117
+ "match": "(STACK\\b)|([A-Za-z?$#\u0026][A-Za-z0-9\\-?$#\u0026.]*)",
118
+ "captures": {
119
+ "1": {
120
+ "name": "variable.language.stack.zap"
121
+ },
122
+ "2": {
123
+ "name": "variable.zap"
124
+ }
125
+ }
126
+ },
127
+ "instruction": {
128
+ "name": "meta.instruction.zap",
129
+ "begin": "(?x)\n\\b\n(?:\n (JUMP)\n \\s+\n ([A-Za-z?$#\u0026][A-Za-z0-9\\-?$#\u0026.]*)\n (?= \\s* (?: ; | $ ) )\n|\n (\n ADD | ASHIFT | ASSIGNED\\? | BAND | BCOM | BOR | BTST | BUFOUT | CALL | CALL1 | CALL2 |\n CATCH | CHECKU | CLEAR | COLOR | COPYT | CRLF | CURGET | CURSET | DCLEAR | DEC |\n DIRIN | DIROUT | DISPLAY | DIV | DLESS\\? | EQUAL\\? | ERASE | FCLEAR | FIRST\\? | FONT |\n FSET\\?? | FSTACK | GET | GETB | GETP | GETPT | GRTR\\? | HLIGHT | ICALL | ICALL1 |\n ICALL2 | IGRTR\\? | IN\\? | INC | INPUT | INTBL\\? | IRESTORE | ISAVE | IXCALL | JUMP |\n LESS\\? | LEX | LOC | MARGIN | MENU | MOD | MOUSE-INFO | MOUSE-LIMIT | MOVE | MUL |\n NEXT\\? | NEXTP | NOOP | ORIGINAL\\? | PICINF | PICSET | POP | PRINT | PRINTB | PRINTC |\n PRINTD | PRINTF | PRINTI | PRINTN | PRINTR | PRINTT | PRINTU | PTSIZE | PUSH | PUT |\n PUTB | PUTP | QUIT | RANDOM | READ | REMOVE | RESTART | RESTORE | RETURN | RFALSE |\n RSTACK | RTRUE | SAVE | SCREEN | SCROLL | SET | SHIFT | SOUND | SPLIT | SUB | THROW |\n USL | VALUE | VERIFY | WINATTR | WINGET | WINPOS | WINPUT | WINSIZE | XCALL | XPUSH |\n ZERO\\? | XWSTR\n )\n (?= \\s | ; | $)\n)",
130
+ "end": "(?=;|$)",
131
+ "patterns": [
132
+ {
133
+ "include": "#opcode"
134
+ },
135
+ {
136
+ "include": "#operands"
137
+ },
138
+ {
139
+ "include": "#store"
140
+ },
141
+ {
142
+ "include": "#branch"
143
+ }
144
+ ],
145
+ "beginCaptures": {
146
+ "1": {
147
+ "name": "keyword.opcode.zap"
148
+ },
149
+ "2": {
150
+ "name": "keyword.control.branch.label.name.zap"
151
+ },
152
+ "3": {
153
+ "name": "keyword.opcode.zap"
154
+ }
155
+ }
156
+ },
157
+ "labels": {
158
+ "patterns": [
159
+ {
160
+ "include": "#global_label"
161
+ },
162
+ {
163
+ "include": "#local_label"
164
+ }
165
+ ]
166
+ },
167
+ "local_label": {
168
+ "name": "meta.label.local.zap",
169
+ "match": "([A-Za-z?$#\u0026][A-Za-z0-9\\-?$#\u0026.]*)(:)(?!:)",
170
+ "captures": {
171
+ "1": {
172
+ "name": "keyword.control.definition.label.local.name.zap"
173
+ },
174
+ "2": {
175
+ "name": "punctuation.definition.label.local.zap"
176
+ }
177
+ }
178
+ },
179
+ "number": {
180
+ "name": "constant.numeric.decimal.zap",
181
+ "match": "[0-9]+"
182
+ },
183
+ "operands": {
184
+ "patterns": [
185
+ {
186
+ "include": "#summation"
187
+ },
188
+ {
189
+ "include": "#number"
190
+ },
191
+ {
192
+ "include": "#identifier"
193
+ },
194
+ {
195
+ "include": "#string"
196
+ }
197
+ ]
198
+ },
199
+ "store": {
200
+ "name": "meta.store.zap",
201
+ "match": "(\u003e)\\s*(?:(STACK)|([A-Za-z?$#\u0026][A-Za-z0-9\\-?$#\u0026.]*))",
202
+ "captures": {
203
+ "1": {
204
+ "name": "punctuation.definition.storage.zap"
205
+ },
206
+ "2": {
207
+ "name": "storage.stack.zap"
208
+ },
209
+ "3": {
210
+ "name": "entity.name.variable.zap"
211
+ }
212
+ }
213
+ },
214
+ "string": {
215
+ "name": "string.quoted.double.zap",
216
+ "begin": "\"",
217
+ "end": "\"",
218
+ "patterns": [
219
+ {
220
+ "name": "constant.character.escape.zap",
221
+ "match": "\\\\."
222
+ }
223
+ ],
224
+ "beginCaptures": {
225
+ "0": {
226
+ "name": "punctuation.definition.string.begin.zap"
227
+ }
228
+ },
229
+ "endCaptures": {
230
+ "0": {
231
+ "name": "punctuation.definition.string.end.zap"
232
+ }
233
+ }
234
+ },
235
+ "summation": {
236
+ "name": "meta.operand.summation.zap",
237
+ "match": "(?:([0-9]+)|([A-Za-z?$#\u0026][A-Za-z0-9\\-?$#\u0026.]*))(?:\\s*(\\+)\\s*(?:([0-9]+)|([A-Za-z?$#\u0026][A-Za-z0-9\\-?$#\u0026.]*)))+",
238
+ "captures": {
239
+ "1": {
240
+ "name": "constant.numeric.decimal.zap"
241
+ },
242
+ "2": {
243
+ "name": "entity.name.variable.zap"
244
+ },
245
+ "3": {
246
+ "name": "keyword.operator.plus.zap"
247
+ },
248
+ "4": {
249
+ "name": "constant.numeric.decimal.zap"
250
+ },
251
+ "5": {
252
+ "name": "entity.name.variable.zap"
253
+ }
254
+ }
255
+ },
256
+ "whitespace": {
257
+ "match": "\\s+"
258
+ }
259
+ }
260
+ }