Skip to content

Commit f4510f4

Browse files
authored
Merge pull request #286 from wise0704/lambda
Lamba parameter list fix + static modifier
2 parents 4b4995f + 6f97098 commit f4510f4

File tree

4 files changed

+172
-46
lines changed

4 files changed

+172
-46
lines changed

grammars/csharp.tmLanguage

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4725,12 +4725,12 @@
47254725
<key>2</key>
47264726
<dict>
47274727
<key>name</key>
4728-
<string>storage.modifier.$2.cs</string>
4728+
<string>storage.modifier.ref.cs</string>
47294729
</dict>
47304730
<key>3</key>
47314731
<dict>
47324732
<key>name</key>
4733-
<string>storage.modifier.$3.cs</string>
4733+
<string>storage.modifier.readonly.cs</string>
47344734
</dict>
47354735
<key>4</key>
47364736
<dict>
@@ -7848,15 +7848,22 @@
78487848
<dict>
78497849
<key>begin</key>
78507850
<string>(?x)
7851-
(?:\b(async)\b\s*)?
7851+
((?:\b(?:async|static)\b\s*)*)
78527852
(@?[_[:alpha:]][_[:alnum:]]*)\b\s*
78537853
(=&gt;)</string>
78547854
<key>beginCaptures</key>
78557855
<dict>
78567856
<key>1</key>
78577857
<dict>
7858-
<key>name</key>
7859-
<string>storage.modifier.async.cs</string>
7858+
<key>patterns</key>
7859+
<array>
7860+
<dict>
7861+
<key>match</key>
7862+
<string>async|static</string>
7863+
<key>name</key>
7864+
<string>storage.modifier.$0.cs</string>
7865+
</dict>
7866+
</array>
78607867
</dict>
78617868
<key>2</key>
78627869
<dict>
@@ -7890,15 +7897,26 @@
78907897
<dict>
78917898
<key>begin</key>
78927899
<string>(?x)
7893-
(?:\b(async)\b\s*)?
7894-
(\(.*?\))\s*
7900+
((?:\b(?:async|static)\b\s*)*)
7901+
(?&lt;tuple&gt;
7902+
\(
7903+
(?:[^()]|\g&lt;tuple&gt;)*
7904+
\)
7905+
)\s*
78957906
(=&gt;)</string>
78967907
<key>beginCaptures</key>
78977908
<dict>
78987909
<key>1</key>
78997910
<dict>
7900-
<key>name</key>
7901-
<string>storage.modifier.async.cs</string>
7911+
<key>patterns</key>
7912+
<array>
7913+
<dict>
7914+
<key>match</key>
7915+
<string>async|static</string>
7916+
<key>name</key>
7917+
<string>storage.modifier.$0.cs</string>
7918+
</dict>
7919+
</array>
79027920
</dict>
79037921
<key>2</key>
79047922
<dict>
@@ -7937,14 +7955,21 @@
79377955
<dict>
79387956
<key>begin</key>
79397957
<string>(?x)
7940-
(?:\b(async)\b\s*)?
7958+
((?:\b(?:async|static)\b\s*)*)
79417959
(?:\b(delegate)\b\s*)</string>
79427960
<key>beginCaptures</key>
79437961
<dict>
79447962
<key>1</key>
79457963
<dict>
7946-
<key>name</key>
7947-
<string>storage.modifier.async.cs</string>
7964+
<key>patterns</key>
7965+
<array>
7966+
<dict>
7967+
<key>match</key>
7968+
<string>async|static</string>
7969+
<key>name</key>
7970+
<string>storage.modifier.$0.cs</string>
7971+
</dict>
7972+
</array>
79487973
</dict>
79497974
<key>2</key>
79507975
<dict>
@@ -7964,10 +7989,6 @@
79647989
<key>include</key>
79657990
<string>#block</string>
79667991
</dict>
7967-
<dict>
7968-
<key>include</key>
7969-
<string>#expression</string>
7970-
</dict>
79717992
</array>
79727993
</dict>
79737994
</array>
@@ -8114,14 +8135,14 @@
81148135
<key>name</key>
81158136
<string>storage.modifier.ref.cs</string>
81168137
<key>match</key>
8117-
<string>\b(ref)\b</string>
8138+
<string>\bref\b</string>
81188139
</dict>
81198140
<key>readonly-modifier</key>
81208141
<dict>
81218142
<key>name</key>
81228143
<string>storage.modifier.readonly.cs</string>
81238144
<key>match</key>
8124-
<string>\b(readonly)\b</string>
8145+
<string>\breadonly\b</string>
81258146
</dict>
81268147
<key>tuple-type</key>
81278148
<dict>

grammars/csharp.tmLanguage.cson

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2892,9 +2892,9 @@ repository:
28922892
"1":
28932893
name: "keyword.control.context.using.cs"
28942894
"2":
2895-
name: "storage.modifier.$2.cs"
2895+
name: "storage.modifier.ref.cs"
28962896
"3":
2897-
name: "storage.modifier.$3.cs"
2897+
name: "storage.modifier.readonly.cs"
28982898
"4":
28992899
name: "storage.type.var.cs"
29002900
"5":
@@ -4727,13 +4727,18 @@ repository:
47274727
{
47284728
begin: '''
47294729
(?x)
4730-
(?:\\b(async)\\b\\s*)?
4730+
((?:\\b(?:async|static)\\b\\s*)*)
47314731
(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*
47324732
(=>)
47334733
'''
47344734
beginCaptures:
47354735
"1":
4736-
name: "storage.modifier.async.cs"
4736+
patterns: [
4737+
{
4738+
match: "async|static"
4739+
name: "storage.modifier.$0.cs"
4740+
}
4741+
]
47374742
"2":
47384743
name: "entity.name.variable.parameter.cs"
47394744
"3":
@@ -4754,13 +4759,22 @@ repository:
47544759
{
47554760
begin: '''
47564761
(?x)
4757-
(?:\\b(async)\\b\\s*)?
4758-
(\\(.*?\\))\\s*
4762+
((?:\\b(?:async|static)\\b\\s*)*)
4763+
(?<tuple>
4764+
\\(
4765+
(?:[^()]|\\g<tuple>)*
4766+
\\)
4767+
)\\s*
47594768
(=>)
47604769
'''
47614770
beginCaptures:
47624771
"1":
4763-
name: "storage.modifier.async.cs"
4772+
patterns: [
4773+
{
4774+
match: "async|static"
4775+
name: "storage.modifier.$0.cs"
4776+
}
4777+
]
47644778
"2":
47654779
patterns: [
47664780
{
@@ -4785,12 +4799,17 @@ repository:
47854799
{
47864800
begin: '''
47874801
(?x)
4788-
(?:\\b(async)\\b\\s*)?
4802+
((?:\\b(?:async|static)\\b\\s*)*)
47894803
(?:\\b(delegate)\\b\\s*)
47904804
'''
47914805
beginCaptures:
47924806
"1":
4793-
name: "storage.modifier.async.cs"
4807+
patterns: [
4808+
{
4809+
match: "async|static"
4810+
name: "storage.modifier.$0.cs"
4811+
}
4812+
]
47944813
"2":
47954814
name: "storage.type.delegate.cs"
47964815
end: "(?=\\)|;|}|,)"
@@ -4801,9 +4820,6 @@ repository:
48014820
{
48024821
include: "#block"
48034822
}
4804-
{
4805-
include: "#expression"
4806-
}
48074823
]
48084824
}
48094825
]
@@ -4902,10 +4918,10 @@ repository:
49024918
]
49034919
"ref-modifier":
49044920
name: "storage.modifier.ref.cs"
4905-
match: "\\b(ref)\\b"
4921+
match: "\\bref\\b"
49064922
"readonly-modifier":
49074923
name: "storage.modifier.readonly.cs"
4908-
match: "\\b(readonly)\\b"
4924+
match: "\\breadonly\\b"
49094925
"tuple-type":
49104926
begin: "\\("
49114927
beginCaptures:

src/csharp.tmLanguage.yml

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1736,8 +1736,8 @@ repository:
17361736
(?=,|;|=|\))
17371737
beginCaptures:
17381738
1: { name: keyword.control.context.using.cs }
1739-
2: { name: storage.modifier.$2.cs }
1740-
3: { name: storage.modifier.$3.cs }
1739+
2: { name: storage.modifier.ref.cs }
1740+
3: { name: storage.modifier.readonly.cs }
17411741
4: { name: storage.type.var.cs }
17421742
5:
17431743
patterns:
@@ -3089,25 +3089,35 @@ repository:
30893089
patterns:
30903090
- begin: |-
30913091
(?x)
3092-
(?:\b(async)\b\s*)?
3092+
((?:\b(?:async|static)\b\s*)*)
30933093
(@?[_[:alpha:]][_[:alnum:]]*)\b\s*
30943094
(=>)
30953095
beginCaptures:
3096-
'1': { name: storage.modifier.async.cs }
3097-
'2': { name: entity.name.variable.parameter.cs }
3098-
'3': { name: keyword.operator.arrow.cs }
3096+
1:
3097+
patterns:
3098+
- match: async|static
3099+
name: storage.modifier.$0.cs
3100+
2: { name: entity.name.variable.parameter.cs }
3101+
3: { name: keyword.operator.arrow.cs }
30993102
end: (?=\)|;|}|,)
31003103
patterns:
31013104
- include: '#block'
31023105
- include: '#ref-modifier'
31033106
- include: '#expression'
31043107
- begin: |-
31053108
(?x)
3106-
(?:\b(async)\b\s*)?
3107-
(\(.*?\))\s*
3109+
((?:\b(?:async|static)\b\s*)*)
3110+
(?<tuple>
3111+
\(
3112+
(?:[^()]|\g<tuple>)*
3113+
\)
3114+
)\s*
31083115
(=>)
31093116
beginCaptures:
3110-
1: { name: storage.modifier.async.cs }
3117+
1:
3118+
patterns:
3119+
- match: async|static
3120+
name: storage.modifier.$0.cs
31113121
2:
31123122
patterns:
31133123
- include: '#lambda-parameter-list'
@@ -3119,16 +3129,18 @@ repository:
31193129
- include: '#expression'
31203130
- begin: |-
31213131
(?x)
3122-
(?:\b(async)\b\s*)?
3132+
((?:\b(?:async|static)\b\s*)*)
31233133
(?:\b(delegate)\b\s*)
31243134
beginCaptures:
3125-
1: { name: storage.modifier.async.cs }
3135+
1:
3136+
patterns:
3137+
- match: async|static
3138+
name: storage.modifier.$0.cs
31263139
2: { name: storage.type.delegate.cs }
31273140
end: (?=\)|;|}|,)
31283141
patterns:
31293142
- include: '#parenthesized-parameter-list'
31303143
- include: '#block'
3131-
- include: '#expression'
31323144
31333145
lambda-parameter-list:
31343146
begin: \(
@@ -3196,11 +3208,11 @@ repository:
31963208

31973209
ref-modifier:
31983210
name: storage.modifier.ref.cs
3199-
match: \b(ref)\b
3211+
match: \bref\b
32003212

32013213
readonly-modifier:
32023214
name: storage.modifier.readonly.cs
3203-
match: \b(readonly)\b
3215+
match: \breadonly\b
32043216

32053217
tuple-type:
32063218
begin: \(

0 commit comments

Comments
 (0)