github-linguist 6.1.0 → 6.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/annotation.liquidhaskell.haskell.json +14 -14
  3. data/grammars/hint.haskell.json +14 -14
  4. data/grammars/hint.message.haskell.json +14 -14
  5. data/grammars/hint.type.haskell.json +14 -14
  6. data/grammars/markdown.haxe.codeblock.json +26 -0
  7. data/grammars/markdown.hxml.codeblock.json +26 -0
  8. data/grammars/source.angelscript.json +1 -1
  9. data/grammars/source.ballerina.json +973 -61
  10. data/grammars/source.csound.json +1 -1
  11. data/grammars/source.emacs.lisp.json +35 -0
  12. data/grammars/source.firestore.json +289 -0
  13. data/grammars/source.gfm.json +7 -7
  14. data/grammars/source.haskell.json +14 -14
  15. data/grammars/source.hql.json +492 -0
  16. data/grammars/source.hsig.json +14 -14
  17. data/grammars/source.hx.json +14 -6
  18. data/grammars/source.hx.type.json +8 -0
  19. data/grammars/source.jison.json +1 -1
  20. data/grammars/source.js.json +1 -1
  21. data/grammars/source.powershell.json +384 -141
  22. data/grammars/source.q.json +120 -0
  23. data/grammars/source.q_output.json +348 -0
  24. data/grammars/source.rascal.json +0 -1
  25. data/grammars/source.sas.json +3 -3
  26. data/grammars/source.solidity.json +84 -13
  27. data/grammars/source.ts.json +226 -85
  28. data/grammars/source.tsx.json +230 -89
  29. data/grammars/source.viml.json +73 -18
  30. data/grammars/text.hamlc.json +1 -1
  31. data/grammars/text.html.markdown.source.gfm.apib.json +11 -2
  32. data/grammars/text.html.mediawiki.json +6 -6
  33. data/grammars/text.html.php.blade.json +3 -3
  34. data/grammars/text.tex.latex.haskell.json +14 -14
  35. data/lib/linguist/generated.rb +27 -1
  36. data/lib/linguist/heuristics.rb +8 -0
  37. data/lib/linguist/language.rb +12 -15
  38. data/lib/linguist/languages.json +1 -1
  39. data/lib/linguist/languages.yml +55 -10
  40. data/lib/linguist/samples.json +1623 -158
  41. data/lib/linguist/strategy/modeline.rb +11 -11
  42. data/lib/linguist/version.rb +1 -1
  43. metadata +9 -3
  44. data/grammars/source.j.json +0 -46
@@ -215,7 +215,7 @@
215
215
  {
216
216
  "name": "meta.ctor.type-declaration.haskell.hsig",
217
217
  "contentName": "meta.type-signature.haskell.hsig",
218
- "begin": "^([ \\t]*)(?:(?:((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))))",
218
+ "begin": "^([ \\t]*)(?:(?:((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))))",
219
219
  "end": "^(?!\\1[ \\t]|[ \\t]*$)",
220
220
  "patterns": [
221
221
  {
@@ -244,7 +244,7 @@
244
244
  "patterns": [
245
245
  {
246
246
  "name": "meta.declaration.type.data.haskell.hsig",
247
- "begin": "^([ \\t]*)(data|newtype)\\s+((?:(?!=|where).)*)",
247
+ "begin": "^([ \\t]*)(data|newtype)\\s+((?:(?!(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:=|--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))|(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))where(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|{-).|{-.*?-})*)",
248
248
  "end": "^(?!\\1[ \\t]|[ \\t]*$)",
249
249
  "patterns": [
250
250
  {
@@ -429,7 +429,7 @@
429
429
  "patterns": [
430
430
  {
431
431
  "name": "keyword.other.double-colon.haskell.hsig",
432
- "match": "(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))"
432
+ "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
433
433
  }
434
434
  ]
435
435
  },
@@ -507,8 +507,8 @@
507
507
  {
508
508
  "name": "meta.function.type-declaration.haskell.hsig",
509
509
  "contentName": "meta.type-signature.haskell.hsig",
510
- "begin": "^([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))))",
511
- "end": "^(?!\\1[ \\t]|[ \\t]*$)|(?=(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))",
510
+ "begin": "^([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))))",
511
+ "end": "^(?!\\1[ \\t]|[ \\t]*$)|(?=(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))",
512
512
  "patterns": [
513
513
  {
514
514
  "include": "#type_signature"
@@ -1000,8 +1000,8 @@
1000
1000
  {
1001
1001
  "name": "meta.multiline.type-declaration.haskell.hsig",
1002
1002
  "contentName": "meta.type-signature.haskell.hsig",
1003
- "begin": "^([ \\t]*)((?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))",
1004
- "end": "^(?!\\1|[ \\t]*$)|(?=(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))",
1003
+ "begin": "^([ \\t]*)((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))",
1004
+ "end": "^(?!\\1|[ \\t]*$)|(?=(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))",
1005
1005
  "patterns": [
1006
1006
  {
1007
1007
  "include": "#type_signature"
@@ -1114,8 +1114,8 @@
1114
1114
  {
1115
1115
  "name": "meta.record-field.type-declaration.haskell.hsig",
1116
1116
  "contentName": "meta.type-signature.haskell.hsig",
1117
- "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))))",
1118
- "end": "(?=(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))))|})",
1117
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))))",
1118
+ "end": "(?=(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))))|})",
1119
1119
  "patterns": [
1120
1120
  {
1121
1121
  "include": "#type_signature"
@@ -1175,7 +1175,7 @@
1175
1175
  "scoped_type": {
1176
1176
  "patterns": [
1177
1177
  {
1178
- "match": "\\(((?\u003cparen\u003e(?:[^\\(\\)]|\\(\\g\u003cparen\u003e\\))*)(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?\u003cparen2\u003e(?:[^\\(\\)]|\\(\\g\u003cparen2\u003e\\))*))\\)",
1178
+ "match": "\\(((?\u003cparen\u003e(?:(?!\\(|\\)).|\\(\\g\u003cparen\u003e\\))*)(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))(?\u003cparen2\u003e(?:(?!\\(|\\)).|\\(\\g\u003cparen2\u003e\\))*))\\)",
1179
1179
  "captures": {
1180
1180
  "1": {
1181
1181
  "patterns": [
@@ -1187,7 +1187,7 @@
1187
1187
  }
1188
1188
  },
1189
1189
  {
1190
- "match": "((?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))(.*?)(?=({-|(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(--|\u003c-|=))(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))|$)",
1190
+ "match": "((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))((?:(?!{-|(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:\u003c-|=|--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))|$).|{-.*?-})*)",
1191
1191
  "captures": {
1192
1192
  "1": {
1193
1193
  "name": "keyword.other.double-colon.haskell.hsig"
@@ -1207,7 +1207,7 @@
1207
1207
  "scoped_type_override": {
1208
1208
  "patterns": [
1209
1209
  {
1210
- "match": "^([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))))((?:(?!(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))--|{-)).)*)(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))",
1210
+ "match": "^([ \\t]*)(?:(?:((?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))))((?:(?!{-|(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))).|{-.*?-})*)((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))))",
1211
1211
  "captures": {
1212
1212
  "2": {
1213
1213
  "patterns": [
@@ -1419,11 +1419,11 @@
1419
1419
  },
1420
1420
  {
1421
1421
  "name": "keyword.other.arrow.haskell.hsig",
1422
- "match": "(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))"
1422
+ "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
1423
1423
  },
1424
1424
  {
1425
1425
  "name": "keyword.other.big-arrow.haskell.hsig",
1426
- "match": "(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))"
1426
+ "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
1427
1427
  },
1428
1428
  {
1429
1429
  "name": "keyword.operator.promoted.haskell.hsig",
@@ -548,7 +548,7 @@
548
548
  },
549
549
  "enum": {
550
550
  "name": "meta.enum.hx",
551
- "begin": "(?=enum)",
551
+ "begin": "(?=enum\\s+[A-Z])",
552
552
  "end": "(?\u003c=\\})|(;)",
553
553
  "patterns": [
554
554
  {
@@ -1347,8 +1347,16 @@
1347
1347
  }
1348
1348
  },
1349
1349
  "modifiers": {
1350
- "name": "storage.modifier.hx",
1351
- "match": "\\b(public|private|static|dynamic|inline|macro|extern|override|final)\\b"
1350
+ "patterns": [
1351
+ {
1352
+ "name": "storage.modifier.hx",
1353
+ "match": "\\b(public|private|static|dynamic|inline|macro|extern|override|enum)\\b"
1354
+ },
1355
+ {
1356
+ "name": "storage.modifier.hx",
1357
+ "match": "\\b(final)\\b(?=\\s+(public|private|static|dynamic|inline|macro|extern|override|function))"
1358
+ }
1359
+ ]
1352
1360
  },
1353
1361
  "modifiers-inheritance": {
1354
1362
  "name": "storage.modifier.hx",
@@ -2094,7 +2102,7 @@
2094
2102
  },
2095
2103
  "typedef-extension": {
2096
2104
  "begin": "\u003e",
2097
- "end": ",",
2105
+ "end": ",|$",
2098
2106
  "patterns": [
2099
2107
  {
2100
2108
  "include": "#type"
@@ -2178,7 +2186,7 @@
2178
2186
  }
2179
2187
  },
2180
2188
  "variable": {
2181
- "begin": "(?=\\bvar\\b)",
2189
+ "begin": "(?=\\b(var|final)\\b)",
2182
2190
  "end": "(?=$)|(;)",
2183
2191
  "patterns": [
2184
2192
  {
@@ -2244,7 +2252,7 @@
2244
2252
  }
2245
2253
  },
2246
2254
  "variable-name": {
2247
- "begin": "\\b(var)\\b",
2255
+ "begin": "\\b(var|final)\\b",
2248
2256
  "end": "(?=$)|([_a-zA-Z]\\w*)",
2249
2257
  "beginCaptures": {
2250
2258
  "1": {
@@ -0,0 +1,8 @@
1
+ {
2
+ "scopeName": "source.hx.type",
3
+ "patterns": [
4
+ {
5
+ "include": "source.hx#type"
6
+ }
7
+ ]
8
+ }
@@ -656,7 +656,7 @@
656
656
  }
657
657
  },
658
658
  "injections": {
659
- "L:(meta.action.jison - (comment | string)), source.js.embedded.source": {
659
+ "L:(meta.action.jison - (comment | string)), source.js.embedded.jison": {
660
660
  "patterns": [
661
661
  {
662
662
  "name": "variable.language.semantic-value.jison",
@@ -944,7 +944,7 @@
944
944
  },
945
945
  {
946
946
  "name": "string.regexp.js",
947
- "begin": "(?\u003c=[\\[=(?:+,!]|^|return|=\u003e|\u0026\u0026|\\|\\|)\\s*(/)(?![/*+?])(?=.*/)",
947
+ "begin": "(?\u003c=[\\[{=(?:+*,!~-]|^|return|=\u003e|\u0026\u0026|\\|\\|)\\s*(/)(?![/*+?])(?=.*/)",
948
948
  "end": "(/)([gimsuy]*)",
949
949
  "patterns": [
950
950
  {
@@ -13,25 +13,15 @@
13
13
  ],
14
14
  "beginCaptures": {
15
15
  "0": {
16
- "name": "punctuation.start.definition.comment.block.powershell"
16
+ "name": "punctuation.definition.comment.block.begin.powershell"
17
17
  }
18
18
  },
19
19
  "endCaptures": {
20
20
  "0": {
21
- "name": "punctuation.end.definition.comment.block.powershell"
21
+ "name": "punctuation.definition.comment.block.end.powershell"
22
22
  }
23
23
  }
24
24
  },
25
- {
26
- "name": "comment.line.number-sign.powershell",
27
- "begin": "(?\u003c![\\\\-])#",
28
- "end": "$",
29
- "patterns": [
30
- {
31
- "include": "#commentEmbeddedDocs"
32
- }
33
- ]
34
- },
35
25
  {
36
26
  "name": "keyword.operator.redirection.powershell",
37
27
  "match": "[2-6]\u003e\u00261|\u003e\u003e|\u003e|\u003c\u003c|\u003c|\u003e|\u003e\\||[1-6]\u003e|[1-6]\u003e\u003e"
@@ -39,6 +29,9 @@
39
29
  {
40
30
  "include": "#commands"
41
31
  },
32
+ {
33
+ "include": "#commentLine"
34
+ },
42
35
  {
43
36
  "include": "#variable"
44
37
  },
@@ -51,28 +44,20 @@
51
44
  {
52
45
  "include": "#attribute"
53
46
  },
47
+ {
48
+ "include": "#UsingDirective"
49
+ },
54
50
  {
55
51
  "include": "#type"
56
52
  },
57
53
  {
58
- "name": "string.quoted.double.powershell",
59
- "begin": "(?\u003c!(?\u003c!`)\")\"",
60
- "end": "\"(?!\")",
61
- "patterns": [
62
- {
63
- "include": "#variableNoProperty"
64
- },
65
- {
66
- "include": "#doubleQuotedStringEscapes"
67
- },
68
- {
69
- "include": "#interpolation"
70
- },
71
- {
72
- "name": "keyword.other.powershell",
73
- "match": "`\\s*$"
74
- }
75
- ]
54
+ "include": "#hashtable"
55
+ },
56
+ {
57
+ "include": "#doubleQuotedString"
58
+ },
59
+ {
60
+ "include": "#scriptblock"
76
61
  },
77
62
  {
78
63
  "include": "#doubleQuotedStringEscapes"
@@ -120,48 +105,72 @@
120
105
  },
121
106
  {
122
107
  "name": "meta.group.array-expression.powershell",
123
- "begin": "@\\(",
108
+ "begin": "(@)(\\()",
124
109
  "end": "\\)",
125
110
  "patterns": [
126
111
  {
127
112
  "include": "$self"
128
113
  }
129
114
  ],
130
- "captures": {
115
+ "beginCaptures": {
116
+ "1": {
117
+ "name": "keyword.other.array.begin.powershell"
118
+ },
119
+ "2": {
120
+ "name": "punctuation.section.group.begin.powershell"
121
+ }
122
+ },
123
+ "endCaptures": {
131
124
  "0": {
132
- "name": "keyword.other.powershell"
125
+ "name": "punctuation.section.group.end.powershell"
133
126
  }
134
127
  }
135
128
  },
136
129
  {
137
130
  "name": "meta.group.complex.subexpression.powershell",
138
- "begin": "\\$\\(",
131
+ "begin": "(\\$)(\\()",
139
132
  "end": "\\)",
140
133
  "patterns": [
141
134
  {
142
135
  "include": "$self"
143
136
  }
144
137
  ],
145
- "captures": {
138
+ "beginCaptures": {
139
+ "1": {
140
+ "name": "keyword.other.variable.definition.powershell"
141
+ },
142
+ "2": {
143
+ "name": "punctuation.section.group.begin.powershell"
144
+ }
145
+ },
146
+ "endCaptures": {
146
147
  "0": {
147
- "name": "keyword.other.powershell"
148
+ "name": "punctuation.section.group.end.powershell"
148
149
  }
149
150
  }
150
151
  },
151
152
  {
152
- "name": "keyword.operator.logical.powershell",
153
- "match": "(?\u003c!\\w)-([ci]?[lg][te]|eq|ne)"
153
+ "name": "support.function.powershell",
154
+ "match": "(\\b(([A-Za-z0-9\\-_\\.]+)\\.(?i:exe|com|cmd|bat))\\b)"
154
155
  },
155
156
  {
156
- "name": "support.function.powershell",
157
- "match": "(?i:[a-z][a-z0-9]+-?[a-z][a-z0-9]+)(?i:\\.(?i:exe|cmd|bat|ps1))"
157
+ "name": "keyword.control.powershell",
158
+ "match": "(?\u003c!\\w|-|\\.)((?i:begin|break|catch|continue|data|default|define|do|dynamicparam|else|elseif|end|exit|finally|for|from|if|in|inlinescript|parallel|param|process|return|sequence|switch|throw|trap|try|until|var|while)|%|\\?)(?!\\w)"
159
+ },
160
+ {
161
+ "name": "keyword.control.powershell",
162
+ "match": "(?\u003c!\\w|-|[^\\)]\\.)((?i:(foreach|where)(?!-object))|%|\\?)(?!\\w)"
158
163
  },
159
164
  {
160
165
  "name": "keyword.control.powershell",
161
- "match": "(?\u003c!\\w)((?i:begin|break|catch|continue|data|define|do|dynamicparam|else|elseif|end|exit|finally|for|foreach(?!-object)|from|if|in|inlinescript|parallel|param|process|return|switch|throw|trap|try|until|using|var|where(?!=-object)|while)|%|\\?)(?!\\w)"
166
+ "match": "(?\u003c!\\w)(--%)(?!\\w)"
162
167
  },
163
168
  {
164
- "match": "(?\u003c!\\w)((?i:class)|%|\\?)(?:\\s)+((?:\\p{L}|\\d|_|-|)+)\\b",
169
+ "name": "storage.modifier.powershell",
170
+ "match": "(?\u003c!\\w)((?i:hidden|static))(?!\\w)"
171
+ },
172
+ {
173
+ "match": "(?\u003c!\\w|-)((?i:class)|%|\\?)(?:\\s)+((?:\\p{L}|\\d|_|-|)+)\\b",
165
174
  "captures": {
166
175
  "1": {
167
176
  "name": "storage.type.powershell"
@@ -189,7 +198,7 @@
189
198
  },
190
199
  {
191
200
  "name": "keyword.operator.bitwise.powershell",
192
- "match": "(?\u003c!\\w)-(?i:band|bor|bnot|bxor)(?!\\p{L})"
201
+ "match": "(?\u003c!\\w)-(?i:band|bor|bnot|bxor|shl|shr)(?!\\p{L})"
193
202
  },
194
203
  {
195
204
  "name": "keyword.operator.string-format.powershell",
@@ -209,51 +218,132 @@
209
218
  },
210
219
  {
211
220
  "name": "keyword.operator.range.powershell",
212
- "match": "(?\u003c!\\s|^)\\.\\.(?=\\d|\\(|\\$)"
221
+ "match": "(?\u003c!\\s|^)\\.\\.(?=\\-?\\d|\\(|\\$)"
213
222
  }
214
223
  ],
215
224
  "repository": {
225
+ "RequiresDirective": {
226
+ "name": "meta.requires.powershell",
227
+ "begin": "(?\u003c=#)(?i:(requires))\\s",
228
+ "end": "$",
229
+ "patterns": [
230
+ {
231
+ "name": "keyword.other.powershell",
232
+ "match": "\\-(?i:Modules|PSSnapin|RunAsAdministrator|ShellId|Version)"
233
+ },
234
+ {
235
+ "name": "variable.parameter.powershell",
236
+ "match": "(?\u003c!-)\\b\\p{L}+|\\d+(?:\\.\\d+)*"
237
+ },
238
+ {
239
+ "include": "#hashtable"
240
+ }
241
+ ],
242
+ "beginCaptures": {
243
+ "0": {
244
+ "name": "keyword.control.requires.powershell"
245
+ }
246
+ }
247
+ },
248
+ "UsingDirective": {
249
+ "match": "(?\u003c!\\w)(?i:(using))\\s+(?i:(namespace|module))\\s+(?i:((?:\\w+(?:\\.)?)+))",
250
+ "captures": {
251
+ "1": {
252
+ "name": "keyword.control.using.powershell"
253
+ },
254
+ "2": {
255
+ "name": "keyword.other.powershell"
256
+ },
257
+ "3": {
258
+ "name": "variable.parameter.powershell"
259
+ }
260
+ }
261
+ },
216
262
  "attribute": {
217
- "begin": "\\[(\\p{L}|\\.|``\\d+)+(?=\\()",
218
- "end": "\\]",
263
+ "name": "meta.attribute.powershell",
264
+ "begin": "(\\[)\\s*\\b(?i)(cmdletbinding|alias|outputtype|parameter|validatenotnull|validatenotnullorempty|validatecount|validateset|allownull|allowemptycollection|allowemptystring|validatescript|validaterange|validatepattern|validatelength)\\b",
265
+ "end": "(\\])",
219
266
  "patterns": [
220
267
  {
221
- "name": "entity.other.attribute-name",
222
268
  "begin": "\\(",
223
269
  "end": "\\)",
224
270
  "patterns": [
225
271
  {
226
- "name": "entity.other.attribute-name.powershell",
227
- "match": "(\\w+)\\s*=?([^\"']*?|'[^']*?'|\"[^\"]*?\")?(?=,|\\))",
272
+ "include": "#variable"
273
+ },
274
+ {
275
+ "include": "#variableNoProperty"
276
+ },
277
+ {
278
+ "include": "#hashtable"
279
+ },
280
+ {
281
+ "include": "#scriptblock"
282
+ },
283
+ {
284
+ "include": "#doubleQuotedStringEscapes"
285
+ },
286
+ {
287
+ "include": "#doubleQuotedString"
288
+ },
289
+ {
290
+ "include": "#type"
291
+ },
292
+ {
293
+ "include": "#numericConstant"
294
+ },
295
+ {
296
+ "include": "#doubleQuotedString"
297
+ },
298
+ {
299
+ "include": "$self"
300
+ },
301
+ {
302
+ "match": "(?i)\\b(mandatory|valuefrompipeline|valuefrompipelinebypropertyname|valuefromremainingarguments|position|parametersetname|defaultparametersetname|supportsshouldprocess|positionalbinding|helpuri|confirmimpact|helpmessage)\\b(?:\\s+)?(=)",
228
303
  "captures": {
229
- "0": {
230
- "name": "entity.other.attribute.parameter.powershell"
231
- },
232
304
  "1": {
233
- "name": "constant.language.powershell"
305
+ "name": "variable.parameter.attribute.powershell"
234
306
  },
235
307
  "2": {
236
- "name": "variable.other.powershell"
308
+ "name": "keyword.operator.assignment.powershell"
237
309
  }
238
310
  }
239
311
  },
240
312
  {
241
- "include": "#variable"
313
+ "name": "string.quoted.single.powershell",
314
+ "begin": "(?\u003c!')'",
315
+ "end": "'(?!')",
316
+ "patterns": [
317
+ {
318
+ "name": "constant.character.escape.powershell",
319
+ "match": "''"
320
+ }
321
+ ]
322
+ }
323
+ ],
324
+ "beginCaptures": {
325
+ "0": {
326
+ "name": "punctuation.section.group.begin.powershell"
242
327
  }
243
- ]
328
+ },
329
+ "endCaptures": {
330
+ "0": {
331
+ "name": "punctuation.section.group.end.powershell"
332
+ }
333
+ }
244
334
  }
245
335
  ],
246
336
  "beginCaptures": {
247
- "0": {
248
- "name": "entity.name.tag"
249
- },
250
337
  "1": {
251
- "name": "entity.name.tag"
338
+ "name": "punctuation.section.bracket.begin.powershell"
339
+ },
340
+ "2": {
341
+ "name": "support.function.attribute.powershell"
252
342
  }
253
343
  },
254
344
  "endCaptures": {
255
- "0": {
256
- "name": "entity.name.tag"
345
+ "1": {
346
+ "name": "punctuation.section.bracket.end.powershell"
257
347
  }
258
348
  }
259
349
  },
@@ -261,11 +351,23 @@
261
351
  "patterns": [
262
352
  {
263
353
  "name": "support.function.powershell",
264
- "match": "(?:(\\p{L}|\\d|_|-|\\\\|\\:)*\\\\)?\\b(?i:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Mount|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Write)\\-.+?(?:\\.(?i:exe|cmd|bat|ps1))?\\b"
354
+ "match": "(?:(\\p{L}|\\d|_|-|\\\\|\\:)*\\\\)?\\b(?i:Add|Approve|Assert|Backup|Block|Build|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Deploy|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Mount|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Write)\\-.+?(?:\\.(?i:exe|cmd|bat|ps1))?\\b"
265
355
  },
266
356
  {
267
357
  "name": "support.function.powershell",
268
358
  "match": "(?\u003c!\\w)(?i:foreach-object)(?!\\w)"
359
+ },
360
+ {
361
+ "name": "support.function.powershell",
362
+ "match": "(?\u003c!\\w)(?i:where-object)(?!\\w)"
363
+ },
364
+ {
365
+ "name": "support.function.powershell",
366
+ "match": "(?\u003c!\\w)(?i:sort-object)(?!\\w)"
367
+ },
368
+ {
369
+ "name": "support.function.powershell",
370
+ "match": "(?\u003c!\\w)(?i:tee-object)(?!\\w)"
269
371
  }
270
372
  ]
271
373
  },
@@ -273,7 +375,7 @@
273
375
  "patterns": [
274
376
  {
275
377
  "name": "comment.documentation.embedded.powershell",
276
- "match": "(?i:\\s*(\\.)(SYNOPSIS|DESCRIPTION|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|FUNCTIONALITY))",
378
+ "match": "(?i:\\s*(\\.)(COMPONENT|DESCRIPTION|EXAMPLE|EXTERNALHELP|FORWARDHELPCATEGORY|FORWARDHELPTARGETNAME|FUNCTIONALITY|INPUTS|LINK|NOTES|OUTPUTS|REMOTEHELPRUNSPACE|ROLE|SYNOPSIS))",
277
379
  "captures": {
278
380
  "1": {
279
381
  "name": "constant.string.documentation.powershell"
@@ -297,21 +399,50 @@
297
399
  "name": "keyword.operator.documentation.powershell"
298
400
  }
299
401
  }
402
+ }
403
+ ]
404
+ },
405
+ "commentLine": {
406
+ "name": "comment.line.powershell",
407
+ "begin": "(?\u003c![`\\\\-])#",
408
+ "end": "$",
409
+ "patterns": [
410
+ {
411
+ "include": "#commentEmbeddedDocs"
300
412
  },
301
413
  {
302
- "name": "comment.documentation.embedded.powershell",
303
- "match": "(?i:requires\\s+-(Version\\s+\\d(.\\d+)?|Assembly\\s+(.*)|Module\\s+(.*)|PsSnapIn\\s+(.*)|ShellId\\s+(.*)))",
304
- "captures": {
305
- "1": {
306
- "name": "constant.string.documentation.powershell"
307
- },
308
- "2": {
309
- "name": "keyword.operator.documentation.powershell"
310
- },
311
- "3": {
312
- "name": "string.quoted.double.heredoc.powershell"
313
- }
314
- }
414
+ "include": "#RequiresDirective"
415
+ }
416
+ ],
417
+ "captures": {
418
+ "0": {
419
+ "name": "punctuation.definition.comment.powershell"
420
+ }
421
+ }
422
+ },
423
+ "doubleQuotedString": {
424
+ "name": "string.quoted.double.powershell",
425
+ "begin": "(?\u003c!(?\u003c!`)\")\"",
426
+ "end": "\"(?!\")",
427
+ "patterns": [
428
+ {
429
+ "match": "(?i)\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,64}\\b"
430
+ },
431
+ {
432
+ "include": "#variableNoProperty"
433
+ },
434
+ {
435
+ "include": "#variable"
436
+ },
437
+ {
438
+ "include": "#doubleQuotedStringEscapes"
439
+ },
440
+ {
441
+ "include": "#interpolation"
442
+ },
443
+ {
444
+ "name": "keyword.other.powershell",
445
+ "match": "`\\s*$"
315
446
  }
316
447
  ]
317
448
  },
@@ -328,17 +459,69 @@
328
459
  ]
329
460
  },
330
461
  "function": {
331
- "begin": "((?i:function|filter|configuration|workflow))\\s+((?:\\p{L}|\\d|_|-|\\.)+)",
332
- "end": "\\{|\\(",
462
+ "begin": "^(?:\\s*+)(?i)(function|filter|configuration|workflow)\\s+(?:(global|local|script|private):)?((?:\\p{L}|\\d|_|-|\\.)+)",
463
+ "end": "(?=\\{|\\()",
464
+ "patterns": [
465
+ {
466
+ "include": "#commentLine"
467
+ }
468
+ ],
333
469
  "beginCaptures": {
334
470
  "0": {
335
- "name": "meta.function"
471
+ "name": "meta.function.powershell"
336
472
  },
337
473
  "1": {
338
- "name": "storage.type"
474
+ "name": "storage.type.powershell"
339
475
  },
340
476
  "2": {
341
- "name": "entity.name.function"
477
+ "name": "storage.modifier.scope.powershell"
478
+ },
479
+ "3": {
480
+ "name": "entity.name.function.powershell"
481
+ }
482
+ }
483
+ },
484
+ "hashtable": {
485
+ "name": "meta.hashtable.powershell",
486
+ "begin": "(@)(\\{)",
487
+ "end": "(\\})",
488
+ "patterns": [
489
+ {
490
+ "name": "meta.hashtable.assignment.powershell",
491
+ "match": "\\b((?:\\'|\\\")?)(\\w+)((?:\\'|\\\")?)(?:\\s+)?(=)(?:\\s+)?",
492
+ "captures": {
493
+ "1": {
494
+ "name": "punctuation.definition.string.begin.powershell"
495
+ },
496
+ "2": {
497
+ "name": "variable.other.readwrite.powershell"
498
+ },
499
+ "3": {
500
+ "name": "punctuation.definition.string.end.powershell"
501
+ },
502
+ "4": {
503
+ "name": "keyword.operator.assignment.powershell"
504
+ }
505
+ }
506
+ },
507
+ {
508
+ "include": "#scriptblock"
509
+ },
510
+ {
511
+ "include": "$self"
512
+ }
513
+ ],
514
+ "beginCaptures": {
515
+ "1": {
516
+ "name": "keyword.other.hashtable.begin.powershell"
517
+ },
518
+ "2": {
519
+ "name": "punctuation.section.braces.begin.powershell"
520
+ }
521
+ },
522
+ "endCaptures": {
523
+ "1": {
524
+ "name": "punctuation.section.braces.end.powershell"
342
525
  }
343
526
  }
344
527
  },
@@ -359,18 +542,18 @@
359
542
  ],
360
543
  "beginCaptures": {
361
544
  "0": {
362
- "name": "keyword.other.powershell"
545
+ "name": "punctuation.section.group.begin.powershell"
363
546
  }
364
547
  },
365
548
  "endCaptures": {
366
549
  "0": {
367
- "name": "keyword.other.powershell"
550
+ "name": "punctuation.section.group.end.powershell"
368
551
  }
369
552
  }
370
553
  },
371
554
  "interpolation": {
372
555
  "contentName": "interpolated.complex.source.powershell",
373
- "begin": "(\\$)\\(",
556
+ "begin": "(\\$)(\\()",
374
557
  "end": "\\)",
375
558
  "patterns": [
376
559
  {
@@ -384,50 +567,94 @@
384
567
  }
385
568
  ],
386
569
  "beginCaptures": {
387
- "0": {
388
- "name": "keyword.other.powershell"
570
+ "1": {
571
+ "name": "keyword.other.variable.definition.powershell"
572
+ },
573
+ "2": {
574
+ "name": "punctuation.section.group.begin.powershell"
389
575
  }
390
576
  },
391
577
  "endCaptures": {
392
578
  "0": {
393
- "name": "keyword.other.powershell"
579
+ "name": "punctuation.section.group.end.powershell"
394
580
  }
395
581
  }
396
582
  },
397
583
  "numericConstant": {
398
584
  "patterns": [
399
585
  {
400
- "name": "constant.numeric.hexadecimal.powershell",
401
- "match": "(?\u003c!\\w)(?i:(0x)([a-f0-9]+)((?i:L)?(?i:[kmgtp]b)?))(?!\\w)",
586
+ "match": "(?\u003c!\\w)([-+]?0(?:x|X)[0-9a-fA-F_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b",
402
587
  "captures": {
403
588
  "1": {
404
- "name": "keyword.operator.math.powershell"
589
+ "name": "constant.numeric.hex.powershell"
405
590
  },
406
591
  "2": {
407
- "name": "support.constant.powershell"
592
+ "name": "keyword.other.powershell"
593
+ }
594
+ }
595
+ },
596
+ {
597
+ "match": "(?\u003c!\\w)([-+]?(?:[0-9_]+)?\\.[0-9_]+(?:(?:e|E)[0-9]+)?(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b",
598
+ "captures": {
599
+ "1": {
600
+ "name": "constant.numeric.integer.powershell"
408
601
  },
409
- "3": {
602
+ "2": {
603
+ "name": "keyword.other.powershell"
604
+ }
605
+ }
606
+ },
607
+ {
608
+ "match": "(?\u003c!\\w)([-+]?0(?:b|B)[01_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b",
609
+ "captures": {
610
+ "1": {
611
+ "name": "constant.numeric.octal.powershell"
612
+ },
613
+ "2": {
410
614
  "name": "keyword.other.powershell"
411
615
  }
412
616
  }
413
617
  },
414
618
  {
415
- "name": "constant.numeric.scientific.powershell",
416
- "match": "(?\u003c!\\w)(?i:(\\d*\\.?\\d+)(?:((?i:E)[+-]?)(\\d+))?((?i:[DL])?)((?i:[kmgtp]b)?))(?!\\w)",
619
+ "match": "(?\u003c!\\w)([-+]?[0-9_]+(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b",
417
620
  "captures": {
418
621
  "1": {
419
- "name": "support.constant.powershell"
622
+ "name": "constant.numeric.integer.powershell"
420
623
  },
421
624
  "2": {
422
- "name": "keyword.operator.math.powershell"
625
+ "name": "keyword.other.powershell"
626
+ }
627
+ }
628
+ },
629
+ {
630
+ "match": "(?\u003c!\\w)([-+]?[0-9_]+\\.(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b",
631
+ "captures": {
632
+ "1": {
633
+ "name": "constant.numeric.integer.powershell"
423
634
  },
424
- "3": {
425
- "name": "support.constant.powershell"
635
+ "2": {
636
+ "name": "keyword.other.powershell"
637
+ }
638
+ }
639
+ },
640
+ {
641
+ "match": "(?\u003c!\\w)([-+]?[0-9_]+[\\.]?(?:F|f|D|d|M|m))((?i:[kmgtp]b)?)\\b",
642
+ "captures": {
643
+ "1": {
644
+ "name": "constant.numeric.integer.powershell"
426
645
  },
427
- "4": {
646
+ "2": {
428
647
  "name": "keyword.other.powershell"
648
+ }
649
+ }
650
+ },
651
+ {
652
+ "match": "(?\u003c!\\w)([-+]?[0-9_]+[\\.]?(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b",
653
+ "captures": {
654
+ "1": {
655
+ "name": "constant.numeric.integer.powershell"
429
656
  },
430
- "5": {
657
+ "2": {
431
658
  "name": "keyword.other.powershell"
432
659
  }
433
660
  }
@@ -442,15 +669,25 @@
442
669
  {
443
670
  "include": "$self"
444
671
  }
445
- ]
672
+ ],
673
+ "beginCaptures": {
674
+ "0": {
675
+ "name": "punctuation.section.braces.begin.powershell"
676
+ }
677
+ },
678
+ "endCaptures": {
679
+ "0": {
680
+ "name": "punctuation.section.braces.end.powershell"
681
+ }
682
+ }
446
683
  },
447
684
  "type": {
448
685
  "begin": "\\[",
449
686
  "end": "\\]",
450
687
  "patterns": [
451
688
  {
452
- "name": "entity.other.attribute-name",
453
- "match": "(\\p{L}|\\.|``\\d+)+?"
689
+ "name": "storage.type.powershell",
690
+ "match": "(?!\\d+|\\.)(?:\\p{L}|\\p{N}|\\.)+"
454
691
  },
455
692
  {
456
693
  "include": "$self"
@@ -458,12 +695,12 @@
458
695
  ],
459
696
  "beginCaptures": {
460
697
  "0": {
461
- "name": "entity.other.attribute-name"
698
+ "name": "punctuation.section.bracket.begin.powershell"
462
699
  }
463
700
  },
464
701
  "endCaptures": {
465
702
  "0": {
466
- "name": "entity.other.attribute-name"
703
+ "name": "punctuation.section.bracket.end.powershell"
467
704
  }
468
705
  }
469
706
  },
@@ -473,7 +710,7 @@
473
710
  "match": "(\\$)(?i:(False|Null|True))\\b",
474
711
  "captures": {
475
712
  "1": {
476
- "name": "keyword.other.powershell"
713
+ "name": "keyword.other.variable.definition.powershell"
477
714
  },
478
715
  "2": {
479
716
  "name": "constant.language.powershell"
@@ -484,7 +721,7 @@
484
721
  "match": "(\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b",
485
722
  "captures": {
486
723
  "1": {
487
- "name": "keyword.other.powershell"
724
+ "name": "keyword.other.variable.definition.powershell"
488
725
  },
489
726
  "2": {
490
727
  "name": "support.constant.variable.powershell"
@@ -498,7 +735,7 @@
498
735
  "match": "(\\$)(?i:(\\$|\\^|\\?|_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b",
499
736
  "captures": {
500
737
  "1": {
501
- "name": "keyword.other.powershell"
738
+ "name": "keyword.other.variable.definition.powershell"
502
739
  },
503
740
  "2": {
504
741
  "name": "support.constant.automatic.powershell"
@@ -512,7 +749,7 @@
512
749
  "match": "(\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|ProgressPreference|PsCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|VerbosePreference|WarningPreference|WhatIfPreference))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b",
513
750
  "captures": {
514
751
  "1": {
515
- "name": "keyword.other.powershell"
752
+ "name": "keyword.other.variable.definition.powershell"
516
753
  },
517
754
  "2": {
518
755
  "name": "variable.language.powershell"
@@ -523,16 +760,16 @@
523
760
  }
524
761
  },
525
762
  {
526
- "match": "(?i:(\\$)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?",
763
+ "match": "(?i:(\\$|@)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?",
527
764
  "captures": {
528
765
  "1": {
529
- "name": "keyword.other.powershell"
766
+ "name": "keyword.other.variable.definition.powershell"
530
767
  },
531
768
  "2": {
532
769
  "name": "storage.modifier.scope.powershell"
533
770
  },
534
771
  "3": {
535
- "name": "variable.other.normal.powershell"
772
+ "name": "variable.other.readwrite.powershell"
536
773
  },
537
774
  "4": {
538
775
  "name": "entity.name.function.invocation.powershell"
@@ -540,30 +777,33 @@
540
777
  }
541
778
  },
542
779
  {
543
- "match": "(?i:(\\$\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?",
780
+ "match": "(?i:(\\$)(\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?",
544
781
  "captures": {
545
782
  "1": {
546
- "name": "keyword.other.powershell"
783
+ "name": "keyword.other.variable.definition.powershell"
547
784
  },
548
785
  "2": {
549
- "name": "storage.modifier.scope.powershell"
786
+ "name": "punctuation.section.braces.begin.powershell"
550
787
  },
551
788
  "3": {
552
- "name": "variable.other.readwrite.powershell"
789
+ "name": "storage.modifier.scope.powershell"
553
790
  },
554
791
  "4": {
555
- "name": "keyword.other.powershell"
792
+ "name": "variable.other.readwrite.powershell"
556
793
  },
557
794
  "5": {
795
+ "name": "punctuation.section.braces.end.powershell"
796
+ },
797
+ "6": {
558
798
  "name": "entity.name.function.invocation.powershell"
559
799
  }
560
800
  }
561
801
  },
562
802
  {
563
- "match": "(?i:(\\$)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?",
803
+ "match": "(?i:(\\$|@)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?",
564
804
  "captures": {
565
805
  "1": {
566
- "name": "keyword.other.powershell"
806
+ "name": "keyword.other.variable.definition.powershell"
567
807
  },
568
808
  "2": {
569
809
  "name": "support.variable.drive.powershell"
@@ -577,21 +817,24 @@
577
817
  }
578
818
  },
579
819
  {
580
- "match": "(?i:(\\$\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?",
820
+ "match": "(?i:(\\$)(\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?",
581
821
  "captures": {
582
822
  "1": {
583
- "name": "keyword.other.powershell"
823
+ "name": "keyword.other.variable.definition.powershell"
584
824
  },
585
825
  "2": {
586
- "name": "support.variable.drive.powershell"
826
+ "name": "punctuation.section.braces.begin.powershell"
587
827
  },
588
828
  "3": {
589
- "name": "variable.other.readwrite.powershell"
829
+ "name": "support.variable.drive.powershell"
590
830
  },
591
831
  "4": {
592
- "name": "keyword.other.powershell"
832
+ "name": "variable.other.readwrite.powershell"
593
833
  },
594
834
  "5": {
835
+ "name": "punctuation.section.braces.end.powershell"
836
+ },
837
+ "6": {
595
838
  "name": "entity.name.function.invocation.powershell"
596
839
  }
597
840
  }
@@ -604,7 +847,7 @@
604
847
  "match": "(\\$)(?i:(False|Null|True))\\b",
605
848
  "captures": {
606
849
  "1": {
607
- "name": "keyword.other.powershell"
850
+ "name": "keyword.other.variable.definition.powershell"
608
851
  },
609
852
  "2": {
610
853
  "name": "constant.language.powershell"
@@ -615,7 +858,7 @@
615
858
  "match": "(\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))\\b",
616
859
  "captures": {
617
860
  "1": {
618
- "name": "keyword.other.powershell"
861
+ "name": "keyword.other.variable.definition.powershell"
619
862
  },
620
863
  "2": {
621
864
  "name": "support.constant.variable.powershell"
@@ -629,7 +872,7 @@
629
872
  "match": "(\\$)(?i:(\\$|\\^|\\?|_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This))\\b",
630
873
  "captures": {
631
874
  "1": {
632
- "name": "keyword.other.powershell"
875
+ "name": "keyword.other.variable.definition.powershell"
633
876
  },
634
877
  "2": {
635
878
  "name": "support.variable.automatic.powershell"
@@ -643,7 +886,7 @@
643
886
  "match": "(\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|ProgressPreference|PsCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|VerbosePreference|WarningPreference|WhatIfPreference))\\b",
644
887
  "captures": {
645
888
  "1": {
646
- "name": "keyword.other.powershell"
889
+ "name": "keyword.other.variable.definition.powershell"
647
890
  },
648
891
  "2": {
649
892
  "name": "variable.language.powershell"
@@ -654,16 +897,16 @@
654
897
  }
655
898
  },
656
899
  {
657
- "match": "(?i:(\\$)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))",
900
+ "match": "(?i:(\\$|@)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))",
658
901
  "captures": {
659
902
  "1": {
660
- "name": "keyword.other.powershell"
903
+ "name": "keyword.other.variable.definition.powershell"
661
904
  },
662
905
  "2": {
663
906
  "name": "storage.modifier.scope.powershell"
664
907
  },
665
908
  "3": {
666
- "name": "variable.other.normal.powershell"
909
+ "name": "variable.other.readwrite.powershell"
667
910
  },
668
911
  "4": {
669
912
  "name": "entity.name.function.invocation.powershell"
@@ -671,10 +914,10 @@
671
914
  }
672
915
  },
673
916
  {
674
- "match": "(?i:(\\$\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))",
917
+ "match": "(?i:(\\$)(\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))",
675
918
  "captures": {
676
919
  "1": {
677
- "name": "keyword.other.powershell"
920
+ "name": "keyword.other.variable.definition.powershell"
678
921
  },
679
922
  "2": {
680
923
  "name": "storage.modifier.scope.powershell"
@@ -694,7 +937,7 @@
694
937
  "match": "(?i:(\\$)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))",
695
938
  "captures": {
696
939
  "1": {
697
- "name": "keyword.other.powershell"
940
+ "name": "keyword.other.variable.definition.powershell"
698
941
  },
699
942
  "2": {
700
943
  "name": "support.variable.drive.powershell"
@@ -708,22 +951,22 @@
708
951
  }
709
952
  },
710
953
  {
711
- "match": "(?i:(\\$\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))",
954
+ "match": "(?i:(\\$)(\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))",
712
955
  "captures": {
713
956
  "1": {
714
- "name": "keyword.other.powershell"
957
+ "name": "keyword.other.variable.definition.powershell"
715
958
  },
716
959
  "2": {
717
- "name": "support.variable.drive.powershell"
960
+ "name": "punctuation.section.braces.begin"
718
961
  },
719
962
  "3": {
720
- "name": "variable.other.readwrite.powershell"
963
+ "name": "support.variable.drive.powershell"
721
964
  },
722
965
  "4": {
723
- "name": "keyword.other.powershell"
966
+ "name": "variable.other.readwrite.powershell"
724
967
  },
725
968
  "5": {
726
- "name": "entity.name.function.invocation.powershell"
969
+ "name": "punctuation.section.braces.end"
727
970
  }
728
971
  }
729
972
  }