powershell.json 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. {
  2. "aliases": [
  3. "ps",
  4. "ps1"
  5. ],
  6. "lexemes": "-?[A-z\\.\\-]+",
  7. "case_insensitive": true,
  8. "keywords": {
  9. "keyword": "if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter"
  10. },
  11. "contains": [
  12. {
  13. "className": "function",
  14. "begin": "\\[.*\\]\\s*[\\w]+[ ]??\\(",
  15. "end": "$",
  16. "returnBegin": true,
  17. "relevance": 0,
  18. "contains": [
  19. {
  20. "begin": "\\[",
  21. "end": "\\]",
  22. "excludeBegin": true,
  23. "excludeEnd": true,
  24. "relevance": 0,
  25. "contains": [
  26. "self",
  27. {
  28. "$ref": "#contains.0"
  29. },
  30. {
  31. "className": "comment",
  32. "begin": null,
  33. "end": null,
  34. "contains": [
  35. {
  36. "className": "doctag",
  37. "variants": [
  38. {
  39. "begin": "\\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)"
  40. },
  41. {
  42. "begin": "\\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\\s+\\S+"
  43. }
  44. ]
  45. }
  46. ],
  47. "variants": [
  48. {
  49. "begin": "#",
  50. "end": "$"
  51. },
  52. {
  53. "begin": "<#",
  54. "end": "#>"
  55. }
  56. ]
  57. },
  58. {
  59. "begin": "`[\\s\\S]",
  60. "relevance": 0
  61. },
  62. {
  63. "className": "number",
  64. "begin": "\\b\\d+(\\.\\d+)?",
  65. "relevance": 0
  66. },
  67. {
  68. "className": "string",
  69. "variants": [
  70. {
  71. "begin": "\"",
  72. "end": "\""
  73. },
  74. {
  75. "begin": "@\"",
  76. "end": "^\"@"
  77. }
  78. ],
  79. "contains": [
  80. {
  81. "$ref": "#contains.0.contains.0.contains.3"
  82. },
  83. {
  84. "className": "variable",
  85. "variants": [
  86. {
  87. "begin": "\\$\\B"
  88. },
  89. {
  90. "className": "keyword",
  91. "begin": "\\$this"
  92. },
  93. {
  94. "begin": "\\$[\\w\\d][\\w\\d_:]*"
  95. }
  96. ]
  97. },
  98. {
  99. "className": "variable",
  100. "begin": "\\$[A-z]",
  101. "end": "[^A-z]"
  102. }
  103. ]
  104. },
  105. {
  106. "className": "string",
  107. "variants": [
  108. {
  109. "begin": "'",
  110. "end": "'"
  111. },
  112. {
  113. "begin": "@'",
  114. "end": "^'@"
  115. }
  116. ]
  117. },
  118. {
  119. "className": "built_in",
  120. "variants": [
  121. {
  122. "begin": "(Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|New|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Complete|Confirm|Deny|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where)+(-)[\\w\\d]+"
  123. }
  124. ]
  125. },
  126. {
  127. "$ref": "#contains.0.contains.0.contains.5.contains.1"
  128. },
  129. {
  130. "className": "literal",
  131. "begin": "\\$(null|true|false)\\b"
  132. },
  133. {
  134. "className": "selector-tag",
  135. "begin": "\\@\\B",
  136. "relevance": 0
  137. },
  138. {
  139. "begin": "(string|char|byte|int|long|bool|decimal|single|double|DateTime|xml|array|hashtable|void)",
  140. "className": "built_in",
  141. "relevance": 0
  142. },
  143. {
  144. "className": "type",
  145. "begin": "[\\.\\w\\d]+",
  146. "relevance": 0
  147. }
  148. ]
  149. },
  150. {
  151. "className": "keyword",
  152. "begin": "(if|else|foreach|return|do|while|until|elseif|begin|for|trap|data|dynamicparam|end|break|throw|param|continue|finally|in|switch|exit|filter|try|process|catch|hidden|static|parameter)\\b",
  153. "endsParent": true,
  154. "relevance": 0
  155. },
  156. {
  157. "className": "title",
  158. "begin": "[a-zA-Z]\\w*",
  159. "relevance": 0,
  160. "endsParent": true
  161. }
  162. ]
  163. },
  164. {
  165. "$ref": "#contains.0.contains.0.contains.2"
  166. },
  167. {
  168. "$ref": "#contains.0.contains.0.contains.3"
  169. },
  170. {
  171. "$ref": "#contains.0.contains.0.contains.4"
  172. },
  173. {
  174. "$ref": "#contains.0.contains.0.contains.5"
  175. },
  176. {
  177. "$ref": "#contains.0.contains.0.contains.6"
  178. },
  179. {
  180. "$ref": "#contains.0.contains.0.contains.7"
  181. },
  182. {
  183. "$ref": "#contains.0.contains.0.contains.5.contains.1"
  184. },
  185. {
  186. "$ref": "#contains.0.contains.0.contains.9"
  187. },
  188. {
  189. "$ref": "#contains.0.contains.0.contains.10"
  190. },
  191. {
  192. "className": "class",
  193. "beginKeywords": "class enum",
  194. "end": "\\s*[{]",
  195. "excludeEnd": true,
  196. "relevance": 0,
  197. "contains": [
  198. {
  199. "className": "title",
  200. "begin": "[a-zA-Z]\\w*",
  201. "relevance": 0
  202. }
  203. ]
  204. },
  205. {
  206. "className": "function",
  207. "begin": "function\\s+",
  208. "end": "\\s*\\{|$",
  209. "excludeEnd": true,
  210. "returnBegin": true,
  211. "relevance": 0,
  212. "contains": [
  213. {
  214. "begin": "function",
  215. "relevance": 0,
  216. "className": "keyword"
  217. },
  218. {
  219. "className": "title",
  220. "begin": "\\w[\\w\\d]*((-)[\\w\\d]+)*",
  221. "relevance": 0
  222. },
  223. {
  224. "begin": "\\(",
  225. "end": "\\)",
  226. "className": "params",
  227. "relevance": 0,
  228. "contains": [
  229. {
  230. "$ref": "#contains.0.contains.0.contains.5.contains.1"
  231. }
  232. ]
  233. }
  234. ]
  235. },
  236. {
  237. "begin": "using\\s",
  238. "end": "$",
  239. "returnBegin": true,
  240. "contains": [
  241. {
  242. "$ref": "#contains.0.contains.0.contains.5"
  243. },
  244. {
  245. "$ref": "#contains.0.contains.0.contains.6"
  246. },
  247. {
  248. "className": "keyword",
  249. "begin": "(using|assembly|command|module|namespace|type)"
  250. }
  251. ]
  252. },
  253. {
  254. "variants": [
  255. {
  256. "className": "operator",
  257. "begin": "(-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor)\\b"
  258. },
  259. {
  260. "className": "literal",
  261. "begin": "(-)[\\w\\d]+",
  262. "relevance": 0
  263. }
  264. ]
  265. },
  266. {
  267. "$ref": "#contains.0.contains.0"
  268. }
  269. ]
  270. }