123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- /*!-----------------------------------------------------------------------------
- * 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/yaml/yaml.ts
- var conf = {
- comments: {
- lineComment: "#"
- },
- brackets: [
- ["{", "}"],
- ["[", "]"],
- ["(", ")"]
- ],
- autoClosingPairs: [
- { open: "{", close: "}" },
- { open: "[", close: "]" },
- { open: "(", close: ")" },
- { open: '"', close: '"' },
- { open: "'", close: "'" }
- ],
- surroundingPairs: [
- { open: "{", close: "}" },
- { open: "[", close: "]" },
- { open: "(", close: ")" },
- { open: '"', close: '"' },
- { open: "'", close: "'" }
- ],
- folding: {
- offSide: true
- }
- };
- var language = {
- tokenPostfix: ".yaml",
- brackets: [
- { token: "delimiter.bracket", open: "{", close: "}" },
- { token: "delimiter.square", open: "[", close: "]" }
- ],
- keywords: ["true", "True", "TRUE", "false", "False", "FALSE", "null", "Null", "Null", "~"],
- numberInteger: /(?:0|[+-]?[0-9]+)/,
- numberFloat: /(?:0|[+-]?[0-9]+)(?:\.[0-9]+)?(?:e[-+][1-9][0-9]*)?/,
- numberOctal: /0o[0-7]+/,
- numberHex: /0x[0-9a-fA-F]+/,
- numberInfinity: /[+-]?\.(?:inf|Inf|INF)/,
- numberNaN: /\.(?:nan|Nan|NAN)/,
- numberDate: /\d{4}-\d\d-\d\d([Tt ]\d\d:\d\d:\d\d(\.\d+)?(( ?[+-]\d\d?(:\d\d)?)|Z)?)?/,
- escapes: /\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,
- tokenizer: {
- root: [
- { include: "@whitespace" },
- { include: "@comment" },
- [/%[^ ]+.*$/, "meta.directive"],
- [/---/, "operators.directivesEnd"],
- [/\.{3}/, "operators.documentEnd"],
- [/[-?:](?= )/, "operators"],
- { include: "@anchor" },
- { include: "@tagHandle" },
- { include: "@flowCollections" },
- { include: "@blockStyle" },
- [/@numberInteger(?![ \t]*\S+)/, "number"],
- [/@numberFloat(?![ \t]*\S+)/, "number.float"],
- [/@numberOctal(?![ \t]*\S+)/, "number.octal"],
- [/@numberHex(?![ \t]*\S+)/, "number.hex"],
- [/@numberInfinity(?![ \t]*\S+)/, "number.infinity"],
- [/@numberNaN(?![ \t]*\S+)/, "number.nan"],
- [/@numberDate(?![ \t]*\S+)/, "number.date"],
- [/(".*?"|'.*?'|.*?)([ \t]*)(:)( |$)/, ["type", "white", "operators", "white"]],
- { include: "@flowScalars" },
- [
- /[^#]+/,
- {
- cases: {
- "@keywords": "keyword",
- "@default": "string"
- }
- }
- ]
- ],
- object: [
- { include: "@whitespace" },
- { include: "@comment" },
- [/\}/, "@brackets", "@pop"],
- [/,/, "delimiter.comma"],
- [/:(?= )/, "operators"],
- [/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/, "type"],
- { include: "@flowCollections" },
- { include: "@flowScalars" },
- { include: "@tagHandle" },
- { include: "@anchor" },
- { include: "@flowNumber" },
- [
- /[^\},]+/,
- {
- cases: {
- "@keywords": "keyword",
- "@default": "string"
- }
- }
- ]
- ],
- array: [
- { include: "@whitespace" },
- { include: "@comment" },
- [/\]/, "@brackets", "@pop"],
- [/,/, "delimiter.comma"],
- { include: "@flowCollections" },
- { include: "@flowScalars" },
- { include: "@tagHandle" },
- { include: "@anchor" },
- { include: "@flowNumber" },
- [
- /[^\],]+/,
- {
- cases: {
- "@keywords": "keyword",
- "@default": "string"
- }
- }
- ]
- ],
- multiString: [[/^( +).+$/, "string", "@multiStringContinued.$1"]],
- multiStringContinued: [
- [
- /^( *).+$/,
- {
- cases: {
- "$1==$S2": "string",
- "@default": { token: "@rematch", next: "@popall" }
- }
- }
- ]
- ],
- whitespace: [[/[ \t\r\n]+/, "white"]],
- comment: [[/#.*$/, "comment"]],
- flowCollections: [
- [/\[/, "@brackets", "@array"],
- [/\{/, "@brackets", "@object"]
- ],
- flowScalars: [
- [/"([^"\\]|\\.)*$/, "string.invalid"],
- [/'([^'\\]|\\.)*$/, "string.invalid"],
- [/'[^']*'/, "string"],
- [/"/, "string", "@doubleQuotedString"]
- ],
- doubleQuotedString: [
- [/[^\\"]+/, "string"],
- [/@escapes/, "string.escape"],
- [/\\./, "string.escape.invalid"],
- [/"/, "string", "@pop"]
- ],
- blockStyle: [[/[>|][0-9]*[+-]?$/, "operators", "@multiString"]],
- flowNumber: [
- [/@numberInteger(?=[ \t]*[,\]\}])/, "number"],
- [/@numberFloat(?=[ \t]*[,\]\}])/, "number.float"],
- [/@numberOctal(?=[ \t]*[,\]\}])/, "number.octal"],
- [/@numberHex(?=[ \t]*[,\]\}])/, "number.hex"],
- [/@numberInfinity(?=[ \t]*[,\]\}])/, "number.infinity"],
- [/@numberNaN(?=[ \t]*[,\]\}])/, "number.nan"],
- [/@numberDate(?=[ \t]*[,\]\}])/, "number.date"]
- ],
- tagHandle: [[/\![^ ]*/, "tag"]],
- anchor: [[/[&*][^ ]+/, "namespace"]]
- }
- };
- export {
- conf,
- language
- };
|