|
7 | 7 | { |
8 | 8 | "include": "#keywords" |
9 | 9 | }, |
| 10 | + { |
| 11 | + "include": "#interpolated_strings" |
| 12 | + }, |
10 | 13 | { |
11 | 14 | "include": "#strings" |
12 | 15 | }, |
|
31 | 34 | { |
32 | 35 | "include": "#variable" |
33 | 36 | }, |
| 37 | + { |
| 38 | + "include": "#variable_keyword" |
| 39 | + }, |
| 40 | + { |
| 41 | + "include": "#for_variable" |
| 42 | + }, |
34 | 43 | { |
35 | 44 | "include": "#function" |
36 | 45 | }, |
|
150 | 159 | }, |
151 | 160 | { |
152 | 161 | "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" |
154 | 163 | }, |
155 | 164 | { |
156 | 165 | "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" |
158 | 167 | }, |
159 | 168 | { |
160 | 169 | "name": "keyword.other.k_sub", |
|
198 | 207 | }, |
199 | 208 | { |
200 | 209 | "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" |
202 | 211 | }, |
203 | 212 | { |
204 | 213 | "name": "keyword.other.e_sub", |
|
218 | 227 | }, |
219 | 228 | { |
220 | 229 | "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" |
222 | 231 | }, |
223 | 232 | { |
224 | 233 | "name": "keyword.other.d_sub", |
|
238 | 247 | }, |
239 | 248 | { |
240 | 249 | "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" |
242 | 251 | }, |
243 | 252 | { |
244 | 253 | "name": "keyword.other.c_sub", |
|
266 | 275 | }, |
267 | 276 | { |
268 | 277 | "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" |
270 | 283 | } |
271 | 284 | ] |
272 | 285 | }, |
| 286 | + "interpolated_strings": |
| 287 | + { |
| 288 | + "name": "string.interpolated.nushell", |
| 289 | + "begin": "\\$\"|\\$'|\\$`", |
| 290 | + "end": "\"|'|`" |
| 291 | + }, |
273 | 292 | "strings": |
274 | 293 | { |
275 | 294 | "name": "string.quoted.double.nushell", |
276 | 295 | "begin": "\"|'|`", |
277 | 296 | "end": "\"|'|`" |
278 | 297 | }, |
| 298 | + "variable_keyword": |
| 299 | + { |
| 300 | + "match": "\\$\\w+", |
| 301 | + "name": "variable.language.nushell" |
| 302 | + }, |
279 | 303 | "variable": |
280 | 304 | { |
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_-]+)['\"]?", |
282 | 306 | "name": "variable.nushell", |
283 | 307 | "captures": |
284 | 308 | { |
|
289 | 313 | "2": |
290 | 314 | { |
291 | 315 | "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": |
302 | 326 | { |
303 | | - "name": "variable.name.nushell" |
| 327 | + "name": "keyword.other.nushell" |
304 | 328 | }, |
305 | | - "6": |
| 329 | + "2": |
306 | 330 | { |
307 | 331 | "name": "variable.name.nushell" |
308 | 332 | }, |
309 | | - "7": |
| 333 | + "3": |
310 | 334 | { |
311 | | - "name": "punctuation.nushell" |
| 335 | + "name": "keyword.other.nushell" |
312 | 336 | } |
313 | 337 | } |
314 | 338 | }, |
|
382 | 406 | }, |
383 | 407 | "function": |
384 | 408 | { |
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,})", |
386 | 410 | "name": "entity.name", |
387 | 411 | "captures": |
388 | 412 | { |
|
0 commit comments