Skip to content

Commit 94d11ab

Browse files
authoredSep 16, 2023
Update Bicep grammar with recent additions (#850)
1 parent c64e1be commit 94d11ab

23 files changed

+1932
-197
lines changed
 

‎lexers/embedded/bicep.xml

+50-34
Original file line numberDiff line numberDiff line change
@@ -5,63 +5,79 @@
55
<filename>*.bicep</filename>
66
</config>
77
<rules>
8-
<state name="root">
8+
<state name="interp">
9+
<rule pattern="'">
10+
<token type="LiteralString"/>
11+
<pop depth="1"/>
12+
</rule>
13+
<rule pattern="\\.">
14+
<token type="LiteralString"/>
15+
</rule>
16+
<rule pattern="\$\{">
17+
<token type="LiteralStringInterpol"/>
18+
<push state="interp-inside"/>
19+
</rule>
20+
<rule pattern="\$">
21+
<token type="LiteralString"/>
22+
</rule>
23+
<rule pattern="[^'\\$]+">
24+
<token type="LiteralString"/>
25+
</rule>
26+
</state>
27+
<state name="interp-inside">
28+
<rule pattern="\}">
29+
<token type="LiteralStringInterpol"/>
30+
<pop depth="1"/>
31+
</rule>
32+
<rule>
33+
<include state="root"/>
34+
</rule>
35+
</state>
36+
<state name="commentsandwhitespace">
937
<rule pattern="//[^\n\r]+">
1038
<token type="CommentSingle"/>
1139
</rule>
1240
<rule pattern="/\*.*?\*/">
1341
<token type="CommentMultiline"/>
1442
</rule>
15-
<rule pattern="([&#39;]?\w+[&#39;]?)(:)">
16-
<bygroups>
17-
<token type="NameProperty"/>
18-
<token type="Punctuation"/>
19-
</bygroups>
20-
</rule>
21-
<rule pattern="\b(&#39;(resourceGroup|subscription|managementGroup|tenant)&#39;)\b">
22-
<token type="KeywordNamespace"/>
43+
<rule pattern="\s+">
44+
<token type="TextWhitespace"/>
2345
</rule>
24-
<rule pattern="&#39;[\w\$\{\(\)\}\.]{1,}?&#39;">
25-
<token type="LiteralStringInterpol"/>
46+
</state>
47+
<state name="root">
48+
<rule>
49+
<include state="commentsandwhitespace"/>
2650
</rule>
27-
<rule pattern="(&#39;&#39;&#39;|&#39;).*?(&#39;&#39;&#39;|&#39;)">
51+
<rule pattern="'''.*?'''">
2852
<token type="LiteralString"/>
2953
</rule>
30-
<rule pattern="\b(allowed|batchSize|description|maxLength|maxValue|metadata|minLength|minValue|secure)\b">
31-
<token type="NameDecorator"/>
54+
<rule pattern="'">
55+
<token type="LiteralString"/>
56+
<push state="interp"/>
3257
</rule>
33-
<rule pattern="\b(az|sys)\.">
34-
<token type="NameNamespace"/>
58+
<rule pattern="#[\w-]+\b">
59+
<token type="CommentPreproc"/>
3560
</rule>
36-
<rule pattern="\b(any|array|concat|contains|empty|first|intersection|items|last|length|min|max|range|skip|take|union|dateTimeAdd|utcNow|deployment|environment|loadFileAsBase64|loadTextContent|int|json|extensionResourceId|getSecret|list|listKeys|listKeyValue|listAccountSas|listSecrets|pickZones|reference|resourceId|subscriptionResourceId|tenantResourceId|managementGroup|resourceGroup|subscription|tenant|base64|base64ToJson|base64ToString|dataUri|dataUriToString|endsWith|format|guid|indexOf|lastIndexOf|length|newGuid|padLeft|replace|split|startsWith|string|substring|toLower|toUpper|trim|uniqueString|uri|uriComponent|uriComponentToString)\b">
61+
<rule pattern="[\w_]+(?=\()">
3762
<token type="NameFunction"/>
3863
</rule>
39-
<rule pattern="\b(bool)(\()">
40-
<bygroups>
41-
<token type="NameFunction"/>
42-
<token type="Punctuation"/>
43-
</bygroups>
44-
</rule>
45-
<rule pattern="\b(for|if|in)\b">
46-
<token type="Keyword"/>
47-
</rule>
48-
<rule pattern="\b(module|output|param|resource|var)\b">
64+
<rule pattern="\b(metadata|targetScope|resource|module|param|var|output|for|in|if|existing|import|as|type|with|using|func|assert)\b">
4965
<token type="KeywordDeclaration"/>
5066
</rule>
51-
<rule pattern="\b(array|bool|int|object|string)\b">
52-
<token type="KeywordType"/>
67+
<rule pattern="\b(true|false|null)\b">
68+
<token type="KeywordConstant"/>
5369
</rule>
5470
<rule pattern="(&gt;=|&gt;|&lt;=|&lt;|==|!=|=~|!~|::|&amp;&amp;|\?\?|!|-|%|\*|\/|\+)">
5571
<token type="Operator"/>
5672
</rule>
57-
<rule pattern="[\(\)\[\]\.:\?{}@=]">
73+
<rule pattern="(\(|\)|\[|\]|\.|:|\?|{|}|@|,|\||=&gt;|=)">
5874
<token type="Punctuation"/>
5975
</rule>
60-
<rule pattern="[\w_-]+">
61-
<token type="Text"/>
76+
<rule pattern="[\w_]+">
77+
<token type="NameVariable"/>
6278
</rule>
63-
<rule pattern="\s+">
64-
<token type="TextWhitespace"/>
79+
<rule pattern="[0-9]+">
80+
<token type="LiteralNumberInteger"/>
6581
</rule>
6682
</state>
6783
</rules>
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
[
22
{"type":"KeywordDeclaration","value":"output"},
33
{"type":"TextWhitespace","value":" "},
4-
{"type":"Text","value":"nonNullStr"},
4+
{"type":"NameVariable","value":"nonNullStr"},
55
{"type":"TextWhitespace","value":" "},
6-
{"type":"NameFunction","value":"string"},
6+
{"type":"NameVariable","value":"string"},
77
{"type":"TextWhitespace","value":" "},
88
{"type":"Punctuation","value":"="},
99
{"type":"TextWhitespace","value":" "},
10-
{"type":"Text","value":"myObject"},
10+
{"type":"NameVariable","value":"myObject"},
1111
{"type":"Punctuation","value":"."},
12-
{"type":"Text","value":"isnull1"},
12+
{"type":"NameVariable","value":"isnull1"},
1313
{"type":"TextWhitespace","value":" "},
1414
{"type":"Operator","value":"??"},
1515
{"type":"TextWhitespace","value":" "},
16-
{"type":"Text","value":"myObject"},
16+
{"type":"NameVariable","value":"myObject"},
1717
{"type":"Punctuation","value":"."},
18-
{"type":"NameFunction","value":"string"},
18+
{"type":"NameVariable","value":"string"},
1919
{"type":"TextWhitespace","value":" "},
2020
{"type":"Operator","value":"??"},
2121
{"type":"TextWhitespace","value":" "},
22-
{"type":"Text","value":"myObject"},
22+
{"type":"NameVariable","value":"myObject"},
2323
{"type":"Punctuation","value":"."},
24-
{"type":"Text","value":"isnull2"}
24+
{"type":"NameVariable","value":"isnull2"}
2525
]

‎lexers/testdata/bicep/bicep-comments.actual

+14-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,17 @@ resource nic1 'Microsoft.Network/networkInterfaces@2020-06-01' = {
66
This Bicep file assumes the key vault already exists and
77
is in same subscription and resource group as the deployment.
88
*/
9-
param existingKeyVaultName string
9+
param existingKeyVaultName string
10+
11+
resource test 'Microsoft.AAD/domainServices@2021-03-01' = {
12+
name: 'asdfsdf'
13+
// this is a comment
14+
properties: {/*comment*/
15+
domainConfigurationType/*comment*/:/*comment*/'as//notacomment!d/* also not a comment */fsdf'// test!/*
16+
/* multi
17+
line
18+
comment */ domainName: /*
19+
asdf*/'test'
20+
// comment
21+
}
22+
}

‎lexers/testdata/bicep/bicep-comments.expected

+77-22
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
{"type":"TextWhitespace","value":"\n"},
44
{"type":"KeywordDeclaration","value":"resource"},
55
{"type":"TextWhitespace","value":" "},
6-
{"type":"Text","value":"nic1"},
6+
{"type":"NameVariable","value":"nic1"},
77
{"type":"TextWhitespace","value":" "},
88
{"type":"LiteralString","value":"'Microsoft.Network/networkInterfaces@2020-06-01'"},
99
{"type":"TextWhitespace","value":" "},
@@ -15,52 +15,107 @@
1515
{"type":"TextWhitespace","value":"\n\n"},
1616
{"type":"Operator","value":"/*"},
1717
{"type":"TextWhitespace","value":"\n "},
18-
{"type":"Text","value":"This"},
18+
{"type":"NameVariable","value":"This"},
1919
{"type":"TextWhitespace","value":" "},
20-
{"type":"Text","value":"Bicep"},
20+
{"type":"NameVariable","value":"Bicep"},
2121
{"type":"TextWhitespace","value":" "},
22-
{"type":"Text","value":"file"},
22+
{"type":"NameVariable","value":"file"},
2323
{"type":"TextWhitespace","value":" "},
24-
{"type":"Text","value":"assumes"},
24+
{"type":"NameVariable","value":"assumes"},
2525
{"type":"TextWhitespace","value":" "},
26-
{"type":"Text","value":"the"},
26+
{"type":"NameVariable","value":"the"},
2727
{"type":"TextWhitespace","value":" "},
28-
{"type":"Text","value":"key"},
28+
{"type":"NameVariable","value":"key"},
2929
{"type":"TextWhitespace","value":" "},
30-
{"type":"Text","value":"vault"},
30+
{"type":"NameVariable","value":"vault"},
3131
{"type":"TextWhitespace","value":" "},
32-
{"type":"Text","value":"already"},
32+
{"type":"NameVariable","value":"already"},
3333
{"type":"TextWhitespace","value":" "},
34-
{"type":"Text","value":"exists"},
34+
{"type":"NameVariable","value":"exists"},
3535
{"type":"TextWhitespace","value":" "},
36-
{"type":"Text","value":"and"},
36+
{"type":"NameVariable","value":"and"},
3737
{"type":"TextWhitespace","value":"\n "},
38-
{"type":"Text","value":"is"},
38+
{"type":"NameVariable","value":"is"},
3939
{"type":"TextWhitespace","value":" "},
40-
{"type":"Keyword","value":"in"},
40+
{"type":"KeywordDeclaration","value":"in"},
4141
{"type":"TextWhitespace","value":" "},
42-
{"type":"Text","value":"same"},
42+
{"type":"NameVariable","value":"same"},
4343
{"type":"TextWhitespace","value":" "},
44-
{"type":"NameFunction","value":"subscription"},
44+
{"type":"NameVariable","value":"subscription"},
4545
{"type":"TextWhitespace","value":" "},
46-
{"type":"Text","value":"and"},
46+
{"type":"NameVariable","value":"and"},
4747
{"type":"TextWhitespace","value":" "},
4848
{"type":"KeywordDeclaration","value":"resource"},
4949
{"type":"TextWhitespace","value":" "},
50-
{"type":"Text","value":"group"},
50+
{"type":"NameVariable","value":"group"},
5151
{"type":"TextWhitespace","value":" "},
52-
{"type":"Text","value":"as"},
52+
{"type":"KeywordDeclaration","value":"as"},
5353
{"type":"TextWhitespace","value":" "},
54-
{"type":"Text","value":"the"},
54+
{"type":"NameVariable","value":"the"},
5555
{"type":"TextWhitespace","value":" "},
56-
{"type":"NameFunction","value":"deployment"},
56+
{"type":"NameVariable","value":"deployment"},
5757
{"type":"Punctuation","value":"."},
5858
{"type":"TextWhitespace","value":"\n"},
5959
{"type":"Operator","value":"*/"},
6060
{"type":"TextWhitespace","value":"\n"},
6161
{"type":"KeywordDeclaration","value":"param"},
6262
{"type":"TextWhitespace","value":" "},
63-
{"type":"Text","value":"existingKeyVaultName"},
63+
{"type":"NameVariable","value":"existingKeyVaultName"},
6464
{"type":"TextWhitespace","value":" "},
65-
{"type":"NameFunction","value":"string"}
65+
{"type":"NameVariable","value":"string"},
66+
{"type":"TextWhitespace","value":"\n\n"},
67+
{"type":"KeywordDeclaration","value":"resource"},
68+
{"type":"TextWhitespace","value":" "},
69+
{"type":"NameVariable","value":"test"},
70+
{"type":"TextWhitespace","value":" "},
71+
{"type":"LiteralString","value":"'Microsoft.AAD/domainServices@2021-03-01'"},
72+
{"type":"TextWhitespace","value":" "},
73+
{"type":"Punctuation","value":"="},
74+
{"type":"TextWhitespace","value":" "},
75+
{"type":"Punctuation","value":"{"},
76+
{"type":"TextWhitespace","value":"\n "},
77+
{"type":"NameVariable","value":"name"},
78+
{"type":"Punctuation","value":":"},
79+
{"type":"TextWhitespace","value":" "},
80+
{"type":"LiteralString","value":"'asdfsdf'"},
81+
{"type":"TextWhitespace","value":"\n "},
82+
{"type":"CommentSingle","value":"// this is a comment"},
83+
{"type":"TextWhitespace","value":"\n "},
84+
{"type":"NameVariable","value":"properties"},
85+
{"type":"Punctuation","value":":"},
86+
{"type":"TextWhitespace","value":" "},
87+
{"type":"Punctuation","value":"{"},
88+
{"type":"CommentMultiline","value":"/*comment*/"},
89+
{"type":"TextWhitespace","value":"\n "},
90+
{"type":"NameVariable","value":"domainConfigurationType"},
91+
{"type":"CommentMultiline","value":"/*comment*/"},
92+
{"type":"Punctuation","value":":"},
93+
{"type":"CommentMultiline","value":"/*comment*/"},
94+
{"type":"LiteralString","value":"'as//notacomment!d/* also not a comment */fsdf'"},
95+
{"type":"CommentSingle","value":"// test!/*"},
96+
{"type":"TextWhitespace","value":"\n "},
97+
{"type":"Operator","value":"/*"},
98+
{"type":"TextWhitespace","value":" "},
99+
{"type":"NameVariable","value":"multi"},
100+
{"type":"TextWhitespace","value":"\n "},
101+
{"type":"NameVariable","value":"line"},
102+
{"type":"TextWhitespace","value":"\n "},
103+
{"type":"NameVariable","value":"comment"},
104+
{"type":"TextWhitespace","value":" "},
105+
{"type":"Operator","value":"*/"},
106+
{"type":"TextWhitespace","value":" "},
107+
{"type":"NameVariable","value":"domainName"},
108+
{"type":"Punctuation","value":":"},
109+
{"type":"TextWhitespace","value":" "},
110+
{"type":"Operator","value":"/*"},
111+
{"type":"TextWhitespace","value":"\n "},
112+
{"type":"NameVariable","value":"asdf"},
113+
{"type":"Operator","value":"*/"},
114+
{"type":"LiteralString","value":"'test'"},
115+
{"type":"TextWhitespace","value":"\n "},
116+
{"type":"CommentSingle","value":"// comment"},
117+
{"type":"TextWhitespace","value":"\n "},
118+
{"type":"Punctuation","value":"}"},
119+
{"type":"TextWhitespace","value":"\n"},
120+
{"type":"Punctuation","value":"}"}
66121
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
var vmProperties = {
2+
diagnosticsProfile: {
3+
bootDiagnostics: {
4+
enabled: 123
5+
storageUri: true
6+
unknownProp: 'asdf'
7+
}
8+
}
9+
evictionPolicy: 'Deallocate'
10+
}
11+
resource vm 'Microsoft.Compute/virtualMachines@2020-12-01' = {
12+
name: 'vm'
13+
location: 'West US'
14+
#disable-next-line BCP036 BCP037
15+
properties: vmProperties
16+
}
17+
#disable-next-line no-unused-params
18+
param storageAccount1 string = 'testStorageAccount'
19+
#disable-next-line no-unused-params
20+
param storageAccount2 string = 'testStorageAccount'
21+
#disable-next-line no-unused-params /* Test comment 1 */
22+
param storageAccount3 string = 'testStorageAccount'
23+
#disable-next-line no-unused-params // Test comment 2
24+
param storageAccount5 string = 'testStorageAccount'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
[
2+
{"type":"KeywordDeclaration","value":"var"},
3+
{"type":"TextWhitespace","value":" "},
4+
{"type":"NameVariable","value":"vmProperties"},
5+
{"type":"TextWhitespace","value":" "},
6+
{"type":"Punctuation","value":"="},
7+
{"type":"TextWhitespace","value":" "},
8+
{"type":"Punctuation","value":"{"},
9+
{"type":"TextWhitespace","value":"\n "},
10+
{"type":"NameVariable","value":"diagnosticsProfile"},
11+
{"type":"Punctuation","value":":"},
12+
{"type":"TextWhitespace","value":" "},
13+
{"type":"Punctuation","value":"{"},
14+
{"type":"TextWhitespace","value":"\n "},
15+
{"type":"NameVariable","value":"bootDiagnostics"},
16+
{"type":"Punctuation","value":":"},
17+
{"type":"TextWhitespace","value":" "},
18+
{"type":"Punctuation","value":"{"},
19+
{"type":"TextWhitespace","value":"\n "},
20+
{"type":"NameVariable","value":"enabled"},
21+
{"type":"Punctuation","value":":"},
22+
{"type":"TextWhitespace","value":" "},
23+
{"type":"NameVariable","value":"123"},
24+
{"type":"TextWhitespace","value":"\n "},
25+
{"type":"NameVariable","value":"storageUri"},
26+
{"type":"Punctuation","value":":"},
27+
{"type":"TextWhitespace","value":" "},
28+
{"type":"KeywordConstant","value":"true"},
29+
{"type":"TextWhitespace","value":"\n "},
30+
{"type":"NameVariable","value":"unknownProp"},
31+
{"type":"Punctuation","value":":"},
32+
{"type":"TextWhitespace","value":" "},
33+
{"type":"LiteralString","value":"'asdf'"},
34+
{"type":"TextWhitespace","value":"\n "},
35+
{"type":"Punctuation","value":"}"},
36+
{"type":"TextWhitespace","value":"\n "},
37+
{"type":"Punctuation","value":"}"},
38+
{"type":"TextWhitespace","value":"\n "},
39+
{"type":"NameVariable","value":"evictionPolicy"},
40+
{"type":"Punctuation","value":":"},
41+
{"type":"TextWhitespace","value":" "},
42+
{"type":"LiteralString","value":"'Deallocate'"},
43+
{"type":"TextWhitespace","value":"\n"},
44+
{"type":"Punctuation","value":"}"},
45+
{"type":"TextWhitespace","value":"\n"},
46+
{"type":"KeywordDeclaration","value":"resource"},
47+
{"type":"TextWhitespace","value":" "},
48+
{"type":"NameVariable","value":"vm"},
49+
{"type":"TextWhitespace","value":" "},
50+
{"type":"LiteralString","value":"'Microsoft.Compute/virtualMachines@2020-12-01'"},
51+
{"type":"TextWhitespace","value":" "},
52+
{"type":"Punctuation","value":"="},
53+
{"type":"TextWhitespace","value":" "},
54+
{"type":"Punctuation","value":"{"},
55+
{"type":"TextWhitespace","value":"\n "},
56+
{"type":"NameVariable","value":"name"},
57+
{"type":"Punctuation","value":":"},
58+
{"type":"TextWhitespace","value":" "},
59+
{"type":"LiteralString","value":"'vm'"},
60+
{"type":"TextWhitespace","value":"\n "},
61+
{"type":"NameVariable","value":"location"},
62+
{"type":"Punctuation","value":":"},
63+
{"type":"TextWhitespace","value":" "},
64+
{"type":"LiteralString","value":"'West US'"},
65+
{"type":"TextWhitespace","value":"\n"},
66+
{"type":"CommentPreproc","value":"#disable-next-line"},
67+
{"type":"TextWhitespace","value":" "},
68+
{"type":"NameVariable","value":"BCP036"},
69+
{"type":"TextWhitespace","value":" "},
70+
{"type":"NameVariable","value":"BCP037"},
71+
{"type":"TextWhitespace","value":"\n "},
72+
{"type":"NameVariable","value":"properties"},
73+
{"type":"Punctuation","value":":"},
74+
{"type":"TextWhitespace","value":" "},
75+
{"type":"NameVariable","value":"vmProperties"},
76+
{"type":"TextWhitespace","value":"\n"},
77+
{"type":"Punctuation","value":"}"},
78+
{"type":"TextWhitespace","value":"\n"},
79+
{"type":"CommentPreproc","value":"#disable-next-line"},
80+
{"type":"TextWhitespace","value":" "},
81+
{"type":"NameVariable","value":"no"},
82+
{"type":"Operator","value":"-"},
83+
{"type":"NameVariable","value":"unused"},
84+
{"type":"Operator","value":"-"},
85+
{"type":"NameVariable","value":"params"},
86+
{"type":"TextWhitespace","value":"\n"},
87+
{"type":"KeywordDeclaration","value":"param"},
88+
{"type":"TextWhitespace","value":" "},
89+
{"type":"NameVariable","value":"storageAccount1"},
90+
{"type":"TextWhitespace","value":" "},
91+
{"type":"NameVariable","value":"string"},
92+
{"type":"TextWhitespace","value":" "},
93+
{"type":"Punctuation","value":"="},
94+
{"type":"TextWhitespace","value":" "},
95+
{"type":"LiteralString","value":"'testStorageAccount'"},
96+
{"type":"TextWhitespace","value":"\n"},
97+
{"type":"CommentPreproc","value":"#disable-next-line"},
98+
{"type":"TextWhitespace","value":" "},
99+
{"type":"NameVariable","value":"no"},
100+
{"type":"Operator","value":"-"},
101+
{"type":"NameVariable","value":"unused"},
102+
{"type":"Operator","value":"-"},
103+
{"type":"NameVariable","value":"params"},
104+
{"type":"TextWhitespace","value":"\n"},
105+
{"type":"KeywordDeclaration","value":"param"},
106+
{"type":"TextWhitespace","value":" "},
107+
{"type":"NameVariable","value":"storageAccount2"},
108+
{"type":"TextWhitespace","value":" "},
109+
{"type":"NameVariable","value":"string"},
110+
{"type":"TextWhitespace","value":" "},
111+
{"type":"Punctuation","value":"="},
112+
{"type":"TextWhitespace","value":" "},
113+
{"type":"LiteralString","value":"'testStorageAccount'"},
114+
{"type":"TextWhitespace","value":"\n"},
115+
{"type":"CommentPreproc","value":"#disable-next-line"},
116+
{"type":"TextWhitespace","value":" "},
117+
{"type":"NameVariable","value":"no"},
118+
{"type":"Operator","value":"-"},
119+
{"type":"NameVariable","value":"unused"},
120+
{"type":"Operator","value":"-"},
121+
{"type":"NameVariable","value":"params"},
122+
{"type":"TextWhitespace","value":" "},
123+
{"type":"CommentMultiline","value":"/* Test comment 1 */"},
124+
{"type":"TextWhitespace","value":"\n"},
125+
{"type":"KeywordDeclaration","value":"param"},
126+
{"type":"TextWhitespace","value":" "},
127+
{"type":"NameVariable","value":"storageAccount3"},
128+
{"type":"TextWhitespace","value":" "},
129+
{"type":"NameVariable","value":"string"},
130+
{"type":"TextWhitespace","value":" "},
131+
{"type":"Punctuation","value":"="},
132+
{"type":"TextWhitespace","value":" "},
133+
{"type":"LiteralString","value":"'testStorageAccount'"},
134+
{"type":"TextWhitespace","value":"\n "},
135+
{"type":"CommentPreproc","value":"#disable-next-line"},
136+
{"type":"TextWhitespace","value":" "},
137+
{"type":"NameVariable","value":"no"},
138+
{"type":"Operator","value":"-"},
139+
{"type":"NameVariable","value":"unused"},
140+
{"type":"Operator","value":"-"},
141+
{"type":"NameVariable","value":"params"},
142+
{"type":"TextWhitespace","value":" "},
143+
{"type":"CommentSingle","value":"// Test comment 2"},
144+
{"type":"TextWhitespace","value":"\n"},
145+
{"type":"KeywordDeclaration","value":"param"},
146+
{"type":"TextWhitespace","value":" "},
147+
{"type":"NameVariable","value":"storageAccount5"},
148+
{"type":"TextWhitespace","value":" "},
149+
{"type":"NameVariable","value":"string"},
150+
{"type":"TextWhitespace","value":" "},
151+
{"type":"Punctuation","value":"="},
152+
{"type":"TextWhitespace","value":" "},
153+
{"type":"LiteralString","value":"'testStorageAccount'"}
154+
]
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
[
2-
{"type":"NameProperty","value":"publicIPAddress"},
2+
{"type":"NameVariable","value":"publicIPAddress"},
33
{"type":"Punctuation","value":":"},
44
{"type":"TextWhitespace","value":" "},
55
{"type":"NameFunction","value":"any"},
66
{"type":"Punctuation","value":"(("},
7-
{"type":"Text","value":"pipId"},
7+
{"type":"NameVariable","value":"pipId"},
88
{"type":"TextWhitespace","value":" "},
99
{"type":"Operator","value":"=="},
1010
{"type":"TextWhitespace","value":" "},
@@ -13,16 +13,16 @@
1313
{"type":"TextWhitespace","value":" "},
1414
{"type":"Punctuation","value":"?"},
1515
{"type":"TextWhitespace","value":" "},
16-
{"type":"Text","value":"null"},
16+
{"type":"KeywordConstant","value":"null"},
1717
{"type":"TextWhitespace","value":" "},
1818
{"type":"Punctuation","value":":"},
1919
{"type":"TextWhitespace","value":" "},
2020
{"type":"Punctuation","value":"{"},
2121
{"type":"TextWhitespace","value":"\n "},
22-
{"type":"NameProperty","value":"id"},
22+
{"type":"NameVariable","value":"id"},
2323
{"type":"Punctuation","value":":"},
2424
{"type":"TextWhitespace","value":" "},
25-
{"type":"Text","value":"pipId"},
25+
{"type":"NameVariable","value":"pipId"},
2626
{"type":"TextWhitespace","value":"\n"},
2727
{"type":"Punctuation","value":"})"}
2828
]

‎lexers/testdata/bicep/bicep-function-deployment.expected

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
[
22
{"type":"KeywordDeclaration","value":"output"},
33
{"type":"TextWhitespace","value":" "},
4-
{"type":"Text","value":"deploymentOutput"},
4+
{"type":"NameVariable","value":"deploymentOutput"},
55
{"type":"TextWhitespace","value":" "},
6-
{"type":"KeywordType","value":"object"},
6+
{"type":"NameVariable","value":"object"},
77
{"type":"TextWhitespace","value":" "},
88
{"type":"Punctuation","value":"="},
99
{"type":"TextWhitespace","value":" "},
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,53 @@
11
[
22
{"type":"KeywordDeclaration","value":"output"},
33
{"type":"TextWhitespace","value":" "},
4-
{"type":"Text","value":"trueString"},
4+
{"type":"NameVariable","value":"trueString"},
55
{"type":"TextWhitespace","value":" "},
6-
{"type":"KeywordType","value":"bool"},
6+
{"type":"NameVariable","value":"bool"},
77
{"type":"TextWhitespace","value":" "},
88
{"type":"Punctuation","value":"="},
99
{"type":"TextWhitespace","value":" "},
1010
{"type":"NameFunction","value":"bool"},
1111
{"type":"Punctuation","value":"("},
12-
{"type":"LiteralStringInterpol","value":"'true'"},
12+
{"type":"LiteralString","value":"'true'"},
1313
{"type":"Punctuation","value":")"},
1414
{"type":"TextWhitespace","value":"\n"},
1515
{"type":"KeywordDeclaration","value":"output"},
1616
{"type":"TextWhitespace","value":" "},
17-
{"type":"Text","value":"falseString"},
17+
{"type":"NameVariable","value":"falseString"},
1818
{"type":"TextWhitespace","value":" "},
19-
{"type":"KeywordType","value":"bool"},
19+
{"type":"NameVariable","value":"bool"},
2020
{"type":"TextWhitespace","value":" "},
2121
{"type":"Punctuation","value":"="},
2222
{"type":"TextWhitespace","value":" "},
2323
{"type":"NameFunction","value":"bool"},
2424
{"type":"Punctuation","value":"("},
25-
{"type":"LiteralStringInterpol","value":"'false'"},
25+
{"type":"LiteralString","value":"'false'"},
2626
{"type":"Punctuation","value":")"},
2727
{"type":"TextWhitespace","value":"\n"},
2828
{"type":"KeywordDeclaration","value":"output"},
2929
{"type":"TextWhitespace","value":" "},
30-
{"type":"Text","value":"trueInt"},
30+
{"type":"NameVariable","value":"trueInt"},
3131
{"type":"TextWhitespace","value":" "},
32-
{"type":"KeywordType","value":"bool"},
32+
{"type":"NameVariable","value":"bool"},
3333
{"type":"TextWhitespace","value":" "},
3434
{"type":"Punctuation","value":"="},
3535
{"type":"TextWhitespace","value":" "},
3636
{"type":"NameFunction","value":"bool"},
3737
{"type":"Punctuation","value":"("},
38-
{"type":"Text","value":"1"},
38+
{"type":"NameVariable","value":"1"},
3939
{"type":"Punctuation","value":")"},
4040
{"type":"TextWhitespace","value":"\n"},
4141
{"type":"KeywordDeclaration","value":"output"},
4242
{"type":"TextWhitespace","value":" "},
43-
{"type":"Text","value":"falseInt"},
43+
{"type":"NameVariable","value":"falseInt"},
4444
{"type":"TextWhitespace","value":" "},
45-
{"type":"KeywordType","value":"bool"},
45+
{"type":"NameVariable","value":"bool"},
4646
{"type":"TextWhitespace","value":" "},
4747
{"type":"Punctuation","value":"="},
4848
{"type":"TextWhitespace","value":" "},
4949
{"type":"NameFunction","value":"bool"},
5050
{"type":"Punctuation","value":"("},
51-
{"type":"Text","value":"0"},
51+
{"type":"NameVariable","value":"0"},
5252
{"type":"Punctuation","value":")"}
5353
]
+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
var doggos = [
2+
'Evie'
3+
'Casper'
4+
'Indy'
5+
'Kira'
6+
]
7+
8+
var numbers = range(0, 4)
9+
10+
var sayHello = map(doggos, i => 'Hello ${i}!')
11+
12+
var isEven = filter(numbers, i => 0 == i % 2)
13+
14+
var evenDoggosNestedLambdas = map(filter(numbers, i => contains(filter(numbers, j => 0 == j % 2), i)), x => doggos[x])
15+
16+
var flattenedArrayOfArrays = flatten([[0, 1], [2, 3], [4, 5]])
17+
var flattenedEmptyArray = flatten([])
18+
19+
var mapSayHi = map(['abc', 'def', 'ghi'], foo => 'Hi ${foo}!')
20+
var mapEmpty = map([], foo => 'Hi ${foo}!')
21+
var mapObject = map(range(0, length(doggos)), i => {
22+
i: i
23+
doggo: doggos[i]
24+
greeting: 'Ahoy, ${doggos[i]}!'
25+
})
26+
var mapArray = flatten(map(range(1, 3), i => [i * 2, (i * 2) + 1]))
27+
var mapMultiLineArray = flatten(map(range(1, 3), i => [
28+
i * 3
29+
(i * 3) + 1
30+
(i * 3) + 2
31+
]))
32+
33+
var filterEqualityCheck = filter(['abc', 'def', 'ghi'], foo => 'def' == foo)
34+
var filterEmpty = filter([], foo => 'def' == foo)
35+
36+
var sortNumeric = sort([8, 3, 10, -13, 5], (x, y) => x < y)
37+
var sortAlpha = sort(['ghi', 'abc', 'def'], (x, y) => x < y)
38+
var sortAlphaReverse = sort(['ghi', 'abc', 'def'], (x, y) => x > y)
39+
var sortByObjectKey = sort([
40+
{ key: 124, name: 'Second' }
41+
{ key: 298, name: 'Third' }
42+
{ key: 24, name: 'First' }
43+
{ key: 1232, name: 'Fourth' }
44+
], (x, y) => int(x.key) < int(y.key))
45+
var sortEmpty = sort([], (x, y) => int(x) < int(y))
46+
47+
var reduceStringConcat = reduce(['abc', 'def', 'ghi'], '', (cur, next) => concat(cur, next))
48+
var reduceFactorial = reduce(range(1, 5), 1, (cur, next) => cur * next)
49+
var reduceObjectUnion = reduce([
50+
{ foo: 123 }
51+
{ bar: 456 }
52+
{ baz: 789 }
53+
], {}, (cur, next) => union(cur, next))
54+
var reduceEmpty = reduce([], 0, (cur, next) => cur)
55+
56+
var itemForLoop = [for item in range(0, 10): item]
57+
var filteredLoop = filter(itemForLoop, i => i > 5)
58+
59+
output doggoGreetings array = [for item in mapObject: item.greeting]
60+
61+
resource storageAcc 'Microsoft.Storage/storageAccounts@2021-09-01' existing = {
62+
name: 'asdfsadf'
63+
}
64+
var mappedResProps = map(items(storageAcc.properties.secondaryEndpoints), item => item.value)
65+
66+
var parentheses = map([123], (i => '${i}'))

‎lexers/testdata/bicep/bicep-lambdas.expected

+937
Large diffs are not rendered by default.
+51-40
Original file line numberDiff line numberDiff line change
@@ -1,148 +1,159 @@
11
[
22
{"type":"Punctuation","value":"@"},
3-
{"type":"NameDecorator","value":"minLength"},
3+
{"type":"NameFunction","value":"minLength"},
44
{"type":"Punctuation","value":"("},
5-
{"type":"Text","value":"3"},
5+
{"type":"NameVariable","value":"3"},
66
{"type":"Punctuation","value":")"},
77
{"type":"TextWhitespace","value":"\n"},
88
{"type":"Punctuation","value":"@"},
9-
{"type":"NameDecorator","value":"maxLength"},
9+
{"type":"NameFunction","value":"maxLength"},
1010
{"type":"Punctuation","value":"("},
11-
{"type":"Text","value":"11"},
11+
{"type":"NameVariable","value":"11"},
1212
{"type":"Punctuation","value":")"},
1313
{"type":"TextWhitespace","value":"\n"},
1414
{"type":"KeywordDeclaration","value":"param"},
1515
{"type":"TextWhitespace","value":" "},
16-
{"type":"Text","value":"storagePrefix"},
16+
{"type":"NameVariable","value":"storagePrefix"},
1717
{"type":"TextWhitespace","value":" "},
18-
{"type":"NameFunction","value":"string"},
18+
{"type":"NameVariable","value":"string"},
1919
{"type":"TextWhitespace","value":"\n\n"},
2020
{"type":"KeywordDeclaration","value":"param"},
2121
{"type":"TextWhitespace","value":" "},
22-
{"type":"Text","value":"storageSKU"},
22+
{"type":"NameVariable","value":"storageSKU"},
2323
{"type":"TextWhitespace","value":" "},
24-
{"type":"NameFunction","value":"string"},
24+
{"type":"NameVariable","value":"string"},
2525
{"type":"TextWhitespace","value":" "},
2626
{"type":"Punctuation","value":"="},
2727
{"type":"TextWhitespace","value":" "},
28-
{"type":"LiteralStringInterpol","value":"'Standard_LRS'"},
28+
{"type":"LiteralString","value":"'Standard_LRS'"},
2929
{"type":"TextWhitespace","value":"\n"},
3030
{"type":"KeywordDeclaration","value":"param"},
3131
{"type":"TextWhitespace","value":" "},
32-
{"type":"Text","value":"location"},
32+
{"type":"NameVariable","value":"location"},
3333
{"type":"TextWhitespace","value":" "},
34-
{"type":"NameFunction","value":"string"},
34+
{"type":"NameVariable","value":"string"},
3535
{"type":"TextWhitespace","value":" "},
3636
{"type":"Punctuation","value":"="},
3737
{"type":"TextWhitespace","value":" "},
3838
{"type":"NameFunction","value":"resourceGroup"},
3939
{"type":"Punctuation","value":"()."},
40-
{"type":"Text","value":"location"},
40+
{"type":"NameVariable","value":"location"},
4141
{"type":"TextWhitespace","value":"\n\n"},
4242
{"type":"KeywordDeclaration","value":"var"},
4343
{"type":"TextWhitespace","value":" "},
44-
{"type":"Text","value":"uniqueStorageName"},
44+
{"type":"NameVariable","value":"uniqueStorageName"},
4545
{"type":"TextWhitespace","value":" "},
4646
{"type":"Punctuation","value":"="},
4747
{"type":"TextWhitespace","value":" "},
48-
{"type":"LiteralStringInterpol","value":"'${storagePrefix}${uniqueString(resourceGroup().id)}'"},
48+
{"type":"LiteralString","value":"'"},
49+
{"type":"LiteralStringInterpol","value":"${"},
50+
{"type":"NameVariable","value":"storagePrefix"},
51+
{"type":"LiteralStringInterpol","value":"}${"},
52+
{"type":"NameFunction","value":"uniqueString"},
53+
{"type":"Punctuation","value":"("},
54+
{"type":"NameFunction","value":"resourceGroup"},
55+
{"type":"Punctuation","value":"()."},
56+
{"type":"NameVariable","value":"id"},
57+
{"type":"Punctuation","value":")"},
58+
{"type":"LiteralStringInterpol","value":"}"},
59+
{"type":"LiteralString","value":"'"},
4960
{"type":"TextWhitespace","value":"\n\n"},
5061
{"type":"KeywordDeclaration","value":"resource"},
5162
{"type":"TextWhitespace","value":" "},
52-
{"type":"Text","value":"stg"},
63+
{"type":"NameVariable","value":"stg"},
5364
{"type":"TextWhitespace","value":" "},
5465
{"type":"LiteralString","value":"'Microsoft.Storage/storageAccounts@2019-04-01'"},
5566
{"type":"TextWhitespace","value":" "},
5667
{"type":"Punctuation","value":"="},
5768
{"type":"TextWhitespace","value":" "},
5869
{"type":"Punctuation","value":"{"},
5970
{"type":"TextWhitespace","value":"\n "},
60-
{"type":"NameProperty","value":"name"},
71+
{"type":"NameVariable","value":"name"},
6172
{"type":"Punctuation","value":":"},
6273
{"type":"TextWhitespace","value":" "},
63-
{"type":"Text","value":"uniqueStorageName"},
74+
{"type":"NameVariable","value":"uniqueStorageName"},
6475
{"type":"TextWhitespace","value":"\n "},
65-
{"type":"NameProperty","value":"location"},
76+
{"type":"NameVariable","value":"location"},
6677
{"type":"Punctuation","value":":"},
6778
{"type":"TextWhitespace","value":" "},
68-
{"type":"Text","value":"location"},
79+
{"type":"NameVariable","value":"location"},
6980
{"type":"TextWhitespace","value":"\n "},
70-
{"type":"NameProperty","value":"sku"},
81+
{"type":"NameVariable","value":"sku"},
7182
{"type":"Punctuation","value":":"},
7283
{"type":"TextWhitespace","value":" "},
7384
{"type":"Punctuation","value":"{"},
7485
{"type":"TextWhitespace","value":"\n "},
75-
{"type":"NameProperty","value":"name"},
86+
{"type":"NameVariable","value":"name"},
7687
{"type":"Punctuation","value":":"},
7788
{"type":"TextWhitespace","value":" "},
78-
{"type":"Text","value":"storageSKU"},
89+
{"type":"NameVariable","value":"storageSKU"},
7990
{"type":"TextWhitespace","value":"\n "},
8091
{"type":"Punctuation","value":"}"},
8192
{"type":"TextWhitespace","value":"\n "},
82-
{"type":"NameProperty","value":"kind"},
93+
{"type":"NameVariable","value":"kind"},
8394
{"type":"Punctuation","value":":"},
8495
{"type":"TextWhitespace","value":" "},
85-
{"type":"LiteralStringInterpol","value":"'StorageV2'"},
96+
{"type":"LiteralString","value":"'StorageV2'"},
8697
{"type":"TextWhitespace","value":"\n "},
87-
{"type":"NameProperty","value":"properties"},
98+
{"type":"NameVariable","value":"properties"},
8899
{"type":"Punctuation","value":":"},
89100
{"type":"TextWhitespace","value":" "},
90101
{"type":"Punctuation","value":"{"},
91102
{"type":"TextWhitespace","value":"\n "},
92-
{"type":"NameProperty","value":"supportsHttpsTrafficOnly"},
103+
{"type":"NameVariable","value":"supportsHttpsTrafficOnly"},
93104
{"type":"Punctuation","value":":"},
94105
{"type":"TextWhitespace","value":" "},
95-
{"type":"Text","value":"true"},
106+
{"type":"KeywordConstant","value":"true"},
96107
{"type":"TextWhitespace","value":"\n "},
97108
{"type":"Punctuation","value":"}"},
98109
{"type":"TextWhitespace","value":"\n"},
99110
{"type":"Punctuation","value":"}"},
100111
{"type":"TextWhitespace","value":"\n\n"},
101112
{"type":"KeywordDeclaration","value":"module"},
102113
{"type":"TextWhitespace","value":" "},
103-
{"type":"Text","value":"webModule"},
114+
{"type":"NameVariable","value":"webModule"},
104115
{"type":"TextWhitespace","value":" "},
105116
{"type":"LiteralString","value":"'./webApp.bicep'"},
106117
{"type":"TextWhitespace","value":" "},
107118
{"type":"Punctuation","value":"="},
108119
{"type":"TextWhitespace","value":" "},
109120
{"type":"Punctuation","value":"{"},
110121
{"type":"TextWhitespace","value":"\n "},
111-
{"type":"NameProperty","value":"'name'"},
122+
{"type":"LiteralString","value":"'name'"},
112123
{"type":"Punctuation","value":":"},
113124
{"type":"TextWhitespace","value":" "},
114-
{"type":"LiteralStringInterpol","value":"'webDeploy'"},
125+
{"type":"LiteralString","value":"'webDeploy'"},
115126
{"type":"TextWhitespace","value":"\n "},
116-
{"type":"NameProperty","value":"'params'"},
127+
{"type":"LiteralString","value":"'params'"},
117128
{"type":"Punctuation","value":":"},
118129
{"type":"TextWhitespace","value":" "},
119130
{"type":"Punctuation","value":"{"},
120131
{"type":"TextWhitespace","value":"\n "},
121-
{"type":"NameProperty","value":"'skuName'"},
132+
{"type":"LiteralString","value":"'skuName'"},
122133
{"type":"Punctuation","value":":"},
123134
{"type":"TextWhitespace","value":" "},
124-
{"type":"LiteralStringInterpol","value":"'S1'"},
135+
{"type":"LiteralString","value":"'S1'"},
125136
{"type":"TextWhitespace","value":"\n "},
126-
{"type":"NameProperty","value":"'location'"},
137+
{"type":"LiteralString","value":"'location'"},
127138
{"type":"Punctuation","value":":"},
128139
{"type":"TextWhitespace","value":" "},
129-
{"type":"Text","value":"location"},
140+
{"type":"NameVariable","value":"location"},
130141
{"type":"TextWhitespace","value":"\n "},
131142
{"type":"Punctuation","value":"}"},
132143
{"type":"TextWhitespace","value":"\n"},
133144
{"type":"Punctuation","value":"}"},
134145
{"type":"TextWhitespace","value":"\n\n"},
135146
{"type":"KeywordDeclaration","value":"output"},
136147
{"type":"TextWhitespace","value":" "},
137-
{"type":"Text","value":"storageEndpoint"},
148+
{"type":"NameVariable","value":"storageEndpoint"},
138149
{"type":"TextWhitespace","value":" "},
139-
{"type":"KeywordType","value":"object"},
150+
{"type":"NameVariable","value":"object"},
140151
{"type":"TextWhitespace","value":" "},
141152
{"type":"Punctuation","value":"="},
142153
{"type":"TextWhitespace","value":" "},
143-
{"type":"Text","value":"stg"},
154+
{"type":"NameVariable","value":"stg"},
144155
{"type":"Punctuation","value":"."},
145-
{"type":"Text","value":"properties"},
156+
{"type":"NameVariable","value":"properties"},
146157
{"type":"Punctuation","value":"."},
147-
{"type":"Text","value":"primaryEndpoints"}
158+
{"type":"NameVariable","value":"primaryEndpoints"}
148159
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
@allowed(['abc', 'def', 'ghi'])
2+
param foo string
3+
4+
var singleLineFunction = concat('abc', 'def')
5+
6+
var multiLineFunction = concat(
7+
'abc',
8+
'def'
9+
)
10+
11+
var multiLineFunctionUnusualFormatting = concat(
12+
'abc', any(['hello']),
13+
'def')
14+
15+
var nestedTest = concat(
16+
concat(
17+
concat(
18+
concat(
19+
concat(
20+
'level',
21+
'one'),
22+
'two'),
23+
'three'),
24+
'four'),
25+
'five')
26+
27+
var singleLineArray = ['abc', 'def']
28+
var singleLineArrayTrailingCommas = ['abc', 'def',]
29+
30+
var multiLineArray = [
31+
'abc'
32+
'def'
33+
]
34+
35+
var mixedArray = ['abc', 'def'
36+
'ghi', 'jkl'
37+
'lmn']
38+
39+
var singleLineObject = { abc: 'def', ghi: 'jkl'}
40+
var singleLineObjectTrailingCommas = { abc: 'def', ghi: 'jkl',}
41+
var multiLineObject = {
42+
abc: 'def'
43+
ghi: 'jkl'
44+
}
45+
var mixedObject = { abc: 'abc', def: 'def'
46+
ghi: 'ghi', jkl: 'jkl'
47+
lmn: 'lmn' }
48+
49+
var nestedMixed = {
50+
abc: { 'def': 'ghi', abc: 'def', foo: [
51+
'bar', 'blah'
52+
] }
53+
}
54+
55+
var brokenFormatting = [ /*foo */ 'bar' /*
56+
57+
hello
58+
59+
*/, 'asdfdsf', 12324, /* asdf*/ '', '''
60+
61+
62+
'''
63+
123, 233535
64+
true
65+
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,348 @@
1+
[
2+
{"type":"Punctuation","value":"@"},
3+
{"type":"NameFunction","value":"allowed"},
4+
{"type":"Punctuation","value":"(["},
5+
{"type":"LiteralString","value":"'abc'"},
6+
{"type":"Punctuation","value":","},
7+
{"type":"TextWhitespace","value":" "},
8+
{"type":"LiteralString","value":"'def'"},
9+
{"type":"Punctuation","value":","},
10+
{"type":"TextWhitespace","value":" "},
11+
{"type":"LiteralString","value":"'ghi'"},
12+
{"type":"Punctuation","value":"])"},
13+
{"type":"TextWhitespace","value":"\n"},
14+
{"type":"KeywordDeclaration","value":"param"},
15+
{"type":"TextWhitespace","value":" "},
16+
{"type":"NameVariable","value":"foo"},
17+
{"type":"TextWhitespace","value":" "},
18+
{"type":"NameVariable","value":"string"},
19+
{"type":"TextWhitespace","value":"\n\n"},
20+
{"type":"KeywordDeclaration","value":"var"},
21+
{"type":"TextWhitespace","value":" "},
22+
{"type":"NameVariable","value":"singleLineFunction"},
23+
{"type":"TextWhitespace","value":" "},
24+
{"type":"Punctuation","value":"="},
25+
{"type":"TextWhitespace","value":" "},
26+
{"type":"NameFunction","value":"concat"},
27+
{"type":"Punctuation","value":"("},
28+
{"type":"LiteralString","value":"'abc'"},
29+
{"type":"Punctuation","value":","},
30+
{"type":"TextWhitespace","value":" "},
31+
{"type":"LiteralString","value":"'def'"},
32+
{"type":"Punctuation","value":")"},
33+
{"type":"TextWhitespace","value":"\n\n"},
34+
{"type":"KeywordDeclaration","value":"var"},
35+
{"type":"TextWhitespace","value":" "},
36+
{"type":"NameVariable","value":"multiLineFunction"},
37+
{"type":"TextWhitespace","value":" "},
38+
{"type":"Punctuation","value":"="},
39+
{"type":"TextWhitespace","value":" "},
40+
{"type":"NameFunction","value":"concat"},
41+
{"type":"Punctuation","value":"("},
42+
{"type":"TextWhitespace","value":"\n "},
43+
{"type":"LiteralString","value":"'abc'"},
44+
{"type":"Punctuation","value":","},
45+
{"type":"TextWhitespace","value":"\n "},
46+
{"type":"LiteralString","value":"'def'"},
47+
{"type":"TextWhitespace","value":"\n"},
48+
{"type":"Punctuation","value":")"},
49+
{"type":"TextWhitespace","value":"\n\n"},
50+
{"type":"KeywordDeclaration","value":"var"},
51+
{"type":"TextWhitespace","value":" "},
52+
{"type":"NameVariable","value":"multiLineFunctionUnusualFormatting"},
53+
{"type":"TextWhitespace","value":" "},
54+
{"type":"Punctuation","value":"="},
55+
{"type":"TextWhitespace","value":" "},
56+
{"type":"NameFunction","value":"concat"},
57+
{"type":"Punctuation","value":"("},
58+
{"type":"TextWhitespace","value":"\n "},
59+
{"type":"LiteralString","value":"'abc'"},
60+
{"type":"Punctuation","value":","},
61+
{"type":"TextWhitespace","value":" "},
62+
{"type":"NameFunction","value":"any"},
63+
{"type":"Punctuation","value":"(["},
64+
{"type":"LiteralString","value":"'hello'"},
65+
{"type":"Punctuation","value":"]),"},
66+
{"type":"TextWhitespace","value":"\n"},
67+
{"type":"LiteralString","value":"'def'"},
68+
{"type":"Punctuation","value":")"},
69+
{"type":"TextWhitespace","value":"\n\n"},
70+
{"type":"KeywordDeclaration","value":"var"},
71+
{"type":"TextWhitespace","value":" "},
72+
{"type":"NameVariable","value":"nestedTest"},
73+
{"type":"TextWhitespace","value":" "},
74+
{"type":"Punctuation","value":"="},
75+
{"type":"TextWhitespace","value":" "},
76+
{"type":"NameFunction","value":"concat"},
77+
{"type":"Punctuation","value":"("},
78+
{"type":"TextWhitespace","value":"\n"},
79+
{"type":"NameFunction","value":"concat"},
80+
{"type":"Punctuation","value":"("},
81+
{"type":"TextWhitespace","value":"\n"},
82+
{"type":"NameFunction","value":"concat"},
83+
{"type":"Punctuation","value":"("},
84+
{"type":"TextWhitespace","value":"\n"},
85+
{"type":"NameFunction","value":"concat"},
86+
{"type":"Punctuation","value":"("},
87+
{"type":"TextWhitespace","value":"\n"},
88+
{"type":"NameFunction","value":"concat"},
89+
{"type":"Punctuation","value":"("},
90+
{"type":"TextWhitespace","value":"\n"},
91+
{"type":"LiteralString","value":"'level'"},
92+
{"type":"Punctuation","value":","},
93+
{"type":"TextWhitespace","value":"\n"},
94+
{"type":"LiteralString","value":"'one'"},
95+
{"type":"Punctuation","value":"),"},
96+
{"type":"TextWhitespace","value":"\n"},
97+
{"type":"LiteralString","value":"'two'"},
98+
{"type":"Punctuation","value":"),"},
99+
{"type":"TextWhitespace","value":"\n"},
100+
{"type":"LiteralString","value":"'three'"},
101+
{"type":"Punctuation","value":"),"},
102+
{"type":"TextWhitespace","value":"\n"},
103+
{"type":"LiteralString","value":"'four'"},
104+
{"type":"Punctuation","value":"),"},
105+
{"type":"TextWhitespace","value":"\n"},
106+
{"type":"LiteralString","value":"'five'"},
107+
{"type":"Punctuation","value":")"},
108+
{"type":"TextWhitespace","value":"\n\n"},
109+
{"type":"KeywordDeclaration","value":"var"},
110+
{"type":"TextWhitespace","value":" "},
111+
{"type":"NameVariable","value":"singleLineArray"},
112+
{"type":"TextWhitespace","value":" "},
113+
{"type":"Punctuation","value":"="},
114+
{"type":"TextWhitespace","value":" "},
115+
{"type":"Punctuation","value":"["},
116+
{"type":"LiteralString","value":"'abc'"},
117+
{"type":"Punctuation","value":","},
118+
{"type":"TextWhitespace","value":" "},
119+
{"type":"LiteralString","value":"'def'"},
120+
{"type":"Punctuation","value":"]"},
121+
{"type":"TextWhitespace","value":"\n"},
122+
{"type":"KeywordDeclaration","value":"var"},
123+
{"type":"TextWhitespace","value":" "},
124+
{"type":"NameVariable","value":"singleLineArrayTrailingCommas"},
125+
{"type":"TextWhitespace","value":" "},
126+
{"type":"Punctuation","value":"="},
127+
{"type":"TextWhitespace","value":" "},
128+
{"type":"Punctuation","value":"["},
129+
{"type":"LiteralString","value":"'abc'"},
130+
{"type":"Punctuation","value":","},
131+
{"type":"TextWhitespace","value":" "},
132+
{"type":"LiteralString","value":"'def'"},
133+
{"type":"Punctuation","value":",]"},
134+
{"type":"TextWhitespace","value":"\n\n"},
135+
{"type":"KeywordDeclaration","value":"var"},
136+
{"type":"TextWhitespace","value":" "},
137+
{"type":"NameVariable","value":"multiLineArray"},
138+
{"type":"TextWhitespace","value":" "},
139+
{"type":"Punctuation","value":"="},
140+
{"type":"TextWhitespace","value":" "},
141+
{"type":"Punctuation","value":"["},
142+
{"type":"TextWhitespace","value":"\n "},
143+
{"type":"LiteralString","value":"'abc'"},
144+
{"type":"TextWhitespace","value":"\n "},
145+
{"type":"LiteralString","value":"'def'"},
146+
{"type":"TextWhitespace","value":"\n"},
147+
{"type":"Punctuation","value":"]"},
148+
{"type":"TextWhitespace","value":"\n\n"},
149+
{"type":"KeywordDeclaration","value":"var"},
150+
{"type":"TextWhitespace","value":" "},
151+
{"type":"NameVariable","value":"mixedArray"},
152+
{"type":"TextWhitespace","value":" "},
153+
{"type":"Punctuation","value":"="},
154+
{"type":"TextWhitespace","value":" "},
155+
{"type":"Punctuation","value":"["},
156+
{"type":"LiteralString","value":"'abc'"},
157+
{"type":"Punctuation","value":","},
158+
{"type":"TextWhitespace","value":" "},
159+
{"type":"LiteralString","value":"'def'"},
160+
{"type":"TextWhitespace","value":"\n"},
161+
{"type":"LiteralString","value":"'ghi'"},
162+
{"type":"Punctuation","value":","},
163+
{"type":"TextWhitespace","value":" "},
164+
{"type":"LiteralString","value":"'jkl'"},
165+
{"type":"TextWhitespace","value":"\n"},
166+
{"type":"LiteralString","value":"'lmn'"},
167+
{"type":"Punctuation","value":"]"},
168+
{"type":"TextWhitespace","value":"\n\n"},
169+
{"type":"KeywordDeclaration","value":"var"},
170+
{"type":"TextWhitespace","value":" "},
171+
{"type":"NameVariable","value":"singleLineObject"},
172+
{"type":"TextWhitespace","value":" "},
173+
{"type":"Punctuation","value":"="},
174+
{"type":"TextWhitespace","value":" "},
175+
{"type":"Punctuation","value":"{"},
176+
{"type":"TextWhitespace","value":" "},
177+
{"type":"NameVariable","value":"abc"},
178+
{"type":"Punctuation","value":":"},
179+
{"type":"TextWhitespace","value":" "},
180+
{"type":"LiteralString","value":"'def'"},
181+
{"type":"Punctuation","value":","},
182+
{"type":"TextWhitespace","value":" "},
183+
{"type":"NameVariable","value":"ghi"},
184+
{"type":"Punctuation","value":":"},
185+
{"type":"TextWhitespace","value":" "},
186+
{"type":"LiteralString","value":"'jkl'"},
187+
{"type":"Punctuation","value":"}"},
188+
{"type":"TextWhitespace","value":"\n"},
189+
{"type":"KeywordDeclaration","value":"var"},
190+
{"type":"TextWhitespace","value":" "},
191+
{"type":"NameVariable","value":"singleLineObjectTrailingCommas"},
192+
{"type":"TextWhitespace","value":" "},
193+
{"type":"Punctuation","value":"="},
194+
{"type":"TextWhitespace","value":" "},
195+
{"type":"Punctuation","value":"{"},
196+
{"type":"TextWhitespace","value":" "},
197+
{"type":"NameVariable","value":"abc"},
198+
{"type":"Punctuation","value":":"},
199+
{"type":"TextWhitespace","value":" "},
200+
{"type":"LiteralString","value":"'def'"},
201+
{"type":"Punctuation","value":","},
202+
{"type":"TextWhitespace","value":" "},
203+
{"type":"NameVariable","value":"ghi"},
204+
{"type":"Punctuation","value":":"},
205+
{"type":"TextWhitespace","value":" "},
206+
{"type":"LiteralString","value":"'jkl'"},
207+
{"type":"Punctuation","value":",}"},
208+
{"type":"TextWhitespace","value":"\n"},
209+
{"type":"KeywordDeclaration","value":"var"},
210+
{"type":"TextWhitespace","value":" "},
211+
{"type":"NameVariable","value":"multiLineObject"},
212+
{"type":"TextWhitespace","value":" "},
213+
{"type":"Punctuation","value":"="},
214+
{"type":"TextWhitespace","value":" "},
215+
{"type":"Punctuation","value":"{"},
216+
{"type":"TextWhitespace","value":"\n "},
217+
{"type":"NameVariable","value":"abc"},
218+
{"type":"Punctuation","value":":"},
219+
{"type":"TextWhitespace","value":" "},
220+
{"type":"LiteralString","value":"'def'"},
221+
{"type":"TextWhitespace","value":"\n "},
222+
{"type":"NameVariable","value":"ghi"},
223+
{"type":"Punctuation","value":":"},
224+
{"type":"TextWhitespace","value":" "},
225+
{"type":"LiteralString","value":"'jkl'"},
226+
{"type":"TextWhitespace","value":"\n"},
227+
{"type":"Punctuation","value":"}"},
228+
{"type":"TextWhitespace","value":"\n"},
229+
{"type":"KeywordDeclaration","value":"var"},
230+
{"type":"TextWhitespace","value":" "},
231+
{"type":"NameVariable","value":"mixedObject"},
232+
{"type":"TextWhitespace","value":" "},
233+
{"type":"Punctuation","value":"="},
234+
{"type":"TextWhitespace","value":" "},
235+
{"type":"Punctuation","value":"{"},
236+
{"type":"TextWhitespace","value":" "},
237+
{"type":"NameVariable","value":"abc"},
238+
{"type":"Punctuation","value":":"},
239+
{"type":"TextWhitespace","value":" "},
240+
{"type":"LiteralString","value":"'abc'"},
241+
{"type":"Punctuation","value":","},
242+
{"type":"TextWhitespace","value":" "},
243+
{"type":"NameVariable","value":"def"},
244+
{"type":"Punctuation","value":":"},
245+
{"type":"TextWhitespace","value":" "},
246+
{"type":"LiteralString","value":"'def'"},
247+
{"type":"TextWhitespace","value":"\n"},
248+
{"type":"NameVariable","value":"ghi"},
249+
{"type":"Punctuation","value":":"},
250+
{"type":"TextWhitespace","value":" "},
251+
{"type":"LiteralString","value":"'ghi'"},
252+
{"type":"Punctuation","value":","},
253+
{"type":"TextWhitespace","value":" "},
254+
{"type":"NameVariable","value":"jkl"},
255+
{"type":"Punctuation","value":":"},
256+
{"type":"TextWhitespace","value":" "},
257+
{"type":"LiteralString","value":"'jkl'"},
258+
{"type":"TextWhitespace","value":"\n"},
259+
{"type":"NameVariable","value":"lmn"},
260+
{"type":"Punctuation","value":":"},
261+
{"type":"TextWhitespace","value":" "},
262+
{"type":"LiteralString","value":"'lmn'"},
263+
{"type":"TextWhitespace","value":" "},
264+
{"type":"Punctuation","value":"}"},
265+
{"type":"TextWhitespace","value":"\n\n"},
266+
{"type":"KeywordDeclaration","value":"var"},
267+
{"type":"TextWhitespace","value":" "},
268+
{"type":"NameVariable","value":"nestedMixed"},
269+
{"type":"TextWhitespace","value":" "},
270+
{"type":"Punctuation","value":"="},
271+
{"type":"TextWhitespace","value":" "},
272+
{"type":"Punctuation","value":"{"},
273+
{"type":"TextWhitespace","value":"\n "},
274+
{"type":"NameVariable","value":"abc"},
275+
{"type":"Punctuation","value":":"},
276+
{"type":"TextWhitespace","value":" "},
277+
{"type":"Punctuation","value":"{"},
278+
{"type":"TextWhitespace","value":" "},
279+
{"type":"LiteralString","value":"'def'"},
280+
{"type":"Punctuation","value":":"},
281+
{"type":"TextWhitespace","value":" "},
282+
{"type":"LiteralString","value":"'ghi'"},
283+
{"type":"Punctuation","value":","},
284+
{"type":"TextWhitespace","value":" "},
285+
{"type":"NameVariable","value":"abc"},
286+
{"type":"Punctuation","value":":"},
287+
{"type":"TextWhitespace","value":" "},
288+
{"type":"LiteralString","value":"'def'"},
289+
{"type":"Punctuation","value":","},
290+
{"type":"TextWhitespace","value":" "},
291+
{"type":"NameVariable","value":"foo"},
292+
{"type":"Punctuation","value":":"},
293+
{"type":"TextWhitespace","value":" "},
294+
{"type":"Punctuation","value":"["},
295+
{"type":"TextWhitespace","value":"\n "},
296+
{"type":"LiteralString","value":"'bar'"},
297+
{"type":"Punctuation","value":","},
298+
{"type":"TextWhitespace","value":" "},
299+
{"type":"LiteralString","value":"'blah'"},
300+
{"type":"TextWhitespace","value":"\n "},
301+
{"type":"Punctuation","value":"]"},
302+
{"type":"TextWhitespace","value":" "},
303+
{"type":"Punctuation","value":"}"},
304+
{"type":"TextWhitespace","value":"\n"},
305+
{"type":"Punctuation","value":"}"},
306+
{"type":"TextWhitespace","value":"\n\n"},
307+
{"type":"KeywordDeclaration","value":"var"},
308+
{"type":"TextWhitespace","value":" "},
309+
{"type":"NameVariable","value":"brokenFormatting"},
310+
{"type":"TextWhitespace","value":" "},
311+
{"type":"Punctuation","value":"="},
312+
{"type":"TextWhitespace","value":" "},
313+
{"type":"Punctuation","value":"["},
314+
{"type":"TextWhitespace","value":" "},
315+
{"type":"CommentMultiline","value":"/*foo */"},
316+
{"type":"TextWhitespace","value":" "},
317+
{"type":"LiteralString","value":"'bar'"},
318+
{"type":"TextWhitespace","value":" "},
319+
{"type":"Operator","value":"/*"},
320+
{"type":"TextWhitespace","value":"\n\n"},
321+
{"type":"NameVariable","value":"hello"},
322+
{"type":"TextWhitespace","value":"\n\n"},
323+
{"type":"Operator","value":"*/"},
324+
{"type":"Punctuation","value":","},
325+
{"type":"TextWhitespace","value":" "},
326+
{"type":"LiteralString","value":"'asdfdsf'"},
327+
{"type":"Punctuation","value":","},
328+
{"type":"TextWhitespace","value":" "},
329+
{"type":"NameVariable","value":"12324"},
330+
{"type":"Punctuation","value":","},
331+
{"type":"TextWhitespace","value":" "},
332+
{"type":"CommentMultiline","value":"/* asdf*/"},
333+
{"type":"TextWhitespace","value":" "},
334+
{"type":"LiteralString","value":"''"},
335+
{"type":"Punctuation","value":","},
336+
{"type":"TextWhitespace","value":" "},
337+
{"type":"LiteralString","value":"'''\n\n\n'''"},
338+
{"type":"TextWhitespace","value":"\n"},
339+
{"type":"NameVariable","value":"123"},
340+
{"type":"Punctuation","value":","},
341+
{"type":"TextWhitespace","value":" "},
342+
{"type":"NameVariable","value":"233535"},
343+
{"type":"TextWhitespace","value":"\n"},
344+
{"type":"KeywordConstant","value":"true"},
345+
{"type":"TextWhitespace","value":"\n "},
346+
{"type":"Punctuation","value":"]"},
347+
{"type":"TextWhitespace","value":"\n"}
348+
]
+5-5
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
[
22
{"type":"KeywordDeclaration","value":"output"},
33
{"type":"TextWhitespace","value":" "},
4-
{"type":"Text","value":"storageEndpoint"},
4+
{"type":"NameVariable","value":"storageEndpoint"},
55
{"type":"TextWhitespace","value":" "},
6-
{"type":"KeywordType","value":"object"},
6+
{"type":"NameVariable","value":"object"},
77
{"type":"TextWhitespace","value":" "},
88
{"type":"Punctuation","value":"="},
99
{"type":"TextWhitespace","value":" "},
10-
{"type":"Text","value":"stg"},
10+
{"type":"NameVariable","value":"stg"},
1111
{"type":"Punctuation","value":"."},
12-
{"type":"Text","value":"properties"},
12+
{"type":"NameVariable","value":"properties"},
1313
{"type":"Punctuation","value":"."},
14-
{"type":"Text","value":"primaryEndpoints"}
14+
{"type":"NameVariable","value":"primaryEndpoints"}
1515
]
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
11
[
22
{"type":"Punctuation","value":"@"},
3-
{"type":"NameDecorator","value":"description"},
3+
{"type":"NameFunction","value":"description"},
44
{"type":"Punctuation","value":"("},
55
{"type":"LiteralString","value":"'The name of the instance.'"},
66
{"type":"Punctuation","value":")"},
77
{"type":"TextWhitespace","value":"\n"},
88
{"type":"KeywordDeclaration","value":"param"},
99
{"type":"TextWhitespace","value":" "},
10-
{"type":"Text","value":"name"},
10+
{"type":"NameVariable","value":"name"},
1111
{"type":"TextWhitespace","value":" "},
12-
{"type":"NameFunction","value":"string"},
12+
{"type":"NameVariable","value":"string"},
1313
{"type":"TextWhitespace","value":"\n"},
1414
{"type":"Punctuation","value":"@"},
15-
{"type":"NameNamespace","value":"sys."},
16-
{"type":"NameDecorator","value":"description"},
15+
{"type":"NameVariable","value":"sys"},
16+
{"type":"Punctuation","value":"."},
17+
{"type":"NameFunction","value":"description"},
1718
{"type":"Punctuation","value":"("},
1819
{"type":"LiteralString","value":"'The description of the instance to display.'"},
1920
{"type":"Punctuation","value":")"},
2021
{"type":"TextWhitespace","value":"\n"},
2122
{"type":"KeywordDeclaration","value":"param"},
2223
{"type":"TextWhitespace","value":" "},
23-
{"type":"NameDecorator","value":"description"},
24+
{"type":"NameVariable","value":"description"},
2425
{"type":"TextWhitespace","value":" "},
25-
{"type":"NameFunction","value":"string"}
26+
{"type":"NameVariable","value":"string"}
2627
]

‎lexers/testdata/bicep/bicep-resource-conditional.expected

+16-16
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,60 @@
11
[
22
{"type":"KeywordDeclaration","value":"resource"},
33
{"type":"TextWhitespace","value":" "},
4-
{"type":"Text","value":"sa"},
4+
{"type":"NameVariable","value":"sa"},
55
{"type":"TextWhitespace","value":" "},
66
{"type":"LiteralString","value":"'Microsoft.Storage/storageAccounts@2019-06-01'"},
77
{"type":"TextWhitespace","value":" "},
88
{"type":"Punctuation","value":"="},
99
{"type":"TextWhitespace","value":" "},
10-
{"type":"Keyword","value":"if"},
10+
{"type":"KeywordDeclaration","value":"if"},
1111
{"type":"TextWhitespace","value":" "},
1212
{"type":"Punctuation","value":"("},
13-
{"type":"Text","value":"newOrExisting"},
13+
{"type":"NameVariable","value":"newOrExisting"},
1414
{"type":"TextWhitespace","value":" "},
1515
{"type":"Operator","value":"=="},
1616
{"type":"TextWhitespace","value":" "},
17-
{"type":"LiteralStringInterpol","value":"'new'"},
17+
{"type":"LiteralString","value":"'new'"},
1818
{"type":"Punctuation","value":")"},
1919
{"type":"TextWhitespace","value":" "},
2020
{"type":"Punctuation","value":"{"},
2121
{"type":"TextWhitespace","value":"\n "},
22-
{"type":"NameProperty","value":"name"},
22+
{"type":"NameVariable","value":"name"},
2323
{"type":"Punctuation","value":":"},
2424
{"type":"TextWhitespace","value":" "},
25-
{"type":"Text","value":"uniqueStorageName"},
25+
{"type":"NameVariable","value":"uniqueStorageName"},
2626
{"type":"TextWhitespace","value":"\n "},
27-
{"type":"NameProperty","value":"location"},
27+
{"type":"NameVariable","value":"location"},
2828
{"type":"Punctuation","value":":"},
2929
{"type":"TextWhitespace","value":" "},
30-
{"type":"Text","value":"location"},
30+
{"type":"NameVariable","value":"location"},
3131
{"type":"TextWhitespace","value":"\n "},
32-
{"type":"NameProperty","value":"sku"},
32+
{"type":"NameVariable","value":"sku"},
3333
{"type":"Punctuation","value":":"},
3434
{"type":"TextWhitespace","value":" "},
3535
{"type":"Punctuation","value":"{"},
3636
{"type":"TextWhitespace","value":"\n "},
37-
{"type":"NameProperty","value":"name"},
37+
{"type":"NameVariable","value":"name"},
3838
{"type":"Punctuation","value":":"},
3939
{"type":"TextWhitespace","value":" "},
40-
{"type":"Text","value":"storageSKU"},
40+
{"type":"NameVariable","value":"storageSKU"},
4141
{"type":"TextWhitespace","value":"\n "},
4242
{"type":"Punctuation","value":"}"},
4343
{"type":"TextWhitespace","value":"\n "},
44-
{"type":"NameProperty","value":"kind"},
44+
{"type":"NameVariable","value":"kind"},
4545
{"type":"Punctuation","value":":"},
4646
{"type":"TextWhitespace","value":" "},
47-
{"type":"LiteralStringInterpol","value":"'StorageV2'"},
47+
{"type":"LiteralString","value":"'StorageV2'"},
4848
{"type":"TextWhitespace","value":"\n "},
49-
{"type":"NameProperty","value":"properties"},
49+
{"type":"NameVariable","value":"properties"},
5050
{"type":"Punctuation","value":":"},
5151
{"type":"TextWhitespace","value":" "},
5252
{"type":"Punctuation","value":"{"},
5353
{"type":"TextWhitespace","value":"\n "},
54-
{"type":"NameProperty","value":"supportsHttpsTrafficOnly"},
54+
{"type":"NameVariable","value":"supportsHttpsTrafficOnly"},
5555
{"type":"Punctuation","value":":"},
5656
{"type":"TextWhitespace","value":" "},
57-
{"type":"Text","value":"true"},
57+
{"type":"KeywordConstant","value":"true"},
5858
{"type":"TextWhitespace","value":"\n "},
5959
{"type":"Punctuation","value":"}"},
6060
{"type":"TextWhitespace","value":"\n"},

‎lexers/testdata/bicep/bicep-resource-multiple.expected

+19-19
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,66 @@
11
[
22
{"type":"Punctuation","value":"@"},
3-
{"type":"NameDecorator","value":"batchSize"},
3+
{"type":"NameFunction","value":"batchSize"},
44
{"type":"Punctuation","value":"("},
5-
{"type":"Text","value":"3"},
5+
{"type":"NameVariable","value":"3"},
66
{"type":"Punctuation","value":")"},
77
{"type":"TextWhitespace","value":"\n"},
88
{"type":"KeywordDeclaration","value":"resource"},
99
{"type":"TextWhitespace","value":" "},
10-
{"type":"Text","value":"sa"},
10+
{"type":"NameVariable","value":"sa"},
1111
{"type":"TextWhitespace","value":" "},
1212
{"type":"LiteralString","value":"'Microsoft.Storage/storageAccounts@2019-06-01'"},
1313
{"type":"TextWhitespace","value":" "},
1414
{"type":"Punctuation","value":"="},
1515
{"type":"TextWhitespace","value":" "},
1616
{"type":"Punctuation","value":"["},
17-
{"type":"Keyword","value":"for"},
17+
{"type":"KeywordDeclaration","value":"for"},
1818
{"type":"TextWhitespace","value":" "},
19-
{"type":"Text","value":"storageName"},
19+
{"type":"NameVariable","value":"storageName"},
2020
{"type":"TextWhitespace","value":" "},
21-
{"type":"Keyword","value":"in"},
21+
{"type":"KeywordDeclaration","value":"in"},
2222
{"type":"TextWhitespace","value":" "},
23-
{"type":"NameProperty","value":"storageAccounts"},
23+
{"type":"NameVariable","value":"storageAccounts"},
2424
{"type":"Punctuation","value":":"},
2525
{"type":"TextWhitespace","value":" "},
2626
{"type":"Punctuation","value":"{"},
2727
{"type":"TextWhitespace","value":"\n "},
28-
{"type":"NameProperty","value":"name"},
28+
{"type":"NameVariable","value":"name"},
2929
{"type":"Punctuation","value":":"},
3030
{"type":"TextWhitespace","value":" "},
31-
{"type":"Text","value":"storageName"},
31+
{"type":"NameVariable","value":"storageName"},
3232
{"type":"TextWhitespace","value":"\n "},
33-
{"type":"NameProperty","value":"location"},
33+
{"type":"NameVariable","value":"location"},
3434
{"type":"Punctuation","value":":"},
3535
{"type":"TextWhitespace","value":" "},
36-
{"type":"Text","value":"location"},
36+
{"type":"NameVariable","value":"location"},
3737
{"type":"TextWhitespace","value":"\n "},
38-
{"type":"NameProperty","value":"sku"},
38+
{"type":"NameVariable","value":"sku"},
3939
{"type":"Punctuation","value":":"},
4040
{"type":"TextWhitespace","value":" "},
4141
{"type":"Punctuation","value":"{"},
4242
{"type":"TextWhitespace","value":"\n "},
43-
{"type":"NameProperty","value":"name"},
43+
{"type":"NameVariable","value":"name"},
4444
{"type":"Punctuation","value":":"},
4545
{"type":"TextWhitespace","value":" "},
46-
{"type":"Text","value":"storageSKU"},
46+
{"type":"NameVariable","value":"storageSKU"},
4747
{"type":"TextWhitespace","value":"\n "},
4848
{"type":"Punctuation","value":"}"},
4949
{"type":"TextWhitespace","value":"\n "},
50-
{"type":"NameProperty","value":"kind"},
50+
{"type":"NameVariable","value":"kind"},
5151
{"type":"Punctuation","value":":"},
5252
{"type":"TextWhitespace","value":" "},
53-
{"type":"LiteralStringInterpol","value":"'StorageV2'"},
53+
{"type":"LiteralString","value":"'StorageV2'"},
5454
{"type":"TextWhitespace","value":"\n "},
55-
{"type":"NameProperty","value":"properties"},
55+
{"type":"NameVariable","value":"properties"},
5656
{"type":"Punctuation","value":":"},
5757
{"type":"TextWhitespace","value":" "},
5858
{"type":"Punctuation","value":"{"},
5959
{"type":"TextWhitespace","value":"\n "},
60-
{"type":"NameProperty","value":"supportsHttpsTrafficOnly"},
60+
{"type":"NameVariable","value":"supportsHttpsTrafficOnly"},
6161
{"type":"Punctuation","value":":"},
6262
{"type":"TextWhitespace","value":" "},
63-
{"type":"Text","value":"true"},
63+
{"type":"KeywordConstant","value":"true"},
6464
{"type":"TextWhitespace","value":"\n "},
6565
{"type":"Punctuation","value":"}"},
6666
{"type":"TextWhitespace","value":"\n"},
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,19 @@
11
[
22
{"type":"KeywordDeclaration","value":"param"},
33
{"type":"TextWhitespace","value":" "},
4-
{"type":"Text","value":"exampleString"},
4+
{"type":"NameVariable","value":"exampleString"},
55
{"type":"TextWhitespace","value":" "},
6-
{"type":"NameFunction","value":"string"},
6+
{"type":"NameVariable","value":"string"},
77
{"type":"TextWhitespace","value":" "},
88
{"type":"Punctuation","value":"="},
99
{"type":"TextWhitespace","value":" "},
1010
{"type":"LiteralString","value":"'test value'"},
1111
{"type":"TextWhitespace","value":"\n\n"},
1212
{"type":"KeywordDeclaration","value":"var"},
1313
{"type":"TextWhitespace","value":" "},
14-
{"type":"Text","value":"comments"},
14+
{"type":"NameVariable","value":"comments"},
1515
{"type":"TextWhitespace","value":" "},
1616
{"type":"Punctuation","value":"="},
1717
{"type":"TextWhitespace","value":" "},
18-
{"type":"LiteralString","value":"''"},
19-
{"type":"Error","value":"'"},
20-
{"type":"TextWhitespace","value":"\n"},
21-
{"type":"Text","value":"comments"},
22-
{"type":"TextWhitespace","value":" "},
23-
{"type":"CommentSingle","value":"// are included"},
24-
{"type":"TextWhitespace","value":"\n"},
25-
{"type":"CommentMultiline","value":"/* because everything is read as-is */"},
26-
{"type":"TextWhitespace","value":"\n"},
27-
{"type":"LiteralString","value":"''"},
28-
{"type":"Error","value":"'"}
18+
{"type":"LiteralString","value":"'''\ncomments // are included\n/* because everything is read as-is */\n'''"}
2919
]
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
[
2-
{"type":"Text","value":"targetScope"},
2+
{"type":"KeywordDeclaration","value":"targetScope"},
33
{"type":"TextWhitespace","value":" "},
44
{"type":"Punctuation","value":"="},
55
{"type":"TextWhitespace","value":" "},
6-
{"type":"LiteralStringInterpol","value":"'resourceGroup'"},
6+
{"type":"LiteralString","value":"'resourceGroup'"},
77
{"type":"TextWhitespace","value":"\n\n"},
8-
{"type":"Text","value":"targetScope"},
8+
{"type":"KeywordDeclaration","value":"targetScope"},
99
{"type":"TextWhitespace","value":" "},
1010
{"type":"Punctuation","value":"="},
1111
{"type":"TextWhitespace","value":" "},
12-
{"type":"LiteralStringInterpol","value":"'subscription'"},
12+
{"type":"LiteralString","value":"'subscription'"},
1313
{"type":"TextWhitespace","value":"\n\n"},
14-
{"type":"Text","value":"targetScope"},
14+
{"type":"KeywordDeclaration","value":"targetScope"},
1515
{"type":"TextWhitespace","value":" "},
1616
{"type":"Punctuation","value":"="},
1717
{"type":"TextWhitespace","value":" "},
18-
{"type":"LiteralStringInterpol","value":"'managementGroup'"},
18+
{"type":"LiteralString","value":"'managementGroup'"},
1919
{"type":"TextWhitespace","value":"\n\n"},
20-
{"type":"Text","value":"targetScope"},
20+
{"type":"KeywordDeclaration","value":"targetScope"},
2121
{"type":"TextWhitespace","value":" "},
2222
{"type":"Punctuation","value":"="},
2323
{"type":"TextWhitespace","value":" "},
24-
{"type":"LiteralStringInterpol","value":"'tenant'"}
24+
{"type":"LiteralString","value":"'tenant'"}
2525
]
+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
type fizz = string
2+
3+
type buzz = fizz[]
4+
5+
type pop = {
6+
krispies: 'snap'|'crackle'|'pop'
7+
}
+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
[
2+
{"type":"KeywordDeclaration","value":"type"},
3+
{"type":"TextWhitespace","value":" "},
4+
{"type":"NameVariable","value":"fizz"},
5+
{"type":"TextWhitespace","value":" "},
6+
{"type":"Punctuation","value":"="},
7+
{"type":"TextWhitespace","value":" "},
8+
{"type":"NameVariable","value":"string"},
9+
{"type":"TextWhitespace","value":"\n\n"},
10+
{"type":"KeywordDeclaration","value":"type"},
11+
{"type":"TextWhitespace","value":" "},
12+
{"type":"NameVariable","value":"buzz"},
13+
{"type":"TextWhitespace","value":" "},
14+
{"type":"Punctuation","value":"="},
15+
{"type":"TextWhitespace","value":" "},
16+
{"type":"NameVariable","value":"fizz"},
17+
{"type":"Punctuation","value":"[]"},
18+
{"type":"TextWhitespace","value":"\n\n"},
19+
{"type":"KeywordDeclaration","value":"type"},
20+
{"type":"TextWhitespace","value":" "},
21+
{"type":"NameVariable","value":"pop"},
22+
{"type":"TextWhitespace","value":" "},
23+
{"type":"Punctuation","value":"="},
24+
{"type":"TextWhitespace","value":" "},
25+
{"type":"Punctuation","value":"{"},
26+
{"type":"TextWhitespace","value":"\n "},
27+
{"type":"NameVariable","value":"krispies"},
28+
{"type":"Punctuation","value":":"},
29+
{"type":"TextWhitespace","value":" "},
30+
{"type":"LiteralString","value":"'snap'"},
31+
{"type":"Punctuation","value":"|"},
32+
{"type":"LiteralString","value":"'crackle'"},
33+
{"type":"Punctuation","value":"|"},
34+
{"type":"LiteralString","value":"'pop'"},
35+
{"type":"TextWhitespace","value":"\n"},
36+
{"type":"Punctuation","value":"}"}
37+
]
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,28 @@
11
[
22
{"type":"KeywordDeclaration","value":"var"},
33
{"type":"TextWhitespace","value":" "},
4-
{"type":"Text","value":"storagePrefix"},
4+
{"type":"NameVariable","value":"storagePrefix"},
55
{"type":"TextWhitespace","value":" "},
66
{"type":"Punctuation","value":"="},
77
{"type":"TextWhitespace","value":" "},
8-
{"type":"LiteralStringInterpol","value":"'dev'"},
8+
{"type":"LiteralString","value":"'dev'"},
99
{"type":"TextWhitespace","value":"\n"},
1010
{"type":"KeywordDeclaration","value":"var"},
1111
{"type":"TextWhitespace","value":" "},
12-
{"type":"Text","value":"uniqueStorageName"},
12+
{"type":"NameVariable","value":"uniqueStorageName"},
1313
{"type":"TextWhitespace","value":" "},
1414
{"type":"Punctuation","value":"="},
1515
{"type":"TextWhitespace","value":" "},
16-
{"type":"LiteralStringInterpol","value":"'${storagePrefix}${uniqueString(resourceGroup().id)}'"}
16+
{"type":"LiteralString","value":"'"},
17+
{"type":"LiteralStringInterpol","value":"${"},
18+
{"type":"NameVariable","value":"storagePrefix"},
19+
{"type":"LiteralStringInterpol","value":"}${"},
20+
{"type":"NameFunction","value":"uniqueString"},
21+
{"type":"Punctuation","value":"("},
22+
{"type":"NameFunction","value":"resourceGroup"},
23+
{"type":"Punctuation","value":"()."},
24+
{"type":"NameVariable","value":"id"},
25+
{"type":"Punctuation","value":")"},
26+
{"type":"LiteralStringInterpol","value":"}"},
27+
{"type":"LiteralString","value":"'"}
1728
]

0 commit comments

Comments
 (0)
Please sign in to comment.