/*!----------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Version: 0.36.1(6c56744c3419458f0dd48864520b759d1a3a1ca8) * Released under the MIT license * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt *-----------------------------------------------------------------------------*/ // src/basic-languages/csharp/csharp.ts var conf = { wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g, comments: { lineComment: "//", blockComment: ["/*", "*/"] }, brackets: [ ["{", "}"], ["[", "]"], ["(", ")"] ], autoClosingPairs: [ { open: "{", close: "}" }, { open: "[", close: "]" }, { open: "(", close: ")" }, { open: "'", close: "'", notIn: ["string", "comment"] }, { open: '"', close: '"', notIn: ["string", "comment"] } ], surroundingPairs: [ { open: "{", close: "}" }, { 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: "", tokenPostfix: ".cs", brackets: [ { open: "{", close: "}", token: "delimiter.curly" }, { open: "[", close: "]", token: "delimiter.square" }, { open: "(", close: ")", token: "delimiter.parenthesis" }, { open: "<", close: ">", token: "delimiter.angle" } ], keywords: [ "extern", "alias", "using", "bool", "decimal", "sbyte", "byte", "short", "ushort", "int", "uint", "long", "ulong", "char", "float", "double", "object", "dynamic", "string", "assembly", "is", "as", "ref", "out", "this", "base", "new", "typeof", "void", "checked", "unchecked", "default", "delegate", "var", "const", "if", "else", "switch", "case", "while", "do", "for", "foreach", "in", "break", "continue", "goto", "return", "throw", "try", "catch", "finally", "lock", "yield", "from", "let", "where", "join", "on", "equals", "into", "orderby", "ascending", "descending", "select", "group", "by", "namespace", "partial", "class", "field", "event", "method", "param", "public", "protected", "internal", "private", "abstract", "sealed", "static", "struct", "readonly", "volatile", "virtual", "override", "params", "get", "set", "add", "remove", "operator", "true", "false", "implicit", "explicit", "interface", "enum", "null", "async", "await", "fixed", "sizeof", "stackalloc", "unsafe", "nameof", "when" ], namespaceFollows: ["namespace", "using"], parenFollows: ["if", "for", "while", "switch", "foreach", "using", "catch", "when"], operators: [ "=", "??", "||", "&&", "|", "^", "&", "==", "!=", "<=", ">=", "<<", "+", "-", "*", "/", "%", "!", "~", "++", "--", "+=", "-=", "*=", "/=", "%=", "&=", "|=", "^=", "<<=", ">>=", ">>", "=>" ], symbols: /[=>](?!@symbols)/, "@brackets"], [ /@symbols/, { cases: { "@operators": "delimiter", "@default": "" } } ], [/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/, "number.float"], [/0[xX][0-9a-fA-F_]+/, "number.hex"], [/0[bB][01_]+/, "number.hex"], [/[0-9_]+/, "number"], [/[;,.]/, "delimiter"], [/"([^"\\]|\\.)*$/, "string.invalid"], [/"/, { token: "string.quote", next: "@string" }], [/\$\@"/, { token: "string.quote", next: "@litinterpstring" }], [/\@"/, { token: "string.quote", next: "@litstring" }], [/\$"/, { token: "string.quote", next: "@interpolatedstring" }], [/'[^\\']'/, "string"], [/(')(@escapes)(')/, ["string", "string.escape", "string"]], [/'/, "string.invalid"] ], qualified: [ [ /[a-zA-Z_][\w]*/, { cases: { "@keywords": { token: "keyword.$0" }, "@default": "identifier" } } ], [/\./, "delimiter"], ["", "", "@pop"] ], namespace: [ { include: "@whitespace" }, [/[A-Z]\w*/, "namespace"], [/[\.=]/, "delimiter"], ["", "", "@pop"] ], comment: [ [/[^\/*]+/, "comment"], ["\\*/", "comment", "@pop"], [/[\/*]/, "comment"] ], string: [ [/[^\\"]+/, "string"], [/@escapes/, "string.escape"], [/\\./, "string.escape.invalid"], [/"/, { token: "string.quote", next: "@pop" }] ], litstring: [ [/[^"]+/, "string"], [/""/, "string.escape"], [/"/, { token: "string.quote", next: "@pop" }] ], litinterpstring: [ [/[^"{]+/, "string"], [/""/, "string.escape"], [/{{/, "string.escape"], [/}}/, "string.escape"], [/{/, { token: "string.quote", next: "root.litinterpstring" }], [/"/, { token: "string.quote", next: "@pop" }] ], interpolatedstring: [ [/[^\\"{]+/, "string"], [/@escapes/, "string.escape"], [/\\./, "string.escape.invalid"], [/{{/, "string.escape"], [/}}/, "string.escape"], [/{/, { token: "string.quote", next: "root.interpolatedstring" }], [/"/, { token: "string.quote", next: "@pop" }] ], whitespace: [ [/^[ \t\v\f]*#((r)|(load))(?=\s)/, "directive.csx"], [/^[ \t\v\f]*#\w.*$/, "namespace.cpp"], [/[ \t\v\f\r\n]+/, ""], [/\/\*/, "comment", "@comment"], [/\/\/.*$/, "comment"] ] } }; export { conf, language };