import '../../editor/browser/coreCommands.js'; import '../../editor/browser/widget/codeEditor/codeEditorWidget.js'; import '../../editor/browser/widget/diffEditor/diffEditor.contribution.js'; import '../../editor/contrib/anchorSelect/browser/anchorSelect.js'; import '../../editor/contrib/bracketMatching/browser/bracketMatching.js'; import '../../editor/contrib/caretOperations/browser/caretOperations.js'; import '../../editor/contrib/caretOperations/browser/transpose.js'; import '../../editor/contrib/clipboard/browser/clipboard.js'; import '../../editor/contrib/codeAction/browser/codeActionContributions.js'; import '../../editor/contrib/codelens/browser/codelensController.js'; import '../../editor/contrib/colorPicker/browser/colorPickerContribution.js'; import '../../editor/contrib/comment/browser/comment.js'; import '../../editor/contrib/contextmenu/browser/contextmenu.js'; import '../../editor/contrib/cursorUndo/browser/cursorUndo.js'; import '../../editor/contrib/dnd/browser/dnd.js'; import '../../editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js'; import '../../editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js'; import '../../editor/contrib/find/browser/findController.js'; import '../../editor/contrib/folding/browser/folding.js'; import '../../editor/contrib/fontZoom/browser/fontZoom.js'; import '../../editor/contrib/format/browser/formatActions.js'; import '../../editor/contrib/documentSymbols/browser/documentSymbols.js'; import '../../editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js'; import '../../editor/contrib/inlineProgress/browser/inlineProgress.js'; import '../../editor/contrib/gotoSymbol/browser/goToCommands.js'; import '../../editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js'; import '../../editor/contrib/gotoError/browser/gotoError.js'; import '../../editor/contrib/gpu/browser/gpuActions.js'; import '../../editor/contrib/hover/browser/hoverContribution.js'; import '../../editor/contrib/indentation/browser/indentation.js'; import '../../editor/contrib/inlayHints/browser/inlayHintsContribution.js'; import '../../editor/contrib/inPlaceReplace/browser/inPlaceReplace.js'; import '../../editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js'; import '../../editor/contrib/lineSelection/browser/lineSelection.js'; import '../../editor/contrib/linesOperations/browser/linesOperations.js'; import '../../editor/contrib/linkedEditing/browser/linkedEditing.js'; import '../../editor/contrib/links/browser/links.js'; import '../../editor/contrib/longLinesHelper/browser/longLinesHelper.js'; import '../../editor/contrib/middleScroll/browser/middleScroll.contribution.js'; import '../../editor/contrib/multicursor/browser/multicursor.js'; import '../../editor/contrib/parameterHints/browser/parameterHints.js'; import '../../editor/contrib/placeholderText/browser/placeholderText.contribution.js'; import '../../editor/contrib/rename/browser/rename.js'; import '../../editor/contrib/sectionHeaders/browser/sectionHeaders.js'; import '../../editor/contrib/semanticTokens/browser/documentSemanticTokens.js'; import '../../editor/contrib/semanticTokens/browser/viewportSemanticTokens.js'; import '../../editor/contrib/smartSelect/browser/smartSelect.js'; import '../../editor/contrib/snippet/browser/snippetController2.js'; import '../../editor/contrib/stickyScroll/browser/stickyScrollContribution.js'; import '../../editor/contrib/suggest/browser/suggestController.js'; import '../../editor/contrib/suggest/browser/suggestInlineCompletions.js'; import '../../editor/contrib/tokenization/browser/tokenization.js'; import '../../editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js'; import '../../editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js'; import '../../editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js'; import '../../editor/contrib/wordHighlighter/browser/wordHighlighter.js'; import '../../editor/contrib/wordOperations/browser/wordOperations.js'; import '../../editor/contrib/wordPartOperations/browser/wordPartOperations.js'; import '../../editor/contrib/readOnlyMessage/browser/contribution.js'; import '../../editor/contrib/diffEditorBreadcrumbs/browser/contribution.js'; import '../../editor/contrib/floatingMenu/browser/floatingMenu.contribution.js'; import '../../editor/common/standaloneStrings.js'; import '../../base/browser/ui/codicons/codicon/codicon.css'; import '../../base/browser/ui/codicons/codicon/codicon-modifiers.css'; import '../../editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js'; import '../../editor/standalone/browser/inspectTokens/inspectTokens.js'; import '../../editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js'; import '../../editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js'; import '../../editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js'; import '../../editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js'; import '../../editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js'; import '../../editor/standalone/browser/toggleHighContrast/toggleHighContrast.js'; import { languages } from '../../editor/editor.api2.js'; const 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 }, onEnterRules: [ { beforeText: /:\s*$/, action: { indentAction: languages.IndentAction.Indent } } ] }; const 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" }, // Directive [/%[^ ]+.*$/, "meta.directive"], // Document Markers [/---/, "operators.directivesEnd"], [/\.{3}/, "operators.documentEnd"], // Block Structure Indicators [/[-?:](?= )/, "operators"], { include: "@anchor" }, { include: "@tagHandle" }, { include: "@flowCollections" }, { include: "@blockStyle" }, // Numbers [/@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"], // Key:Value pair [/(".*?"|'.*?'|[^#'"]*?)([ \t]*)(:)( |$)/, ["type", "white", "operators", "white"]], { include: "@flowScalars" }, // String nodes [ /.+?(?=(\s+#|$))/, { cases: { "@keywords": "keyword", "@default": "string" } } ] ], // Flow Collection: Flow Mapping object: [ { include: "@whitespace" }, { include: "@comment" }, // Flow Mapping termination [/\}/, "@brackets", "@pop"], // Flow Mapping delimiter [/,/, "delimiter.comma"], // Flow Mapping Key:Value delimiter [/:(?= )/, "operators"], // Flow Mapping Key:Value key [/(?:".*?"|'.*?'|[^,\{\[]+?)(?=: )/, "type"], // Start Flow Style { include: "@flowCollections" }, { include: "@flowScalars" }, // Scalar Data types { include: "@tagHandle" }, { include: "@anchor" }, { include: "@flowNumber" }, // Other value (keyword or string) [ /[^\},]+/, { cases: { "@keywords": "keyword", "@default": "string" } } ] ], // Flow Collection: Flow Sequence array: [ { include: "@whitespace" }, { include: "@comment" }, // Flow Sequence termination [/\]/, "@brackets", "@pop"], // Flow Sequence delimiter [/,/, "delimiter.comma"], // Start Flow Style { include: "@flowCollections" }, { include: "@flowScalars" }, // Scalar Data types { include: "@tagHandle" }, { include: "@anchor" }, { include: "@flowNumber" }, // Other value (keyword or string) [ /[^\],]+/, { cases: { "@keywords": "keyword", "@default": "string" } } ] ], // First line of a Block Style multiString: [[/^( +).+$/, "string", "@multiStringContinued.$1"]], // Further lines of a Block Style // Workaround for indentation detection multiStringContinued: [ [ /^( *).+$/, { cases: { "$1==$S2": "string", "@default": { token: "@rematch", next: "@popall" } } } ] ], whitespace: [[/[ \t\r\n]+/, "white"]], // Only line comments comment: [[/#.*$/, "comment"]], // Start Flow Collections flowCollections: [ [/\[/, "@brackets", "@array"], [/\{/, "@brackets", "@object"] ], // Start Flow Scalars (quoted strings) flowScalars: [ [/"([^"\\]|\\.)*$/, "string.invalid"], [/'([^'\\]|\\.)*$/, "string.invalid"], [/'[^']*'/, "string"], [/"/, "string", "@doubleQuotedString"] ], doubleQuotedString: [ [/[^\\"]+/, "string"], [/@escapes/, "string.escape"], [/\\./, "string.escape.invalid"], [/"/, "string", "@pop"] ], // Start Block Scalar blockStyle: [[/[>|][0-9]*[+-]?$/, "operators", "@multiString"]], // Numbers in Flow Collections (terminate with ,]}) 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 };