Skip to content

Commit b0208af

Browse files
committed
Because sublime doesnt understand patterns in the capture, re-implement computed method names
1 parent dbcfb87 commit b0208af

8 files changed

+172
-152
lines changed

TypeScript.YAML-tmLanguage

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -469,23 +469,15 @@ repository:
469469

470470
method-declaration:
471471
name: meta.method.declaration.ts
472-
begin: (?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(\bnew)|(?:\b(constructor)\b)|(?:((?:\b[a-zA-Z_$][\.\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*(?=\(|\<)
472+
begin: (?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|(((?:\b[a-zA-Z_$][\.\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\<])
473473
beginCaptures:
474474
'1': { name: storage.modifier.ts } # captures keyword (abstract)
475475
'2': { name: storage.modifier.ts } # captures keyword (public or private or protected)
476476
'3': { name: storage.modifier.async.ts } # captures keyword (async)
477477
'4': { name: storage.type.property.ts } # captures keyword (get|set)
478-
'5': { name: keyword.operator.new.ts } # captures keyword (new)
479-
'6': { name: storage.type.ts } # captures keyword (constructor)
480-
'7':
481-
# captures method name ((?:[a-zA-Z_$][\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))
482-
name: entity.name.function.ts
483-
patterns:
484-
- include: '#string'
485-
- include: '#array-literal'
486-
'8': { name: keyword.operator.optional.ts } # captures (\??)
487478
end: '(?=\}|;|,)|(?<=\})'
488479
patterns:
480+
- include: '#method-declaration-name'
489481
- include: '#comment'
490482
- include: '#type-parameters'
491483
- include: '#function-type-parameters'
@@ -495,22 +487,31 @@ repository:
495487

496488
method-overload-declaration:
497489
name: meta.method.overload.declaration.ts
498-
match: (?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(\bnew)|(?:\b(constructor)\b)|(?:((?:\b[a-zA-Z_$][\.\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*(?=\(|\<)
499-
captures:
490+
begin: (?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|(((?:\b[a-zA-Z_$][\.\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\<])
491+
beginCaptures:
500492
'1': { name: storage.modifier.ts } # captures keyword (abstract)
501493
'2': { name: storage.modifier.ts } # captures keyword (public or private or protected)
502494
'3': { name: storage.modifier.ts } # captures keyword (async)
503495
'4': { name: storage.type.property.ts } # captures keyword (get|set)
504-
'5': { name: keyword.operator.ts } # captures keyword (new)
505-
'6': { name: entity.name.function.constructor.ts } # captures keyword (constructor)
506-
'7':
507-
# captures method name ((?:[a-zA-Z_$][\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))
508-
name: entity.name.function.ts
509-
patterns:
510-
- include: '#string'
511-
- include: '#array-literal'
512-
'8': { name: keyword.operator.optional.ts } # captures (\??)
496+
end: (?=\(|\<)
497+
patterns:
498+
- include: '#method-declaration-name'
513499

500+
method-declaration-name:
501+
begin: \G
502+
end: (?=\(|\<)
503+
patterns:
504+
- include: '#string'
505+
- include: '#array-literal'
506+
- name: keyword.operator.new.ts
507+
match: \bnew(?=\s*[\(\<])
508+
- name: storage.type.ts
509+
match: \bconstructor\b(?=\s*[\(\<])
510+
- name: entity.name.function.ts
511+
match: \b[a-zA-Z_$][\.\w$]*
512+
- name: keyword.operator.optional.ts
513+
match: \?
514+
514515
indexer-declaration:
515516
name: meta.indexer.declaration.ts
516517
begin: \[

TypeScript.tmLanguage

Lines changed: 57 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1842,7 +1842,7 @@
18421842
<key>method-declaration</key>
18431843
<dict>
18441844
<key>begin</key>
1845-
<string>(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(\bnew)|(?:\b(constructor)\b)|(?:((?:\b[a-zA-Z_$][\.\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*(?=\(|\&lt;)</string>
1845+
<string>(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|(((?:\b[a-zA-Z_$][\.\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\&lt;])</string>
18461846
<key>beginCaptures</key>
18471847
<dict>
18481848
<key>1</key>
@@ -1865,44 +1865,17 @@
18651865
<key>name</key>
18661866
<string>storage.type.property.ts</string>
18671867
</dict>
1868-
<key>5</key>
1869-
<dict>
1870-
<key>name</key>
1871-
<string>keyword.operator.new.ts</string>
1872-
</dict>
1873-
<key>6</key>
1874-
<dict>
1875-
<key>name</key>
1876-
<string>storage.type.ts</string>
1877-
</dict>
1878-
<key>7</key>
1879-
<dict>
1880-
<key>name</key>
1881-
<string>entity.name.function.ts</string>
1882-
<key>patterns</key>
1883-
<array>
1884-
<dict>
1885-
<key>include</key>
1886-
<string>#string</string>
1887-
</dict>
1888-
<dict>
1889-
<key>include</key>
1890-
<string>#array-literal</string>
1891-
</dict>
1892-
</array>
1893-
</dict>
1894-
<key>8</key>
1895-
<dict>
1896-
<key>name</key>
1897-
<string>keyword.operator.optional.ts</string>
1898-
</dict>
18991868
</dict>
19001869
<key>end</key>
19011870
<string>(?=\}|;|,)|(?&lt;=\})</string>
19021871
<key>name</key>
19031872
<string>meta.method.declaration.ts</string>
19041873
<key>patterns</key>
19051874
<array>
1875+
<dict>
1876+
<key>include</key>
1877+
<string>#method-declaration-name</string>
1878+
</dict>
19061879
<dict>
19071880
<key>include</key>
19081881
<string>#comment</string>
@@ -1929,66 +1902,86 @@
19291902
</dict>
19301903
</array>
19311904
</dict>
1932-
<key>method-overload-declaration</key>
1905+
<key>method-declaration-name</key>
19331906
<dict>
1934-
<key>captures</key>
1935-
<dict>
1936-
<key>1</key>
1907+
<key>begin</key>
1908+
<string>\G</string>
1909+
<key>end</key>
1910+
<string>(?=\(|\&lt;)</string>
1911+
<key>patterns</key>
1912+
<array>
1913+
<dict>
1914+
<key>include</key>
1915+
<string>#string</string>
1916+
</dict>
1917+
<dict>
1918+
<key>include</key>
1919+
<string>#array-literal</string>
1920+
</dict>
19371921
<dict>
1922+
<key>match</key>
1923+
<string>\bnew(?=\s*[\(\&lt;])</string>
19381924
<key>name</key>
1939-
<string>storage.modifier.ts</string>
1925+
<string>keyword.operator.new.ts</string>
19401926
</dict>
1941-
<key>2</key>
19421927
<dict>
1928+
<key>match</key>
1929+
<string>\bconstructor\b(?=\s*[\(\&lt;])</string>
19431930
<key>name</key>
1944-
<string>storage.modifier.ts</string>
1931+
<string>storage.type.ts</string>
19451932
</dict>
1946-
<key>3</key>
19471933
<dict>
1934+
<key>match</key>
1935+
<string>\b[a-zA-Z_$][\.\w$]*</string>
19481936
<key>name</key>
1949-
<string>storage.modifier.ts</string>
1937+
<string>entity.name.function.ts</string>
19501938
</dict>
1951-
<key>4</key>
19521939
<dict>
1940+
<key>match</key>
1941+
<string>\?</string>
19531942
<key>name</key>
1954-
<string>storage.type.property.ts</string>
1943+
<string>keyword.operator.optional.ts</string>
19551944
</dict>
1956-
<key>5</key>
1945+
</array>
1946+
</dict>
1947+
<key>method-overload-declaration</key>
1948+
<dict>
1949+
<key>begin</key>
1950+
<string>(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|(((?:\b[a-zA-Z_$][\.\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\&lt;])</string>
1951+
<key>beginCaptures</key>
1952+
<dict>
1953+
<key>1</key>
19571954
<dict>
19581955
<key>name</key>
1959-
<string>keyword.operator.ts</string>
1956+
<string>storage.modifier.ts</string>
19601957
</dict>
1961-
<key>6</key>
1958+
<key>2</key>
19621959
<dict>
19631960
<key>name</key>
1964-
<string>entity.name.function.constructor.ts</string>
1961+
<string>storage.modifier.ts</string>
19651962
</dict>
1966-
<key>7</key>
1963+
<key>3</key>
19671964
<dict>
19681965
<key>name</key>
1969-
<string>entity.name.function.ts</string>
1970-
<key>patterns</key>
1971-
<array>
1972-
<dict>
1973-
<key>include</key>
1974-
<string>#string</string>
1975-
</dict>
1976-
<dict>
1977-
<key>include</key>
1978-
<string>#array-literal</string>
1979-
</dict>
1980-
</array>
1966+
<string>storage.modifier.ts</string>
19811967
</dict>
1982-
<key>8</key>
1968+
<key>4</key>
19831969
<dict>
19841970
<key>name</key>
1985-
<string>keyword.operator.optional.ts</string>
1971+
<string>storage.type.property.ts</string>
19861972
</dict>
19871973
</dict>
1988-
<key>match</key>
1989-
<string>(?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?:(\bnew)|(?:\b(constructor)\b)|(?:((?:\b[a-zA-Z_$][\.\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*(?=\(|\&lt;)</string>
1974+
<key>end</key>
1975+
<string>(?=\(|\&lt;)</string>
19901976
<key>name</key>
19911977
<string>meta.method.overload.declaration.ts</string>
1978+
<key>patterns</key>
1979+
<array>
1980+
<dict>
1981+
<key>include</key>
1982+
<string>#method-declaration-name</string>
1983+
</dict>
1984+
</array>
19921985
</dict>
19931986
<key>namespace-declaration</key>
19941987
<dict>

TypeScriptReact.YAML-tmLanguage

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -473,18 +473,15 @@ repository:
473473

474474
method-declaration:
475475
name: meta.method.declaration.tsx
476-
begin: '\b(?:(abstract)\s+)?\b(?:(public|private|protected)\s+)?\b(?:(async)\s+)?(?:(get|set)\s+)?(?:(new)|(?:\b(constructor)\b)|(?:([a-zA-Z_$][\.\w$]*)\s*(\??)))?\s*(?=\(|\<)'
476+
begin: (?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|(((?:\b[a-zA-Z_$][\.\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\<])
477477
beginCaptures:
478478
'1': { name: storage.modifier.tsx } # captures keyword (abstract)
479479
'2': { name: storage.modifier.tsx } # captures keyword (public or private or protected)
480480
'3': { name: storage.modifier.async.tsx } # captures keyword (async)
481481
'4': { name: storage.type.property.tsx } # captures keyword (get|set)
482-
'5': { name: keyword.operator.new.tsx } # captures keyword (new)
483-
'6': { name: storage.type.tsx } # captures keyword (constructor)
484-
'7': { name: entity.name.function.tsx } # captures method name ([a-zA-Z_$][\.\w$]*)
485-
'8': { name: keyword.operator.optional.tsx } # captures (\??)
486482
end: '(?=\}|;|,)|(?<=\})'
487483
patterns:
484+
- include: '#method-declaration-name'
488485
- include: '#comment'
489486
- include: '#type-parameters'
490487
- include: '#function-type-parameters'
@@ -494,17 +491,31 @@ repository:
494491

495492
method-overload-declaration:
496493
name: meta.method.overload.declaration.tsx
497-
match: '\b(?:(abstract)\s+)?\b(?:(public|private|protected)\s+)?\b(?:(async)\s+)?(?:(get|set)\s+)?(?:(new)|(?:\b(constructor)\b)|(?:([a-zA-Z_$][\.\w$]*)\s*(\??)))?\s*(?=\(|\<)'
498-
captures:
494+
begin: (?:\b(abstract)\s+)?(?:\b(public|private|protected)\s+)?(?:\b(async)\s+)?(?:\b(get|set)\s+)?(?=((\bnew)|(?:\b(constructor)\b)|(((?:\b[a-zA-Z_$][\.\w$]*)|(?:\'[^']*\')|(?:\"[^"]*\")|(?:\[[^\]]*\]))\s*(\??)))?\s*[\(\<])
495+
beginCaptures:
499496
'1': { name: storage.modifier.tsx } # captures keyword (abstract)
500497
'2': { name: storage.modifier.tsx } # captures keyword (public or private or protected)
501498
'3': { name: storage.modifier.tsx } # captures keyword (async)
502499
'4': { name: storage.type.property.tsx } # captures keyword (get|set)
503-
'5': { name: keyword.operator.tsx } # captures keyword (new)
504-
'6': { name: entity.name.function.constructor.tsx } # captures keyword (constructor)
505-
'7': { name: entity.name.function.tsx } # captures method name ([a-zA-Z_$][\.\w$]*)
506-
'8': { name: keyword.operator.optional.tsx } # captures (\??)
500+
end: (?=\(|\<)
501+
patterns:
502+
- include: '#method-declaration-name'
507503

504+
method-declaration-name:
505+
begin: \G
506+
end: (?=\(|\<)
507+
patterns:
508+
- include: '#string'
509+
- include: '#array-literal'
510+
- name: keyword.operator.new.tsx
511+
match: \bnew(?=\s*[\(\<])
512+
- name: storage.type.tsx
513+
match: \bconstructor\b(?=\s*[\(\<])
514+
- name: entity.name.function.tsx
515+
match: \b[a-zA-Z_$][\.\w$]*
516+
- name: keyword.operator.optional.tsx
517+
match: \?
518+
508519
indexer-declaration:
509520
name: meta.indexer.declaration.tsx
510521
begin: \[

0 commit comments

Comments
 (0)