Skip to content

Commit 4a8d9e3

Browse files
committed
Colorize bigint
1 parent 3133e3d commit 4a8d9e3

File tree

5 files changed

+1969
-229
lines changed

5 files changed

+1969
-229
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@ variables:
1515
quotedStrings: (\'([^\'\\]|\\\'|\\)*\')|(\"([^\"\\]|\\\"|\\)*\")|(\`([^\`\\]|\\\`|\\)*\`)
1616
nonIdentifierPropertyName: '{{quotedStrings}}|(\[([^\[\]]|\[[^\[\]]*\])+\])'
1717
label: ({{identifier}})\s*(:)
18-
hexNumber: \b(?<!\$)0(x|X)[0-9a-fA-F][0-9a-fA-F_]*\b(?!\$)
19-
binaryNumber: \b(?<!\$)0(b|B)[01][01_]*\b(?!\$)
20-
octalNumber: \b(?<!\$)0(o|O)?[0-7][0-7_]*\b(?!\$)
18+
hexNumber: \b(?<!\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\b(?!\$)
19+
binaryNumber: \b(?<!\$)0(?:b|B)[01][01_]*(n)?\b(?!\$)
20+
octalNumber: \b(?<!\$)0(?:o|O)?[0-7][0-7_]*(n)?\b(?!\$)
2121
decimalNumber: |-
2222
(?<!\$)(?:
23-
(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*\b)| # 1.1E+3
24-
(?:\b[0-9][0-9_]*(\.)[eE][+-]?[0-9][0-9_]*\b)| # 1.E+3
25-
(?:\B(\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*\b)| # .1E+3
26-
(?:\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*\b)| # 1E+3
27-
(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*\b)| # 1.1
28-
(?:\b[0-9][0-9_]*(\.)\B)| # 1.
29-
(?:\B(\.)[0-9][0-9_]*\b)| # .1
30-
(?:\b[0-9][0-9_]*\b(?!\.)) # 1
23+
(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\b)| # 1.1E+3
24+
(?:\b[0-9][0-9_]*(\.)[eE][+-]?[0-9][0-9_]*(n)?\b)| # 1.E+3
25+
(?:\B(\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\b)| # .1E+3
26+
(?:\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\b)| # 1E+3
27+
(?:\b[0-9][0-9_]*(\.)[0-9][0-9_]*(n)?\b)| # 1.1
28+
(?:\b[0-9][0-9_]*(\.)(n)?\B)| # 1.
29+
(?:\B(\.)[0-9][0-9_]*(n)?\b)| # .1
30+
(?:\b[0-9][0-9_]*(n)?\b(?!\.)) # 1
3131
)(?!\$)
3232
anyNumber: ({{hexNumber}})|({{binaryNumber}})|({{octalNumber}})|({{decimalNumber}})
3333
# any use of property name needs to ignore line breaks in regular expression because of decimal number regex (maintained for readability)
@@ -1576,21 +1576,35 @@ repository:
15761576
patterns:
15771577
- name: constant.numeric.hex.ts
15781578
match: '{{hexNumber}}'
1579+
captures:
1580+
'1': { name: storage.type.numeric.bigint.ts }
15791581
- name: constant.numeric.binary.ts
15801582
match: '{{binaryNumber}}'
1583+
captures:
1584+
'1': { name: storage.type.numeric.bigint.ts }
15811585
- name: constant.numeric.octal.ts
15821586
match: '{{octalNumber}}'
1587+
captures:
1588+
'1': { name: storage.type.numeric.bigint.ts }
15831589
- match: |-
15841590
(?x)
15851591
{{decimalNumber}}
15861592
captures:
15871593
'0': {name: constant.numeric.decimal.ts}
15881594
'1': {name: meta.delimiter.decimal.period.ts}
1589-
'2': {name: meta.delimiter.decimal.period.ts}
1595+
'2': { name: storage.type.numeric.bigint.ts }
15901596
'3': {name: meta.delimiter.decimal.period.ts}
1591-
'4': {name: meta.delimiter.decimal.period.ts}
1597+
'4': { name: storage.type.numeric.bigint.ts }
15921598
'5': {name: meta.delimiter.decimal.period.ts}
1593-
'6': {name: meta.delimiter.decimal.period.ts}
1599+
'6': { name: storage.type.numeric.bigint.ts }
1600+
'7': { name: storage.type.numeric.bigint.ts }
1601+
'8': {name: meta.delimiter.decimal.period.ts}
1602+
'9': { name: storage.type.numeric.bigint.ts }
1603+
'10': {name: meta.delimiter.decimal.period.ts}
1604+
'11': { name: storage.type.numeric.bigint.ts }
1605+
'12': {name: meta.delimiter.decimal.period.ts}
1606+
'13': { name: storage.type.numeric.bigint.ts }
1607+
'14': { name: storage.type.numeric.bigint.ts }
15941608
15951609
boolean-literal:
15961610
patterns:
@@ -1630,8 +1644,8 @@ repository:
16301644
# builtins
16311645
- name: support.class.builtin.ts
16321646
match: |-
1633-
(?x){{startOfIdentifier}}(Array|ArrayBuffer|Atomics|Boolean|DataView|Date|Float32Array|Float64Array|Function|Generator
1634-
|GeneratorFunction|Int8Array|Int16Array|Int32Array|Intl|Map|Number|Object|Proxy
1647+
(?x){{startOfIdentifier}}(Array|ArrayBuffer|Atomics|BigInt|BigInt64Array|BigUint64Array|Boolean|DataView|Date|Float32Array
1648+
|Float64Array|Function|Generator|GeneratorFunction|Int8Array|Int16Array|Int32Array|Intl|Map|Number|Object|Proxy
16351649
|Reflect|RegExp|Set|SharedArrayBuffer|SIMD|String|Symbol|TypedArray
16361650
|Uint8Array|Uint16Array|Uint32Array|Uint8ClampedArray|WeakMap|WeakSet)\b(?!\$)
16371651
- name: support.class.error.ts
@@ -2107,7 +2121,7 @@ repository:
21072121

21082122
type-primitive:
21092123
name: support.type.primitive.ts
2110-
match: '{{startOfIdentifier}}(string|number|boolean|symbol|any|void|never|unknown){{endOfIdentifier}}'
2124+
match: '{{startOfIdentifier}}(string|number|bigint|boolean|symbol|any|void|never|unknown){{endOfIdentifier}}'
21112125

21122126
type-builtin-literals:
21132127
name: support.type.builtin.ts

0 commit comments

Comments
 (0)