123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- /*!-----------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Version: 0.31.1(337587859b1c171314b40503171188b6cea6a32a)
- * Released under the MIT license
- * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
- *-----------------------------------------------------------------------------*/
- // src/basic-languages/powershell/powershell.ts
- var conf = {
- wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,
- comments: {
- lineComment: "#",
- blockComment: ["<#", "#>"]
- },
- brackets: [
- ["{", "}"],
- ["[", "]"],
- ["(", ")"]
- ],
- autoClosingPairs: [
- { open: "{", close: "}" },
- { open: "[", close: "]" },
- { open: "(", close: ")" },
- { open: '"', close: '"', notIn: ["string"] },
- { open: "'", close: "'", notIn: ["string", "comment"] }
- ],
- surroundingPairs: [
- { open: "{", close: "}" },
- { open: "[", close: "]" },
- { open: "(", close: ")" },
- { open: '"', close: '"' },
- { open: "'", close: "'" }
- ],
- folding: {
- markers: {
- start: new RegExp("^\\s*#region\\b"),
- end: new RegExp("^\\s*#endregion\\b")
- }
- }
- };
- var language = {
- defaultToken: "",
- ignoreCase: true,
- tokenPostfix: ".ps1",
- brackets: [
- { token: "delimiter.curly", open: "{", close: "}" },
- { token: "delimiter.square", open: "[", close: "]" },
- { token: "delimiter.parenthesis", open: "(", close: ")" }
- ],
- keywords: [
- "begin",
- "break",
- "catch",
- "class",
- "continue",
- "data",
- "define",
- "do",
- "dynamicparam",
- "else",
- "elseif",
- "end",
- "exit",
- "filter",
- "finally",
- "for",
- "foreach",
- "from",
- "function",
- "if",
- "in",
- "param",
- "process",
- "return",
- "switch",
- "throw",
- "trap",
- "try",
- "until",
- "using",
- "var",
- "while",
- "workflow",
- "parallel",
- "sequence",
- "inlinescript",
- "configuration"
- ],
- helpKeywords: /SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,
- symbols: /[=><!~?&%|+\-*\/\^;\.,]+/,
- escapes: /`(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
- tokenizer: {
- root: [
- [
- /[a-zA-Z_][\w-]*/,
- {
- cases: {
- "@keywords": { token: "keyword.$0" },
- "@default": ""
- }
- }
- ],
- [/[ \t\r\n]+/, ""],
- [/^:\w*/, "metatag"],
- [
- /\$(\{((global|local|private|script|using):)?[\w]+\}|((global|local|private|script|using):)?[\w]+)/,
- "variable"
- ],
- [/<#/, "comment", "@comment"],
- [/#.*$/, "comment"],
- [/[{}()\[\]]/, "@brackets"],
- [/@symbols/, "delimiter"],
- [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"],
- [/0[xX][0-9a-fA-F_]*[0-9a-fA-F]/, "number.hex"],
- [/\d+?/, "number"],
- [/[;,.]/, "delimiter"],
- [/\@"/, "string", '@herestring."'],
- [/\@'/, "string", "@herestring.'"],
- [
- /"/,
- {
- cases: {
- "@eos": "string",
- "@default": { token: "string", next: '@string."' }
- }
- }
- ],
- [
- /'/,
- {
- cases: {
- "@eos": "string",
- "@default": { token: "string", next: "@string.'" }
- }
- }
- ]
- ],
- string: [
- [
- /[^"'\$`]+/,
- {
- cases: {
- "@eos": { token: "string", next: "@popall" },
- "@default": "string"
- }
- }
- ],
- [
- /@escapes/,
- {
- cases: {
- "@eos": { token: "string.escape", next: "@popall" },
- "@default": "string.escape"
- }
- }
- ],
- [
- /`./,
- {
- cases: {
- "@eos": {
- token: "string.escape.invalid",
- next: "@popall"
- },
- "@default": "string.escape.invalid"
- }
- }
- ],
- [
- /\$[\w]+$/,
- {
- cases: {
- '$S2=="': { token: "variable", next: "@popall" },
- "@default": { token: "string", next: "@popall" }
- }
- }
- ],
- [
- /\$[\w]+/,
- {
- cases: {
- '$S2=="': "variable",
- "@default": "string"
- }
- }
- ],
- [
- /["']/,
- {
- cases: {
- "$#==$S2": { token: "string", next: "@pop" },
- "@default": {
- cases: {
- "@eos": { token: "string", next: "@popall" },
- "@default": "string"
- }
- }
- }
- }
- ]
- ],
- herestring: [
- [
- /^\s*(["'])@/,
- {
- cases: {
- "$1==$S2": { token: "string", next: "@pop" },
- "@default": "string"
- }
- }
- ],
- [/[^\$`]+/, "string"],
- [/@escapes/, "string.escape"],
- [/`./, "string.escape.invalid"],
- [
- /\$[\w]+/,
- {
- cases: {
- '$S2=="': "variable",
- "@default": "string"
- }
- }
- ]
- ],
- comment: [
- [/[^#\.]+/, "comment"],
- [/#>/, "comment", "@pop"],
- [/(\.)(@helpKeywords)(?!\w)/, { token: "comment.keyword.$2" }],
- [/[\.#]/, "comment"]
- ]
- }
- };
- export {
- conf,
- language
- };
|