Skip to content

Commit d5822ec

Browse files
authored
Merge pull request #63 from fdncred/tweak_tmlang
add some tweaks to the auto-generated syntax
2 parents 386e2fe + 635b123 commit d5822ec

File tree

2 files changed

+47
-22
lines changed

2 files changed

+47
-22
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,4 @@ All notable changes to the "vscode-nushell-lang" extension will be documented in
103103
- better automatic syntax from @Yethal
104104
- better block variable highlighting
105105
- remove themes + some cleanup
106+
- tweak auto-generated syntax

syntaxes/nushell.tmLanguage.json

Lines changed: 46 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
{
88
"include": "#keywords"
99
},
10+
{
11+
"include": "#interpolated_strings"
12+
},
1013
{
1114
"include": "#strings"
1215
},
@@ -31,6 +34,12 @@
3134
{
3235
"include": "#variable"
3336
},
37+
{
38+
"include": "#variable_keyword"
39+
},
40+
{
41+
"include": "#for_variable"
42+
},
3443
{
3544
"include": "#function"
3645
},
@@ -150,11 +159,11 @@
150159
},
151160
{
152161
"name": "keyword.other.m",
153-
"match": "\\b(metadata|module|median|mkdir|merge|move|melt|mean|math|min|max|mv)\\b"
162+
"match": "\\b(metadata|median|mkdir|merge|move|melt|mean|math|min|max|mv)\\b"
154163
},
155164
{
156165
"name": "keyword.other.l",
157-
"match": "\\b(lowercase|load-env|let-env|length|ls-df|lines|limit|list|last|lit|let|ls)\\b"
166+
"match": "\\b(lowercase|load-env|length|ls-df|lines|limit|list|last|lit|ls)\\b"
158167
},
159168
{
160169
"name": "keyword.other.k_sub",
@@ -198,7 +207,7 @@
198207
},
199208
{
200209
"name": "keyword.other.f",
201-
"match": "\\b(filter-with|fill-null|flatten|fill-na|format|filter|first|field|fetch|from|find|for|fmt|fn)\\b"
210+
"match": "\\b(filter-with|fetch|fill-null|flatten|fill-na|format|filter|first|field|from|find|fmt|fn)\\b"
202211
},
203212
{
204213
"name": "keyword.other.e_sub",
@@ -218,7 +227,7 @@
218227
},
219228
{
220229
"name": "keyword.other.e",
221-
"match": "\\b(export-env|expr-not|explode|extern|export|encode|every|enter|exit|exec|echo|each|env)\\b"
230+
"match": "\\b(export-env|expr-not|explode|export|encode|every|enter|exit|exec|echo|each|env|else)\\b"
222231
},
223232
{
224233
"name": "keyword.other.d_sub",
@@ -238,7 +247,7 @@
238247
},
239248
{
240249
"name": "keyword.other.d",
241-
"match": "\\b(drop-duplicates|drop-nulls|describe|dummies|default|def-env|dtypes|df-not|decode|debug|drop|date|def|du|do)\\b"
250+
"match": "\\b(drop-duplicates|drop-nulls|describe|dummies|default|dtypes|df-not|decode|debug|drop|date|du|do)\\b"
242251
},
243252
{
244253
"name": "keyword.other.c_sub",
@@ -266,19 +275,34 @@
266275
},
267276
{
268277
"name": "keyword.other.a",
269-
"match": "\\b(as-datetime|arg-unique|agg-groups|arg-where|all-false|arg-true|arg-sort|all-true|as-date|arg-min|arg-max|append|alias|ansi|ast|any|and|all|agg|as)\\b"
278+
"match": "\\b(as-datetime|arg-unique|agg-groups|arg-where|all-false|arg-true|arg-sort|all-true|as-date|arg-min|arg-max|append|ansi|ast|any|and|all|agg|as)\\b"
279+
},
280+
{
281+
"name": "keyword.other.unit",
282+
"match": "\\btrue|false"
270283
}
271284
]
272285
},
286+
"interpolated_strings":
287+
{
288+
"name": "string.interpolated.nushell",
289+
"begin": "\\$\"|\\$'|\\$`",
290+
"end": "\"|'|`"
291+
},
273292
"strings":
274293
{
275294
"name": "string.quoted.double.nushell",
276295
"begin": "\"|'|`",
277296
"end": "\"|'|`"
278297
},
298+
"variable_keyword":
299+
{
300+
"match": "\\$\\w+",
301+
"name": "variable.language.nushell"
302+
},
279303
"variable":
280304
{
281-
"match": "(alias|let|let-env)\\s+[\\$'\"]?([a-z A-Z0-9_-]+)['\"]?|(\\$[a-zA-Z0-9_\\-]+)|(\\|)([$a-zA-Z0-9-]+)[\\s,]+([$a-zA-Z0-9-]+)(\\|)",
305+
"match": "(alias|let|let-env)\\s+[\\$'\"]?([$a-z A-Z0-9_-]+)['\"]?",
282306
"name": "variable.nushell",
283307
"captures":
284308
{
@@ -289,26 +313,26 @@
289313
"2":
290314
{
291315
"name": "variable.name.nushell"
292-
},
293-
"3":
294-
{
295-
"name": "variable.name.nushell"
296-
},
297-
"4":
298-
{
299-
"name": "punctuation.nushell"
300-
},
301-
"5":
316+
}
317+
}
318+
},
319+
"for_variable":
320+
{
321+
"match": "(for)\\s+([a-z A-Z0-9_-]+)(in)",
322+
"name": "variable.nushell",
323+
"captures":
324+
{
325+
"1":
302326
{
303-
"name": "variable.name.nushell"
327+
"name": "keyword.other.nushell"
304328
},
305-
"6":
329+
"2":
306330
{
307331
"name": "variable.name.nushell"
308332
},
309-
"7":
333+
"3":
310334
{
311-
"name": "punctuation.nushell"
335+
"name": "keyword.other.nushell"
312336
}
313337
}
314338
},
@@ -382,7 +406,7 @@
382406
},
383407
"function":
384408
{
385-
"match": "\\b(def|def-env|extern)\\s+([\"'a-zA-Z0-9_\\- ]{1,})",
409+
"match": "\\b(def|def-env|extern|module|overlay)\\s+([\"'a-zA-Z0-9_\\- ]{1,})",
386410
"name": "entity.name",
387411
"captures":
388412
{

0 commit comments

Comments
 (0)