diff --git a/html/monaco-editor/themes/NightOwl.json b/html/monaco-editor/themes/NightOwl.json
new file mode 100644
index 0000000..6dec98a
--- /dev/null
+++ b/html/monaco-editor/themes/NightOwl.json
@@ -0,0 +1,1581 @@
+{
+ "inherit": false,
+ "base": "vs",
+ "colors": {
+ "foreground": "#403f53",
+ "focusBorder": "#93A1A1",
+ "errorForeground": "#403f53",
+ "selection.background": "#7a8181ad",
+ "descriptionForeground": "#403f53",
+ "widget.shadow": "#d9d9d9",
+ "titleBar.activeBackground": "#F0F0F0",
+ "notifications.background": "#F0F0F0",
+ "notifications.foreground": "#403f53",
+ "notificationLink.foreground": "#994cc3",
+ "notifications.border": "#CCCCCC",
+ "notificationCenter.border": "#CCCCCC",
+ "notificationToast.border": "#CCCCCC",
+ "notificationCenterHeader.foreground": "#403f53",
+ "notificationCenterHeader.background": "#F0F0F0",
+ "button.background": "#2AA298",
+ "button.foreground": "#F0F0F0",
+ "dropdown.background": "#F0F0F0",
+ "dropdown.foreground": "#403f53",
+ "dropdown.border": "#d9d9d9",
+ "input.background": "#F0F0F0",
+ "input.foreground": "#403f53",
+ "input.border": "#d9d9d9",
+ "input.placeholderForeground": "#93A1A1",
+ "inputOption.activeBorder": "#2AA298",
+ "inputValidation.infoBorder": "#D0D0D0",
+ "inputValidation.infoBackground": "#F0F0F0",
+ "inputValidation.warningBackground": "#daaa01",
+ "inputValidation.warningBorder": "#E0AF02",
+ "inputValidation.errorBackground": "#f76e6e",
+ "inputValidation.errorBorder": "#de3d3b",
+ "badge.background": "#2AA298",
+ "badge.foreground": "#F0F0F0",
+ "progressBar.background": "#2AA298",
+ "list.activeSelectionBackground": "#d3e8f8",
+ "list.activeSelectionForeground": "#403f53",
+ "list.inactiveSelectionBackground": "#E0E7EA",
+ "list.inactiveSelectionForeground": "#403f53",
+ "list.focusBackground": "#d3e8f8",
+ "list.hoverBackground": "#d3e8f8",
+ "list.focusForeground": "#403f53",
+ "list.hoverForeground": "#403f53",
+ "list.highlightForeground": "#403f53",
+ "list.errorForeground": "#E64D49",
+ "list.warningForeground": "#daaa01",
+ "activityBar.background": "#F0F0F0",
+ "activityBar.foreground": "#403f53",
+ "activityBar.dropBackground": "#D0D0D0",
+ "activityBarBadge.background": "#403f53",
+ "activityBarBadge.foreground": "#F0F0F0",
+ "activityBar.border": "#F0F0F0",
+ "sideBar.background": "#F0F0F0",
+ "sideBar.foreground": "#403f53",
+ "sideBarTitle.foreground": "#403f53",
+ "sideBar.border": "#F0F0F0",
+ "scrollbar.shadow": "#CCCCCC",
+ "tab.border": "#F0F0F0",
+ "tab.activeBackground": "#F6F6F6",
+ "tab.activeForeground": "#403f53",
+ "tab.inactiveForeground": "#403f53",
+ "tab.inactiveBackground": "#F0F0F0",
+ "editorGroup.border": "#F0F0F0",
+ "editorGroup.background": "#F6F6F6",
+ "editorGroupHeader.tabsBackground": "#F0F0F0",
+ "editorGroupHeader.tabsBorder": "#F0F0F0",
+ "editorGroupHeader.noTabsBackground": "#F0F0F0",
+ "tab.activeModifiedBorder": "#2AA298",
+ "tab.inactiveModifiedBorder": "#93A1A1",
+ "tab.unfocusedActiveModifiedBorder": "#93A1A1",
+ "tab.unfocusedInactiveModifiedBorder": "#93A1A1",
+ "editor.background": "#FBFBFB",
+ "editor.foreground": "#403f53",
+ "editorCursor.foreground": "#90A7B2",
+ "editorLineNumber.foreground": "#90A7B2",
+ "editorLineNumber.activeForeground": "#403f53",
+ "editor.selectionBackground": "#E0E0E0",
+ "editor.selectionHighlightBackground": "#339cec33",
+ "editor.wordHighlightBackground": "#339cec33",
+ "editor.wordHighlightStrongBackground": "#007dd659",
+ "editor.findMatchBackground": "#93A1A16c",
+ "editor.findMatchHighlightBackground": "#93a1a16c",
+ "editor.findRangeHighlightBackground": "#7497a633",
+ "editor.hoverHighlightBackground": "#339cec33",
+ "editor.lineHighlightBackground": "#F0F0F0",
+ "editor.rangeHighlightBackground": "#7497a633",
+ "editorWhitespace.foreground": "#d9d9d9",
+ "editorIndentGuide.background": "#d9d9d9",
+ "editorCodeLens.foreground": "#403f53",
+ "editorBracketMatch.background": "#d3e8f8",
+ "editorBracketMatch.border": "#2AA298",
+ "editorError.foreground": "#E64D49",
+ "editorError.border": "#FBFBFB",
+ "editorWarning.foreground": "#daaa01",
+ "editorWarning.border": "#daaa01",
+ "editorGutter.addedBackground": "#49d0c5",
+ "editorGutter.modifiedBackground": "#6fbef6",
+ "editorGutter.deletedBackground": "#f76e6e",
+ "editorRuler.foreground": "#d9d9d9",
+ "editorOverviewRuler.errorForeground": "#E64D49",
+ "editorOverviewRuler.warningForeground": "#daaa01",
+ "editorWidget.background": "#F0F0F0",
+ "editorWidget.border": "#d9d9d9",
+ "editorSuggestWidget.background": "#F0F0F0",
+ "editorSuggestWidget.foreground": "#403f53",
+ "editorSuggestWidget.highlightForeground": "#403f53",
+ "editorSuggestWidget.selectedBackground": "#d3e8f8",
+ "editorSuggestWidget.border": "#d9d9d9",
+ "editorHoverWidget.background": "#F0F0F0",
+ "editorHoverWidget.border": "#d9d9d9",
+ "debugExceptionWidget.background": "#F0F0F0",
+ "debugExceptionWidget.border": "#d9d9d9",
+ "editorMarkerNavigation.background": "#D0D0D0",
+ "editorMarkerNavigationError.background": "#f76e6e",
+ "editorMarkerNavigationWarning.background": "#daaa01",
+ "debugToolBar.background": "#F0F0F0",
+ "pickerGroup.border": "#d9d9d9",
+ "pickerGroup.foreground": "#403f53",
+ "extensionButton.prominentBackground": "#2AA298",
+ "extensionButton.prominentForeground": "#F0F0F0",
+ "statusBar.background": "#F0F0F0",
+ "statusBar.border": "#F0F0F0",
+ "statusBar.debuggingBackground": "#F0F0F0",
+ "statusBar.debuggingForeground": "#403f53",
+ "statusBar.foreground": "#403f53",
+ "statusBar.noFolderBackground": "#F0F0F0",
+ "statusBar.noFolderForeground": "#403f53",
+ "panel.background": "#F0F0F0",
+ "panel.border": "#d9d9d9",
+ "peekView.border": "#d9d9d9",
+ "peekViewEditor.background": "#F6F6F6",
+ "peekViewEditorGutter.background": "#F6F6F6",
+ "peekViewEditor.matchHighlightBackground": "#49d0c5",
+ "peekViewResult.background": "#F0F0F0",
+ "peekViewResult.fileForeground": "#403f53",
+ "peekViewResult.lineForeground": "#403f53",
+ "peekViewResult.matchHighlightBackground": "#49d0c5",
+ "peekViewResult.selectionBackground": "#E0E7EA",
+ "peekViewResult.selectionForeground": "#403f53",
+ "peekViewTitle.background": "#F0F0F0",
+ "peekViewTitleLabel.foreground": "#403f53",
+ "peekViewTitleDescription.foreground": "#403f53",
+ "terminal.ansiBrightBlack": "#403f53",
+ "terminal.ansiBlack": "#403f53",
+ "terminal.ansiBrightBlue": "#288ed7",
+ "terminal.ansiBlue": "#288ed7",
+ "terminal.ansiBrightCyan": "#2AA298",
+ "terminal.ansiCyan": "#2AA298",
+ "terminal.ansiBrightGreen": "#08916a",
+ "terminal.ansiGreen": "#08916a",
+ "terminal.ansiBrightMagenta": "#d6438a",
+ "terminal.ansiMagenta": "#d6438a",
+ "terminal.ansiBrightRed": "#de3d3b",
+ "terminal.ansiRed": "#de3d3b",
+ "terminal.ansiBrightWhite": "#F0F0F0",
+ "terminal.ansiWhite": "#F0F0F0",
+ "terminal.ansiBrightYellow": "#daaa01",
+ "terminal.ansiYellow": "#E0AF02",
+ "terminal.background": "#F6F6F6",
+ "terminal.foreground": "#403f53"
+ },
+ "rules": [
+ {
+ "foreground": "#a2bffc",
+ "token": "markup.changed"
+ },
+ {
+ "foreground": "#a2bffc",
+ "token": "meta.diff.header.git"
+ },
+ {
+ "foreground": "#a2bffc",
+ "token": "meta.diff.header.from-file"
+ },
+ {
+ "foreground": "#a2bffc",
+ "token": "meta.diff.header.to-file"
+ },
+ {
+ "foreground": "#EF535090",
+ "token": "markup.deleted.diff"
+ },
+ {
+ "foreground": "#4876d6ff",
+ "token": "markup.inserted.diff"
+ },
+ {
+ "foreground": "#989fb1",
+ "token": "comment"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "string"
+ },
+ {
+ "foreground": "#c96765",
+ "token": "string.quoted"
+ },
+ {
+ "foreground": "#c96765",
+ "token": "variable.other.readwrite.js"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "support.constant.math"
+ },
+ {
+ "foreground": "#aa0982",
+ "fontStyle": "",
+ "token": "constant.numeric"
+ },
+ {
+ "foreground": "#aa0982",
+ "fontStyle": "",
+ "token": "constant.character.numeric"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "constant.language"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "punctuation.definition.constant"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "variable.other.constant"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "constant.character"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "constant.other"
+ },
+ {
+ "foreground": "#aa0982",
+ "token": "constant.character.escape"
+ },
+ {
+ "foreground": "#5ca7e4",
+ "token": "string.regexp"
+ },
+ {
+ "foreground": "#5ca7e4",
+ "token": "string.regexp keyword.other"
+ },
+ {
+ "foreground": "#5f7e97",
+ "token": "meta.function punctuation.separator.comma"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "variable"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "punctuation.accessor"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "storage"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "meta.var.expr"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "meta.class meta.method.declaration meta.var.expr storage.type.js"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "storage.type.property.js"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "storage.type.property.ts"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "storage.type.property.tsx"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "storage.type"
+ },
+ {
+ "fontStyle": "",
+ "token": "storage.type.function.arrow.js"
+ },
+ {
+ "foreground": "#111111",
+ "token": "entity.name.class"
+ },
+ {
+ "foreground": "#111111",
+ "token": "meta.class entity.name.type.class"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "entity.other.inherited-class"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "entity.name.function"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "punctuation.definition.tag"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "meta.tag"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "entity.name.tag"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "meta.tag.other.html"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "meta.tag.other.js"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "meta.tag.other.tsx"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "entity.name.tag.tsx"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "entity.name.tag.js"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "entity.name.tag"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "meta.tag.js"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "meta.tag.tsx"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "meta.tag.html"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "entity.other.attribute-name"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "entity.name.tag.custom"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "support.function"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "support.constant"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "support.constant.meta.property-value"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "support.type"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "support.class"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "support.variable.dom"
+ },
+ {
+ "foreground": "#ff2c83",
+ "token": "invalid"
+ },
+ {
+ "foreground": "#d3423e",
+ "token": "invalid.deprecated"
+ },
+ {
+ "foreground": "#0c969b",
+ "fontStyle": "",
+ "token": "keyword.operator"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.operator.relational"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.operator.assignment"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.operator.arithmetic"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.operator.bitwise"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.operator.increment"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.operator.ternary"
+ },
+ {
+ "foreground": "#939dbb",
+ "token": "comment.line.double-slash"
+ },
+ {
+ "foreground": "#cdebf7",
+ "token": "object"
+ },
+ {
+ "foreground": "#bc5454",
+ "token": "constant.language.null"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "meta.brace"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "meta.delimiter.period"
+ },
+ {
+ "foreground": "#111111",
+ "token": "punctuation.definition.string"
+ },
+ {
+ "foreground": "#bc5454",
+ "token": "punctuation.definition.string.begin.markdown"
+ },
+ {
+ "foreground": "#bc5454",
+ "token": "constant.language.boolean"
+ },
+ {
+ "foreground": "#ffffff",
+ "token": "object.comma"
+ },
+ {
+ "foreground": "#0c969b",
+ "fontStyle": "",
+ "token": "variable.parameter.function"
+ },
+ {
+ "foreground": "#0c969b",
+ "fontStyle": "",
+ "token": "support.type.vendor.property-name"
+ },
+ {
+ "foreground": "#0c969b",
+ "fontStyle": "",
+ "token": "support.constant.vendor.property-value"
+ },
+ {
+ "foreground": "#0c969b",
+ "fontStyle": "",
+ "token": "support.type.property-name"
+ },
+ {
+ "foreground": "#0c969b",
+ "fontStyle": "",
+ "token": "meta.property-list entity.name.tag"
+ },
+ {
+ "foreground": "#57eaf1",
+ "token": "meta.property-list entity.name.tag.reference"
+ },
+ {
+ "foreground": "#aa0982",
+ "token": "constant.other.color.rgb-value punctuation.definition.constant"
+ },
+ {
+ "foreground": "#aa0982",
+ "token": "constant.other.color"
+ },
+ {
+ "foreground": "#aa0982",
+ "token": "keyword.other.unit"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "meta.selector"
+ },
+ {
+ "foreground": "#aa0982",
+ "token": "entity.other.attribute-name.id"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "meta.property-name"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "entity.name.tag.doctype"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "meta.tag.sgml.doctype"
+ },
+ {
+ "foreground": "#111111",
+ "token": "punctuation.definition.parameters"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "keyword.control.operator"
+ },
+ {
+ "foreground": "#994cc3",
+ "fontStyle": "",
+ "token": "keyword.operator.logical"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "variable.instance"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "variable.other.instance"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "variable.readwrite.instance"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "variable.other.readwrite.instance"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "variable.other.property"
+ },
+ {
+ "foreground": "#111111",
+ "token": "variable.other.object.property"
+ },
+ {
+ "fontStyle": "",
+ "token": "variable.other.object.js"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "entity.name.function"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.operator.comparison"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control.flow.js"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control.flow.ts"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control.flow.tsx"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control.ruby"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control.module.ruby"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control.class.ruby"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control.def.ruby"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control.loop.js"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control.loop.ts"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control.import.js"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control.import.ts"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control.import.tsx"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control.from.js"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control.from.ts"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control.from.tsx"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.operator.instanceof.js"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.operator.expression.instanceof.ts"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.operator.expression.instanceof.tsx"
+ },
+ {
+ "foreground": "#994cc3",
+ "fontStyle": "",
+ "token": "keyword.control.conditional.js"
+ },
+ {
+ "foreground": "#994cc3",
+ "fontStyle": "",
+ "token": "keyword.control.conditional.ts"
+ },
+ {
+ "foreground": "#994cc3",
+ "fontStyle": "",
+ "token": "keyword.control.switch.js"
+ },
+ {
+ "foreground": "#994cc3",
+ "fontStyle": "",
+ "token": "keyword.control.switch.ts"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "support.constant"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "keyword.other.special-method"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "keyword.other.new"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "keyword.other.debugger"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "keyword.control"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "support.function"
+ },
+ {
+ "foreground": "#aa0982",
+ "token": "invalid.broken"
+ },
+ {
+ "foreground": "#8BD649",
+ "token": "invalid.unimplemented"
+ },
+ {
+ "foreground": "#c96765",
+ "token": "invalid.illegal"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "variable.language"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "support.variable.property"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "variable.function"
+ },
+ {
+ "foreground": "#ec5f67",
+ "token": "variable.interpolation"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "meta.function-call"
+ },
+ {
+ "foreground": "#d3423e",
+ "token": "punctuation.section.embedded"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "punctuation.terminator.expression"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "punctuation.definition.arguments"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "punctuation.definition.array"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "punctuation.section.array"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "meta.array"
+ },
+ {
+ "foreground": "#111111",
+ "token": "punctuation.definition.list.begin"
+ },
+ {
+ "foreground": "#111111",
+ "token": "punctuation.definition.list.end"
+ },
+ {
+ "foreground": "#111111",
+ "token": "punctuation.separator.arguments"
+ },
+ {
+ "foreground": "#111111",
+ "token": "punctuation.definition.list"
+ },
+ {
+ "foreground": "#d3423e",
+ "token": "string.template meta.template.expression"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "string.template punctuation.definition.string"
+ },
+ {
+ "foreground": "#994cc3",
+ "fontStyle": "italic",
+ "token": "italic"
+ },
+ {
+ "foreground": "#4876d6",
+ "fontStyle": "bold",
+ "token": "bold"
+ },
+ {
+ "foreground": "#697098",
+ "token": "quote"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "raw"
+ },
+ {
+ "foreground": "#31e1eb",
+ "token": "variable.assignment.coffee"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.parameter.function.coffee"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "variable.assignment.coffee"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.readwrite.cs"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "entity.name.type.class.cs"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "storage.type.cs"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "entity.name.type.namespace.cs"
+ },
+ {
+ "foreground": "#c96765",
+ "fontStyle": "",
+ "token": "entity.name.tag.css"
+ },
+ {
+ "foreground": "#c96765",
+ "fontStyle": "",
+ "token": "entity.name.tag.less"
+ },
+ {
+ "foreground": "#c96765",
+ "fontStyle": "",
+ "token": "entity.name.tag.custom.css"
+ },
+ {
+ "foreground": "#c96765",
+ "fontStyle": "",
+ "token": "support.constant.property-value.css"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "entity.name.tag.wildcard.css"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "entity.name.tag.wildcard.less"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "entity.name.tag.wildcard.scss"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "entity.name.tag.wildcard.sass"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "keyword.other.unit.css"
+ },
+ {
+ "foreground": "#aa0982",
+ "token": "meta.attribute-selector.css entity.other.attribute-name.attribute"
+ },
+ {
+ "foreground": "#aa0982",
+ "token": "variable.other.readwrite.js"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "source.elixir support.type.elixir"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "source.elixir meta.module.elixir entity.name.class.elixir"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "source.elixir entity.name.function"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "source.elixir constant.other.symbol.elixir"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "source.elixir constant.other.keywords.elixir"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "source.elixir punctuation.definition.string"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "source.elixir variable.other.readwrite.module.elixir"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "source.elixir variable.other.readwrite.module.elixir punctuation.definition.variable.elixir"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "source.elixir .punctuation.binary.elixir"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "constant.keyword.clojure"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "source.go meta.function-call.go"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "source.go keyword.package.go"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "source.go keyword.import.go"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "source.go keyword.function.go"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "source.go keyword.type.go"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "source.go keyword.struct.go"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "source.go keyword.interface.go"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "source.go keyword.const.go"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "source.go keyword.var.go"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "source.go keyword.map.go"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "source.go keyword.channel.go"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "source.go keyword.control.go"
+ },
+ {
+ "foreground": "#bc5454",
+ "token": "source.go constant.language.go"
+ },
+ {
+ "foreground": "#bc5454",
+ "token": "source.go constant.other.placeholder.go"
+ },
+ {
+ "foreground": "#0c969bff",
+ "token": "entity.name.function.preprocessor.cpp"
+ },
+ {
+ "foreground": "#0c969bff",
+ "token": "entity.scope.name.cpp"
+ },
+ {
+ "foreground": "#111111",
+ "token": "meta.namespace-block.cpp"
+ },
+ {
+ "foreground": "#bc5454",
+ "token": "storage.type.language.primitive.cpp"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "meta.preprocessor.macro.cpp"
+ },
+ {
+ "foreground": "#111111",
+ "token": "variable.parameter"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "variable.other.readwrite.powershell"
+ },
+ {
+ "foreground": "#0c969bff",
+ "token": "support.function.powershell"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "entity.other.attribute-name.id.html"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "punctuation.definition.tag.html"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "meta.tag.sgml.doctype.html"
+ },
+ {
+ "foreground": "#111111",
+ "token": "meta.class entity.name.type.class.js"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "meta.method.declaration storage.type.js"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "terminator.js"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "meta.js punctuation.definition.js"
+ },
+ {
+ "foreground": "#5f7e97",
+ "token": "entity.name.type.instance.jsdoc"
+ },
+ {
+ "foreground": "#5f7e97",
+ "token": "entity.name.type.instance.phpdoc"
+ },
+ {
+ "foreground": "#78ccf0",
+ "token": "variable.other.jsdoc"
+ },
+ {
+ "foreground": "#78ccf0",
+ "token": "variable.other.phpdoc"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.meta.import.js"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "meta.import.js variable.other"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.meta.export.js"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "meta.export.js variable.other"
+ },
+ {
+ "foreground": "#7986E7",
+ "token": "variable.parameter.function.js"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.object.js"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.object.jsx"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.object.property.js"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.object.property.jsx"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.js"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.js"
+ },
+ {
+ "foreground": "#111111",
+ "fontStyle": "",
+ "token": "entity.name.type.js"
+ },
+ {
+ "foreground": "#111111",
+ "fontStyle": "",
+ "token": "entity.name.type.module.js"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "support.class.js"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "support.type.property-name.json"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "support.constant.json"
+ },
+ {
+ "foreground": "#c789d6",
+ "token": "meta.structure.dictionary.value.json string.quoted.double"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "string.quoted.double.json punctuation.definition.string.json"
+ },
+ {
+ "foreground": "#bc5454",
+ "token": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "variable.other.object.js"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.ruby"
+ },
+ {
+ "foreground": "#c96765",
+ "token": "entity.name.type.class.ruby"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "constant.language.symbol.hashkey.ruby"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "constant.language.symbol.ruby"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "entity.name.tag.less"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "keyword.other.unit.css"
+ },
+ {
+ "foreground": "#aa0982",
+ "token": "meta.attribute-selector.less entity.other.attribute-name.attribute"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "markup.heading.markdown"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "markup.heading.setext.1.markdown"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "markup.heading.setext.2.markdown"
+ },
+ {
+ "foreground": "#994cc3",
+ "fontStyle": "italic",
+ "token": "markup.italic.markdown"
+ },
+ {
+ "foreground": "#4876d6",
+ "fontStyle": "bold",
+ "token": "markup.bold.markdown"
+ },
+ {
+ "foreground": "#697098",
+ "token": "markup.quote.markdown"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "markup.inline.raw.markdown"
+ },
+ {
+ "foreground": "#ff869a",
+ "token": "markup.underline.link.markdown"
+ },
+ {
+ "foreground": "#ff869a",
+ "token": "markup.underline.link.image.markdown"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "string.other.link.title.markdown"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "string.other.link.description.markdown"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "punctuation.definition.string.markdown"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "punctuation.definition.string.begin.markdown"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "punctuation.definition.string.end.markdown"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "meta.link.inline.markdown punctuation.definition.string"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "punctuation.definition.metadata.markdown"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "beginning.punctuation.definition.list.markdown"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "markup.inline.raw.string.markdown"
+ },
+ {
+ "foreground": "#111111",
+ "token": "variable.other.php"
+ },
+ {
+ "foreground": "#111111",
+ "token": "variable.other.property.php"
+ },
+ {
+ "foreground": "#111111",
+ "token": "support.class.php"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "meta.function-call.php punctuation"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "variable.other.global.php"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "variable.other.global.php punctuation.definition.variable"
+ },
+ {
+ "foreground": "#bc5454",
+ "token": "constant.language.python"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "variable.parameter.function.python"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "meta.function-call.arguments.python"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "meta.function-call.python"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "meta.function-call.generic.python"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "punctuation.python"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "entity.name.function.decorator.python"
+ },
+ {
+ "foreground": "#aa0982",
+ "token": "source.python variable.language.special"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.control"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "variable.scss"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "variable.sass"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "variable.parameter.url.scss"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "variable.parameter.url.sass"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "source.css.scss meta.at-rule variable"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "source.css.sass meta.at-rule variable"
+ },
+ {
+ "foreground": "#111111",
+ "token": "source.css.scss meta.at-rule variable"
+ },
+ {
+ "foreground": "#111111",
+ "token": "source.css.sass meta.at-rule variable"
+ },
+ {
+ "foreground": "#aa0982",
+ "token": "meta.attribute-selector.scss entity.other.attribute-name.attribute"
+ },
+ {
+ "foreground": "#aa0982",
+ "token": "meta.attribute-selector.sass entity.other.attribute-name.attribute"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "entity.name.tag.scss"
+ },
+ {
+ "foreground": "#0c969b",
+ "token": "entity.name.tag.sass"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.other.unit.scss"
+ },
+ {
+ "foreground": "#994cc3",
+ "token": "keyword.other.unit.sass"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.readwrite.alias.ts"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.readwrite.alias.tsx"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.readwrite.ts"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.readwrite.tsx"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.object.ts"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.object.tsx"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.object.property.ts"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.object.property.tsx"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.ts"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.tsx"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.tsx"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.ts"
+ },
+ {
+ "foreground": "#111111",
+ "token": "entity.name.type.ts"
+ },
+ {
+ "foreground": "#111111",
+ "token": "entity.name.type.tsx"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "support.class.node.ts"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "support.class.node.tsx"
+ },
+ {
+ "foreground": "#5f7e97",
+ "token": "meta.type.parameters.ts entity.name.type"
+ },
+ {
+ "foreground": "#5f7e97",
+ "token": "meta.type.parameters.tsx entity.name.type"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "meta.import.ts punctuation.definition.block"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "meta.import.tsx punctuation.definition.block"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "meta.export.ts punctuation.definition.block"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "meta.export.tsx punctuation.definition.block"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "meta.decorator punctuation.decorator.ts"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "meta.decorator punctuation.decorator.tsx"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "meta.tag.js meta.jsx.children.tsx"
+ },
+ {
+ "foreground": "#111111",
+ "token": "entity.name.tag.yaml"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.other.readwrite.js"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "variable.parameter"
+ },
+ {
+ "foreground": "#aa0982",
+ "fontStyle": "",
+ "token": "support.class.component.js"
+ },
+ {
+ "foreground": "#aa0982",
+ "fontStyle": "",
+ "token": "support.class.component.tsx"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "meta.jsx.children"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "meta.jsx.children.js"
+ },
+ {
+ "foreground": "#403f53",
+ "token": "meta.jsx.children.tsx"
+ },
+ {
+ "foreground": "#111111",
+ "token": "meta.class entity.name.type.class.tsx"
+ },
+ {
+ "foreground": "#111111",
+ "token": "entity.name.type.tsx"
+ },
+ {
+ "foreground": "#111111",
+ "token": "entity.name.type.module.tsx"
+ },
+ {
+ "foreground": "#C792EA",
+ "token": "meta.class.ts meta.var.expr.ts storage.type.ts"
+ },
+ {
+ "foreground": "#C792EA",
+ "token": "meta.class.tsx meta.var.expr.tsx storage.type.tsx"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "meta.method.declaration storage.type.ts"
+ },
+ {
+ "foreground": "#4876d6",
+ "token": "meta.method.declaration storage.type.tsx"
+ },
+ {
+ "fontStyle": "",
+ "token": "meta.property-list.css meta.property-value.css variable.other.less"
+ },
+ {
+ "fontStyle": "",
+ "token": "meta.property-list.scss variable.scss"
+ },
+ {
+ "fontStyle": "",
+ "token": "meta.property-list.sass variable.sass"
+ },
+ {
+ "fontStyle": "",
+ "token": "meta.brace"
+ },
+ {
+ "fontStyle": "",
+ "token": "keyword.operator.operator"
+ },
+ {
+ "fontStyle": "",
+ "token": "keyword.operator.or.regexp"
+ },
+ {
+ "fontStyle": "",
+ "token": "keyword.operator.expression.in"
+ },
+ {
+ "fontStyle": "",
+ "token": "keyword.operator.relational"
+ },
+ {
+ "fontStyle": "",
+ "token": "keyword.operator.assignment"
+ },
+ {
+ "fontStyle": "",
+ "token": "keyword.operator.comparison"
+ },
+ {
+ "fontStyle": "",
+ "token": "keyword.operator.type"
+ },
+ {
+ "fontStyle": "",
+ "token": "keyword.operator"
+ },
+ {
+ "fontStyle": "",
+ "token": "keyword"
+ },
+ {
+ "fontStyle": "",
+ "token": "punctuation.definintion.string"
+ },
+ {
+ "fontStyle": "",
+ "token": "punctuation"
+ },
+ {
+ "fontStyle": "",
+ "token": "variable.other.readwrite.js"
+ },
+ {
+ "fontStyle": "",
+ "token": "storage.type"
+ },
+ {
+ "fontStyle": "",
+ "token": "source.css"
+ },
+ {
+ "fontStyle": "",
+ "token": "string.quoted"
+ }
+ ],
+ "encodedTokensColors": []
+}
diff --git a/html/monaco-editor/themes/OneDark-Pro.json b/html/monaco-editor/themes/OneDark-Pro.json
new file mode 100644
index 0000000..4aa4ac6
--- /dev/null
+++ b/html/monaco-editor/themes/OneDark-Pro.json
@@ -0,0 +1,1956 @@
+{
+ "inherit": false,
+ "base": "vs-dark",
+ "colors": {
+ "activityBar.background": "#282c34",
+ "activityBar.foreground": "#d7dae0",
+ "activityBarBadge.background": "#4d78cc",
+ "activityBarBadge.foreground": "#f8fafd",
+ "badge.background": "#282c34",
+ "button.background": "#404754",
+ "button.secondaryBackground": "#30333d",
+ "button.secondaryForeground": "#c0bdbd",
+ "checkbox.border": "#404754",
+ "debugToolBar.background": "#21252b",
+ "descriptionForeground": "#abb2bf",
+ "diffEditor.insertedTextBackground": "#00809b33",
+ "dropdown.background": "#21252b",
+ "dropdown.border": "#21252b",
+ "editor.background": "#282c34",
+ "editor.findMatchBackground": "#42557b",
+ "editor.findMatchBorder": "#457dff",
+ "editor.findMatchHighlightBackground": "#6199ff2f",
+ "editor.foreground": "#abb2bf",
+ "editorBracketHighlight.foreground1": "#d19a66",
+ "editorBracketHighlight.foreground2": "#c678dd",
+ "editorBracketHighlight.foreground3": "#56b6c2",
+ "editorHoverWidget.highlightForeground": "#61afef",
+ "editorInlayHint.foreground": "#abb2bf",
+ "editorInlayHint.background": "#2c313c",
+ "editor.lineHighlightBackground": "#2c313c",
+ "editorLineNumber.activeForeground": "#abb2bf",
+ "editorGutter.addedBackground": "#109868",
+ "editorGutter.deletedBackground": "#9A353D",
+ "editorGutter.modifiedBackground": "#948B60",
+ "editorOverviewRuler.addedBackground": "#109868",
+ "editorOverviewRuler.deletedBackground": "#9A353D",
+ "editorOverviewRuler.modifiedBackground": "#948B60",
+ "editor.selectionBackground": "#67769660",
+ "editor.selectionHighlightBackground": "#ffffff10",
+ "editor.selectionHighlightBorder": "#dddddd",
+ "editor.wordHighlightBackground": "#d2e0ff2f",
+ "editor.wordHighlightBorder": "#7f848e",
+ "editor.wordHighlightStrongBackground": "#abb2bf26",
+ "editor.wordHighlightStrongBorder": "#7f848e",
+ "editorBracketMatch.background": "#515a6b",
+ "editorBracketMatch.border": "#515a6b",
+ "editorCursor.background": "#ffffffc9",
+ "editorCursor.foreground": "#528bff",
+ "editorError.foreground": "#c24038",
+ "editorGroup.background": "#181a1f",
+ "editorGroup.border": "#181a1f",
+ "editorGroupHeader.tabsBackground": "#21252b",
+ "editorHoverWidget.background": "#21252b",
+ "editorHoverWidget.border": "#181a1f",
+ "editorIndentGuide.activeBackground": "#c8c8c859",
+ "editorIndentGuide.background": "#3b4048",
+ "editorLineNumber.foreground": "#495162",
+ "editorMarkerNavigation.background": "#21252b",
+ "editorRuler.foreground": "#abb2bf26",
+ "editorSuggestWidget.background": "#21252b",
+ "editorSuggestWidget.border": "#181a1f",
+ "editorSuggestWidget.selectedBackground": "#2c313a",
+ "editorWarning.foreground": "#d19a66",
+ "editorWhitespace.foreground": "#ffffff1d",
+ "editorWidget.background": "#21252b",
+ "focusBorder": "#3e4452",
+ "gitDecoration.ignoredResourceForeground": "#636b78",
+ "input.background": "#1d1f23",
+ "input.foreground": "#abb2bf",
+ "list.activeSelectionBackground": "#2c313a",
+ "list.activeSelectionForeground": "#d7dae0",
+ "list.focusBackground": "#323842",
+ "list.focusForeground": "#f0f0f0",
+ "list.highlightForeground": "#c5c5c5",
+ "list.hoverBackground": "#2c313a",
+ "list.hoverForeground": "#abb2bf",
+ "list.inactiveSelectionBackground": "#323842",
+ "list.inactiveSelectionForeground": "#d7dae0",
+ "list.warningForeground": "#d19a66",
+ "menu.foreground": "#abb2bf",
+ "menu.separatorBackground": "#343a45",
+ "minimapGutter.addedBackground": "#109868",
+ "minimapGutter.deletedBackground": "#9A353D",
+ "minimapGutter.modifiedBackground": "#948B60",
+ "panel.border": "#3e4452",
+ "panelSectionHeader.background": "#21252b",
+ "peekViewEditor.background": "#1b1d23",
+ "peekViewEditor.matchHighlightBackground": "#29244b",
+ "peekViewResult.background": "#22262b",
+ "scrollbar.shadow": "#23252c",
+ "scrollbarSlider.activeBackground": "#747d9180",
+ "scrollbarSlider.background": "#4e566660",
+ "scrollbarSlider.hoverBackground": "#5a637580",
+ "settings.focusedRowBackground": "#282c34",
+ "settings.headerForeground": "#fff",
+ "sideBar.background": "#21252b",
+ "sideBar.foreground": "#abb2bf",
+ "sideBarSectionHeader.background": "#282c34",
+ "sideBarSectionHeader.foreground": "#abb2bf",
+ "statusBar.background": "#21252b",
+ "statusBar.debuggingBackground": "#cc6633",
+ "statusBar.debuggingBorder": "#ff000000",
+ "statusBar.debuggingForeground": "#ffffff",
+ "statusBar.foreground": "#9da5b4",
+ "statusBar.noFolderBackground": "#21252b",
+ "statusBarItem.remoteBackground": "#4d78cc",
+ "statusBarItem.remoteForeground": "#f8fafd",
+ "tab.activeBackground": "#282c34",
+ "tab.activeBorder": "#b4b4b4",
+ "tab.activeForeground": "#dcdcdc",
+ "tab.border": "#181a1f",
+ "tab.hoverBackground": "#323842",
+ "tab.inactiveBackground": "#21252b",
+ "tab.unfocusedHoverBackground": "#323842",
+ "terminal.ansiBlack": "#3f4451",
+ "terminal.ansiBlue": "#4aa5f0",
+ "terminal.ansiBrightBlack": "#4f5666",
+ "terminal.ansiBrightBlue": "#4dc4ff",
+ "terminal.ansiBrightCyan": "#4cd1e0",
+ "terminal.ansiBrightGreen": "#a5e075",
+ "terminal.ansiBrightMagenta": "#de73ff",
+ "terminal.ansiBrightRed": "#ff616e",
+ "terminal.ansiBrightWhite": "#e6e6e6",
+ "terminal.ansiBrightYellow": "#f0a45d",
+ "terminal.ansiCyan": "#42b3c2",
+ "terminal.ansiGreen": "#8cc265",
+ "terminal.ansiMagenta": "#c162de",
+ "terminal.ansiRed": "#e05561",
+ "terminal.ansiWhite": "#d7dae0",
+ "terminal.ansiYellow": "#d18f52",
+ "terminal.background": "#282c34",
+ "terminal.border": "#3e4452",
+ "terminal.foreground": "#abb2bf",
+ "terminal.selectionBackground": "#abb2bf30",
+ "textBlockQuote.background": "#2e3440",
+ "textBlockQuote.border": "#4b5362",
+ "textLink.foreground": "#61afef",
+ "textPreformat.foreground": "#d19a66",
+ "titleBar.activeBackground": "#282c34",
+ "titleBar.activeForeground": "#9da5b4",
+ "titleBar.inactiveBackground": "#21252b",
+ "titleBar.inactiveForeground": "#6b717d",
+ "tree.indentGuidesStroke": "#ffffff1d",
+ "walkThrough.embeddedEditorBackground": "#2e3440",
+ "welcomePage.buttonHoverBackground": "#404754"
+ },
+ "rules": [
+ {
+ "foreground": "#abb2bf",
+ "token": "meta.embedded"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "punctuation.definition.delayed.unison"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "punctuation.definition.list.begin.unison"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "punctuation.definition.list.end.unison"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "punctuation.definition.ability.begin.unison"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "punctuation.definition.ability.end.unison"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "punctuation.operator.assignment.as.unison"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "punctuation.separator.pipe.unison"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "punctuation.separator.delimiter.unison"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "punctuation.definition.hash.unison"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "variable.other.generic-type.haskell"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "storage.type.haskell"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "support.variable.magic.python"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.separator.period.python"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.separator.element.python"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.parenthesis.begin.python"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.parenthesis.end.python"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "variable.parameter.function.language.special.self.python"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "variable.parameter.function.language.special.cls.python"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "storage.modifier.lifetime.rust"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "support.function.std.rust"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.name.lifetime.rust"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "variable.language.rust"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "support.constant.edge"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "constant.other.character-class.regexp"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.word"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "keyword.operator.quantifier.regexp"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "variable.parameter.function"
+ },
+ {
+ "foreground": "#5c6370",
+ "token": "comment markup.link"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "markup.changed.diff"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "meta.diff.header.from-file"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "meta.diff.header.to-file"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "punctuation.definition.from-file.diff"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "punctuation.definition.to-file.diff"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "markup.inserted.diff"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "markup.deleted.diff"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "meta.function.c"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "meta.function.cpp"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.block.begin.bracket.curly.cpp"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.block.end.bracket.curly.cpp"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.terminator.statement.c"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.block.begin.bracket.curly.c"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.block.end.bracket.curly.c"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.parens.begin.bracket.round.c"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.parens.end.bracket.round.c"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.parameters.begin.bracket.round.c"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.parameters.end.bracket.round.c"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.separator.key-value"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "keyword.operator.expression.import"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "support.constant.math"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.constant.property.math"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "variable.other.constant"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "storage.type.annotation.java"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "storage.type.object.array.java"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "source.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.block.begin.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.block.end.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.method-parameters.begin.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.method-parameters.end.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "meta.method.identifier.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.method.begin.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.method.end.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.terminator.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.class.begin.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.class.end.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.inner-class.begin.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.inner-class.end.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "meta.method-call.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.class.begin.bracket.curly.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.class.end.bracket.curly.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.method.begin.bracket.curly.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.method.end.bracket.curly.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.separator.period.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.bracket.angle.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.annotation.java"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "meta.method.body.java"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "meta.method.java"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "storage.modifier.import.java"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "storage.type.java"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "storage.type.generic.java"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.instanceof.java"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "meta.definition.variable.name.java"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.logical"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.bitwise"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.channel"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.constant.property-value.scss"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.constant.property-value.css"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.css"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.scss"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.less"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.constant.color.w3c-standard-color-name.css"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.constant.color.w3c-standard-color-name.scss"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.separator.list.comma.css"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.constant.color.w3c-standard-color-name.css"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "support.type.vendored.property-name.css"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "support.module.node"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "support.type.object.module"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "support.module.node"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.name.type.module"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "variable.other.readwrite"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "meta.object-literal.key"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "support.variable.property"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "support.variable.object.process"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "support.variable.object.node"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.constant.json"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.expression.instanceof"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.new"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.ternary"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.optional"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.expression.keyof"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "support.type.object.console"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.variable.property.process"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "entity.name.function"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "support.function.console"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "keyword.operator.misc.rust"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.sigil.rust"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.delete"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "support.type.object.dom"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "support.variable.dom"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "support.variable.property.dom"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.arithmetic"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.comparison"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.decrement"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.increment"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.relational"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.assignment.c"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.comparison.c"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.c"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.increment.c"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.decrement.c"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.bitwise.shift.c"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.assignment.cpp"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.comparison.cpp"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.cpp"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.increment.cpp"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.decrement.cpp"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.bitwise.shift.cpp"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.separator.delimiter"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "punctuation.separator.c"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "punctuation.separator.cpp"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "support.type.posix-reserved.c"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "support.type.posix-reserved.cpp"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.sizeof.c"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.sizeof.cpp"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "variable.parameter.function.language.python"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "support.type.python"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.logical.python"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "variable.parameter.function.python"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.arguments.begin.python"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.arguments.end.python"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.separator.arguments.python"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.list.begin.python"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.list.end.python"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "meta.function-call.generic.python"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "constant.character.format.placeholder.other.python"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "keyword.operator"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.assignment.compound"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.assignment.compound.js"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.assignment.compound.ts"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.name.namespace"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "variable"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "variable.c"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "variable.language"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "token.variable.parameter.java"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "import.storage.java"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "token.package.keyword"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "token.package"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "entity.name.function"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "meta.require"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "support.function.any-method"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "variable.function"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.name.type.namespace"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "support.class"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": " entity.name.type.class"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.name.class.identifier.namespace.type"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.name.class"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "variable.other.class.js"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "variable.other.class.ts"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "variable.other.class.php"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.name.type"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.control"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "control.elements"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": " keyword.operator.less"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "keyword.other.special-method"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "storage"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "token.storage"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.expression.delete"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.expression.in"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.expression.of"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.expression.instanceof"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.new"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.expression.typeof"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.expression.void"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "token.storage.type.java"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "support.function"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "support.type.property-name"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "support.type.property-name.toml"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": " support.type.property-name.table.toml"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": " support.type.property-name.array.toml"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "support.constant.property-value"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.constant.font-name"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "meta.tag"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "string"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "constant.other.symbol"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "constant.numeric"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "constant"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "punctuation.definition.constant"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "entity.name.tag"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "entity.other.attribute-name"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "entity.other.attribute-name.id"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "entity.other.attribute-name.class.css"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "meta.selector"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "markup.heading"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "markup.heading punctuation.definition.heading"
+ },
+ {
+ "foreground": "#61afef",
+ "token": " entity.name.section"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "keyword.other.unit"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "markup.bold"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "todo.bold"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "punctuation.definition.bold"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "markup.italic"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": " punctuation.definition.italic"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "todo.emphasis"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "emphasis md"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "entity.name.section.markdown"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "punctuation.definition.heading.markdown"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "punctuation.definition.list.begin.markdown"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "markup.heading.setext"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "punctuation.definition.bold.markdown"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "markup.inline.raw.markdown"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "markup.inline.raw.string.markdown"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "punctuation.definition.raw.markdown"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "punctuation.definition.list.markdown"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "punctuation.definition.string.begin.markdown"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "punctuation.definition.string.end.markdown"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "punctuation.definition.metadata.markdown"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "beginning.punctuation.definition.list.markdown"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "punctuation.definition.metadata.markdown"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "markup.underline.link.markdown"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "markup.underline.link.image.markdown"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "string.other.link.title.markdown"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "string.other.link.description.markdown"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "markup.raw.monospace.asciidoc"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "punctuation.definition.asciidoc"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "markup.list.asciidoc"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "markup.link.asciidoc"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "markup.other.url.asciidoc"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "string.unquoted.asciidoc"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "markup.other.url.asciidoc"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "string.regexp"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "punctuation.section.embedded"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": " variable.interpolation"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "punctuation.section.embedded.begin"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "punctuation.section.embedded.end"
+ },
+ {
+ "foreground": "#ffffff",
+ "token": "invalid.illegal"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "invalid.illegal.bad-ampersand.html"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "invalid.illegal.unrecognized-tag.html"
+ },
+ {
+ "foreground": "#ffffff",
+ "token": "invalid.broken"
+ },
+ {
+ "foreground": "#ffffff",
+ "token": "invalid.deprecated"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "invalid.deprecated.entity.other.attribute-name.html"
+ },
+ {
+ "foreground": "#ffffff",
+ "token": "invalid.unimplemented"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "source.json meta.structure.dictionary.json > string.quoted.json"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "source.json meta.structure.dictionary.json > value.json > string.quoted.json"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "source.json meta.structure.array.json > value.json > string.quoted.json"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "source.json meta.structure.array.json > value.json > string.quoted.json > punctuation"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "source.json meta.structure.dictionary.json > constant.language.json"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "source.json meta.structure.array.json > constant.language.json"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "support.type.property-name.json"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "support.type.property-name.json punctuation"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "support.other.namespace.use.php"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "support.other.namespace.use-as.php"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.other.alias.php"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "meta.interface.php"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.error-control.php"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.type.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.array.begin.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.array.end.php"
+ },
+ {
+ "foreground": "#f44747",
+ "token": "invalid.illegal.non-null-typehinted.php"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "storage.type.php"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "meta.other.type.phpdoc.php"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "keyword.other.type.php"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "keyword.other.array.phpdoc.php"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "meta.function-call.php"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "meta.function-call.object.php"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "meta.function-call.static.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.parameters.begin.bracket.round.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.parameters.end.bracket.round.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.separator.delimiter.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.scope.begin.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.section.scope.end.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.terminator.expression.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.arguments.begin.bracket.round.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.arguments.end.bracket.round.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.storage-type.begin.bracket.round.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.storage-type.end.bracket.round.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.array.begin.bracket.round.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.array.end.bracket.round.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.begin.bracket.round.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.end.bracket.round.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.begin.bracket.curly.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.end.bracket.curly.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.section.switch-block.end.bracket.curly.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.section.switch-block.start.bracket.curly.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.section.switch-block.begin.bracket.curly.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.section.switch-block.end.bracket.curly.php"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.constant.core.rust"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.constant.ext.php"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.constant.std.php"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.constant.core.php"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.constant.parser-token.php"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "entity.name.goto-label.php"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "support.other.php"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.logical.php"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.bitwise.php"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.arithmetic.php"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.regexp.php"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.comparison.php"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.heredoc.php"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.nowdoc.php"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "meta.function.decorator.python"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "support.token.decorator.python"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "meta.function.decorator.identifier.python"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "function.parameter"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "function.brace"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "function.parameter.ruby"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": " function.parameter.cs"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "constant.language.symbol.ruby"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "rgb-value"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "inline-color-decoration rgb-value"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "less rgb-value"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "selector.sass"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "support.type.primitive.ts"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "support.type.builtin.ts"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "support.type.primitive.tsx"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "support.type.builtin.tsx"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "block.scope.end"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "block.scope.begin"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "storage.type.cs"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "entity.name.variable.local.cs"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "token.info-token"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "token.warn-token"
+ },
+ {
+ "foreground": "#f44747",
+ "token": "token.error-token"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "token.debug-token"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "punctuation.definition.template-expression.begin"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "punctuation.definition.template-expression.end"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "punctuation.section.embedded"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "meta.template.expression"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.module"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "support.type.type.flowtype"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "support.type.primitive"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "meta.property.object"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "variable.parameter.function.js"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "keyword.other.template.begin"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "keyword.other.template.end"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "keyword.other.substitution.begin"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "keyword.other.substitution.end"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.operator.assignment"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "keyword.operator.assignment.go"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.arithmetic.go"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "keyword.operator.address.go"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.name.package.go"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "support.type.prelude.elm"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.constant.elm"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "punctuation.quasi.element"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "constant.character.entity"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "entity.other.attribute-name.pseudo-element"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "entity.other.attribute-name.pseudo-class"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.global.clojure"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "meta.symbol.clojure"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "constant.keyword.clojure"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "meta.arguments.coffee"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "variable.parameter.function.coffee"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "source.ini"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "meta.scope.prerequisites.makefile"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "source.makefile"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "storage.modifier.import.groovy"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "meta.method.groovy"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "meta.definition.variable.name.groovy"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "meta.definition.class.inherited.classes.groovy"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "support.variable.semantic.hlsl"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "support.type.texture.hlsl"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "support.type.sampler.hlsl"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "support.type.object.hlsl"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "support.type.object.rw.hlsl"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "support.type.fx.hlsl"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "support.type.object.hlsl"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "text.variable"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "text.bracketed"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "support.type.swift"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "support.type.vb.asp"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.name.function.xi"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "entity.name.class.xi"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "constant.character.character-class.regexp.xi"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "constant.regexp.xi"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "keyword.control.xi"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "invalid.xi"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "beginning.punctuation.definition.quote.markdown.xi"
+ },
+ {
+ "foreground": "#7f848e",
+ "token": "beginning.punctuation.definition.list.markdown.xi"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "constant.character.xi"
+ },
+ {
+ "foreground": "#61afef",
+ "token": "accent.xi"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "wikiword.xi"
+ },
+ {
+ "foreground": "#ffffff",
+ "token": "constant.other.color.rgb-value.xi"
+ },
+ {
+ "foreground": "#5c6370",
+ "token": "punctuation.definition.tag.xi"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.name.label.cs"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.name.scope-resolution.function.call"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.name.scope-resolution.function.definition"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "entity.name.label.cs"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "markup.heading.setext.1.markdown"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "markup.heading.setext.2.markdown"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": " meta.brace.square"
+ },
+ {
+ "foreground": "#7f848e",
+ "fontStyle": "italic",
+ "token": "comment"
+ },
+ {
+ "foreground": "#7f848e",
+ "fontStyle": "italic",
+ "token": " punctuation.definition.comment"
+ },
+ {
+ "foreground": "#5c6370",
+ "token": "markup.quote.markdown"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.definition.block.sequence.item.yaml"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "constant.language.symbol.elixir"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "constant.language.symbol.double-quoted.elixir"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.name.variable.parameter.cs"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "entity.name.variable.field.cs"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "markup.deleted"
+ },
+ {
+ "foreground": "#98c379",
+ "token": "markup.inserted"
+ },
+ {
+ "fontStyle": "underline",
+ "token": "markup.underline"
+ },
+ {
+ "foreground": "#BE5046",
+ "token": "punctuation.section.embedded.begin.php"
+ },
+ {
+ "foreground": "#BE5046",
+ "token": "punctuation.section.embedded.end.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "support.other.namespace.php"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "variable.other.object"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "variable.other.constant.property"
+ },
+ {
+ "foreground": "#e5c07b",
+ "token": "entity.other.inherited-class"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "variable.other.readwrite.c"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "entity.name.variable.parameter.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "punctuation.separator.colon.php"
+ },
+ {
+ "foreground": "#abb2bf",
+ "token": "constant.other.php"
+ },
+ {
+ "foreground": "#c678dd",
+ "token": "constant.numeric.decimal.asm.x86_64"
+ },
+ {
+ "foreground": "#d19a66",
+ "token": "support.other.parenthesis.regexp"
+ },
+ {
+ "foreground": "#56b6c2",
+ "token": "constant.character.escape"
+ },
+ {
+ "foreground": "#e06c75",
+ "token": "string.regexp"
+ },
+ {
+ "fontStyle": "italic",
+ "token": "entity.other.attribute-name.js"
+ },
+ {
+ "fontStyle": "italic",
+ "token": "entity.other.attribute-name.ts"
+ },
+ {
+ "fontStyle": "italic",
+ "token": "entity.other.attribute-name.jsx"
+ },
+ {
+ "fontStyle": "italic",
+ "token": "entity.other.attribute-name.tsx"
+ },
+ {
+ "fontStyle": "italic",
+ "token": "variable.parameter"
+ },
+ {
+ "fontStyle": "italic",
+ "token": "variable.language.super"
+ },
+ {
+ "fontStyle": "italic",
+ "token": "comment.line.double-slash"
+ },
+ {
+ "fontStyle": "italic",
+ "token": "comment.block.documentation"
+ },
+ {
+ "fontStyle": "italic",
+ "token": "keyword.control.import.python"
+ },
+ {
+ "fontStyle": "italic",
+ "token": "keyword.control.flow.python"
+ },
+ {
+ "fontStyle": "italic",
+ "token": "keyword.operator.logical.python"
+ },
+ {
+ "fontStyle": "italic",
+ "token": "markup.italic.markdown"
+ }
+ ],
+ "encodedTokensColors": []
+}
diff --git a/html/monaco-editor/themes/winterIsComing.json b/html/monaco-editor/themes/winterIsComing.json
new file mode 100644
index 0000000..9ae1ff0
--- /dev/null
+++ b/html/monaco-editor/themes/winterIsComing.json
@@ -0,0 +1,591 @@
+{
+ "inherit": false,
+ "base": "vs",
+ "colors": {
+ "activityBar.foreground": "#99d0f7",
+ "activityBar.border": "#219fd544",
+ "activityBarBadge.background": "#219fd5",
+ "activityBarBadge.foreground": "#ffffff",
+ "badge.background": "#219fd5",
+ "badge.foreground": "#ffffff",
+ "button.background": "#03648a",
+ "button.foreground": "#ffffff",
+ "button.hoverBackground": "#219fd5",
+ "contrastActiveBorder": "#ccc",
+ "foreground": "#1857a4",
+ "debugExceptionWidget.background": "#357ab3",
+ "debugToolBar.background": "#fff",
+ "diffEditor.insertedTextBackground": "#99b76d23",
+ "diffEditor.insertedTextBorder": "#addb6733",
+ "diffEditor.removedTextBackground": "#ef535033",
+ "diffEditor.removedTextBorder": "#ef53504d",
+ "editor.background": "#FFFFFF",
+ "editor.foreground": "#236ebf",
+ "editor.inactiveSelectionBackground": "#7e57c25a",
+ "editor.hoverHighlightBackground": "#36b2e7a4",
+ "editor.lineHighlightBackground": "#eff2ef",
+ "editor.selectionBackground": "#cee1f0",
+ "editor.selectionHighlightBackground": "#cee1f0",
+ "editor.findMatchHighlightBackground": "#cee1f0",
+ "editor.rangeHighlightBackground": "#cee1f0",
+ "editor.wordHighlightBackground": "#cee1f0",
+ "editor.wordHighlightStrongBackground": "#cee1f0",
+ "editorBracketMatch.background": "#219fd54d",
+ "editorOverviewRuler.currentContentForeground": "#7e57c2",
+ "editorOverviewRuler.incomingContentForeground": "#7e57c2",
+ "editorOverviewRuler.commonContentForeground": "#7e57c2",
+ "editorCursor.foreground": "#4fb4d8",
+ "editorError.foreground": "#ef5350",
+ "editorGroup.border": "#219fd544",
+ "editorGroupHeader.tabsBackground": "#fff",
+ "editorGutter.background": "#fff",
+ "editorHoverWidget.background": "#fff",
+ "editorIndentGuide.activeBackground": "#2f86d2",
+ "editorIndentGuide.background": "#eff2ef",
+ "editorLineNumber.foreground": "#2f86d2",
+ "editorWhitespace.foreground": "#C4C5CD",
+ "editorWidget.foreground": "#111",
+ "editorWidget.border": "#2f86d2",
+ "editorSuggestWidget.foreground": "#111",
+ "editorSuggestWidget.highlightForeground": "#ffffff",
+ "editorSuggestWidget.selectedBackground": "#5f7e97",
+ "editorHoverWidget.border": "#5f7e97",
+ "errorForeground": "#EF5350",
+ "gitDecoration.modifiedResourceForeground": "#1857a4",
+ "gitDecoration.untrackedResourceForeground": "#189b2c",
+ "input.background": "#eee",
+ "input.border": "#5f7e97",
+ "input.foreground": "#111",
+ "input.placeholderForeground": "#5f7e97",
+ "inputOption.activeBorder": "#ffffff",
+ "inputValidation.errorBackground": "#ef5350",
+ "inputValidation.errorBorder": "#ef5350",
+ "inputValidation.infoBackground": "#219fd5",
+ "inputValidation.infoBorder": "#219fd5",
+ "inputValidation.warningBackground": "#f7ecb5",
+ "inputValidation.warningBorder": "#f7ecb5",
+ "list.activeSelectionBackground": "#219fd5",
+ "list.inactiveSelectionBackground": "#219fd5cc",
+ "list.inactiveSelectionForeground": "#5f7e97",
+ "list.invalidItemForeground": "#975f94",
+ "list.focusBackground": "#ccc",
+ "list.focusForeground": "#1857a4",
+ "list.highlightForeground": "#1857a4",
+ "list.hoverBackground": "#ccc",
+ "list.hoverForeground": "#1857a4",
+ "notifications.background": "#ffffffcc",
+ "notifications.foreground": "#011627",
+ "notificationLink.foreground": "#219fd544",
+ "notificationToast.border": "#80CBC4",
+ "panel.background": "#fff",
+ "panel.border": "#49a7cf",
+ "panelTitle.activeBorder": "#5f7e97",
+ "panelTitle.activeForeground": "#219fd5",
+ "panelTitle.inactiveForeground": "#5f7e97",
+ "peekView.border": "#08134A",
+ "peekViewEditor.matchHighlightBackground": "#D0CEC8",
+ "peekViewResult.lineForeground": "#2f86d2",
+ "peekViewEditor.background": "#e3e3e3",
+ "peekViewEditorGutter.background": "#e3e3e3",
+ "peekViewResult.background": "#e3e3e3",
+ "peekViewResult.matchHighlightBackground": "#7e57c25a",
+ "peekViewResult.selectionBackground": "#2E3250",
+ "peekViewResult.selectionForeground": "#cecece",
+ "peekViewTitleDescription.foreground": "#697098",
+ "peekViewTitleLabel.foreground": "#cecece",
+ "pickerGroup.border": "#219fd544",
+ "scrollbar.shadow": "#ddd",
+ "scrollbarSlider.activeBackground": "#084d8180",
+ "scrollbarSlider.background": "#084d8180",
+ "scrollbarSlider.hoverBackground": "#084d8180",
+ "selection.background": "#4373c2",
+ "sideBarSectionHeader.background": "#ddd",
+ "sideBar.foreground": "#0d3464cc",
+ "sideBarTitle.foreground": "#3b5a81",
+ "sideBarSectionHeader.foreground": "#37567C",
+ "statusBar.noFolderBackground": "#011627",
+ "statusBarItem.activeBackground": "#03648a",
+ "statusBarItem.hoverBackground": "#03648a",
+ "statusBarItem.prominentBackground": "#03648a",
+ "statusBarItem.prominentHoverBackground": "#03648a",
+ "terminal.ansiBlack": "#011627",
+ "textLink.foreground": "#236ebf",
+ "textLink.activeForeground": "#236ebfcc",
+ "titleBar.activeBackground": "#112233",
+ "titleBar.activeForeground": "#eeefff",
+ "titleBar.border": "#303030",
+ "titleBar.inactiveBackground": "#000a11",
+ "widget.shadow": "#219fd5",
+ "sideBar.border": "#e3e3e3",
+ "sideBar.background": "#F3F3F3",
+ "statusBar.debuggingBackground": "#b15a91",
+ "statusBar.background": "#2f86d2"
+ },
+ "rules": [
+ {
+ "foreground": "#110000",
+ "token": "meta.paragraph.markdown"
+ },
+ {
+ "foreground": "#110000",
+ "token": "string.other.link.description.title.markdown"
+ },
+ {
+ "foreground": "#034c7c",
+ "token": "entity.name.section.markdown"
+ },
+ {
+ "foreground": "#034c7c",
+ "token": "punctuation.definition.heading.markdown"
+ },
+ {
+ "foreground": "#00AC8F",
+ "token": "punctuation.definition.string.begin.markdown"
+ },
+ {
+ "foreground": "#00AC8F",
+ "token": "punctuation.definition.string.end.markdown"
+ },
+ {
+ "foreground": "#00AC8F",
+ "token": "markup.quote.markdown"
+ },
+ {
+ "foreground": "#003494",
+ "token": "markup.quote.markdown"
+ },
+ {
+ "fontStyle": "bold",
+ "foreground": "#4e76b5",
+ "token": "markup.bold.markdown"
+ },
+ {
+ "fontStyle": "bold",
+ "foreground": "#4e76b5",
+ "token": "punctuation.definition.bold.markdown"
+ },
+ {
+ "foreground": "#C792EA",
+ "token": "markup.italic.markdown"
+ },
+ {
+ "foreground": "#C792EA",
+ "token": "punctuation.definition.italic.markdown"
+ },
+ {
+ "foreground": "#0460b1",
+ "token": "markup.inline.raw.string.markdown"
+ },
+ {
+ "foreground": "#0460b1",
+ "token": "markup.fenced_code.block.markdown"
+ },
+ {
+ "foreground": "#00AC8F",
+ "token": "punctuation.definition.metadata.markdown"
+ },
+ {
+ "foreground": "#924205",
+ "token": "markup.underline.link.image.markdown"
+ },
+ {
+ "foreground": "#924205",
+ "token": "markup.underline.link.markdown"
+ },
+ {
+ "foreground": "#357b42",
+ "token": "comment"
+ },
+ {
+ "foreground": "#d86db6",
+ "token": "punctuation.definition.string"
+ },
+ {
+ "foreground": "#a44185",
+ "token": "string"
+ },
+ {
+ "fontStyle": "",
+ "foreground": "#a44185",
+ "token": "string.quoted"
+ },
+ {
+ "fontStyle": "",
+ "foreground": "#a44185",
+ "token": "variable.other.readwrite.js"
+ },
+ {
+ "foreground": "#174781",
+ "token": "constant.numeric"
+ },
+ {
+ "foreground": "#174781",
+ "token": "constant.language.boolean"
+ },
+ {
+ "foreground": "#174781",
+ "token": "constant"
+ },
+ {
+ "foreground": "#2970c7",
+ "token": "constant.language"
+ },
+ {
+ "foreground": "#2970c7",
+ "token": "punctuation.definition.constant"
+ },
+ {
+ "foreground": "#2970c7",
+ "token": "variable.other.constant"
+ },
+ {
+ "foreground": "#2970c7",
+ "token": "constant.character"
+ },
+ {
+ "foreground": "#2970c7",
+ "token": "constant.other"
+ },
+ {
+ "foreground": "#2f86d2",
+ "token": "variable"
+ },
+ {
+ "foreground": "#828282",
+ "token": "variable.other.object.js"
+ },
+ {
+ "foreground": "#828282",
+ "token": "variable.other.readwrite.alias.ts"
+ },
+ {
+ "foreground": "#828282",
+ "token": "variable.other.readwrite.alias.tsx"
+ },
+ {
+ "foreground": "#828282",
+ "token": "variable.other.readwrite.ts"
+ },
+ {
+ "foreground": "#828282",
+ "token": "variable.other.readwrite.tsx"
+ },
+ {
+ "foreground": "#828282",
+ "token": "variable.other.object.ts"
+ },
+ {
+ "foreground": "#828282",
+ "token": "variable.other.object.tsx"
+ },
+ {
+ "foreground": "#828282",
+ "token": "variable.object.property.ts"
+ },
+ {
+ "foreground": "#828282",
+ "token": "variable.object.property.tsx"
+ },
+ {
+ "foreground": "#828282",
+ "token": "variable.other.ts"
+ },
+ {
+ "foreground": "#828282",
+ "token": "variable.other.tsx"
+ },
+ {
+ "foreground": "#828282",
+ "token": "variable.tsx"
+ },
+ {
+ "foreground": "#828282",
+ "token": "variable.ts"
+ },
+ {
+ "foreground": "#7c2cbd",
+ "token": "meta.class entity.name.type.class.tsx"
+ },
+ {
+ "foreground": "#7c2cbd",
+ "token": "entity.name.type.tsx"
+ },
+ {
+ "foreground": "#7c2cbd",
+ "token": "entity.name.type.module.tsx"
+ },
+ {
+ "foreground": "#4a668f",
+ "token": "meta.method.declaration storage.type.ts"
+ },
+ {
+ "foreground": "#4a668f",
+ "token": "meta.method.declaration storage.type.tsx"
+ },
+ {
+ "foreground": "#fa841d",
+ "token": "variable.other.object.property"
+ },
+ {
+ "foreground": "#7fdbca",
+ "token": "variable.instance"
+ },
+ {
+ "foreground": "#7fdbca",
+ "token": "variable.other.instance"
+ },
+ {
+ "foreground": "#7fdbca",
+ "token": "variable.readwrite.instance"
+ },
+ {
+ "foreground": "#7fdbca",
+ "token": "variable.other.readwrite.instance"
+ },
+ {
+ "foreground": "#7fdbca",
+ "token": "variable.other.property"
+ },
+ {
+ "foreground": "#828282",
+ "token": "variable.other.readwrite.js"
+ },
+ {
+ "foreground": "#828282",
+ "token": "variable.parameter"
+ },
+ {
+ "foreground": "#c63ed3",
+ "token": "string.template meta.template.expression"
+ },
+ {
+ "foreground": "#3e3e3e",
+ "token": "string.template punctuation.definition.string"
+ },
+ {
+ "fontStyle": "",
+ "foreground": "#da5221",
+ "token": "storage"
+ },
+ {
+ "foreground": "#0991b6",
+ "token": "keyword"
+ },
+ {
+ "foreground": "#0991b6",
+ "token": "storage.type"
+ },
+ {
+ "foreground": "#0991b6",
+ "token": "storage.modifier"
+ },
+ {
+ "foreground": "#0991b6",
+ "token": "variable.language.this"
+ },
+ {
+ "foreground": "#7b30d0",
+ "token": "keyword.operator"
+ },
+ {
+ "foreground": "#c792ea",
+ "token": "storage"
+ },
+ {
+ "foreground": "#c792ea",
+ "token": "meta.var.expr"
+ },
+ {
+ "foreground": "#c792ea",
+ "token": "meta.class meta.method.declaration meta.var.expr storage.type.js"
+ },
+ {
+ "foreground": "#c792ea",
+ "token": "storage.type.property.js"
+ },
+ {
+ "foreground": "#c792ea",
+ "token": "storage.type.property.ts"
+ },
+ {
+ "foreground": "#296d31",
+ "token": "variable.other.meta.import.js"
+ },
+ {
+ "foreground": "#296d31",
+ "token": "meta.import.js variable.other"
+ },
+ {
+ "foreground": "#296d31",
+ "token": "variable.other.meta.export.js"
+ },
+ {
+ "foreground": "#296d31",
+ "token": "meta.export.js variable.other"
+ },
+ {
+ "foreground": "#1172c7",
+ "token": "entity.name.class"
+ },
+ {
+ "fontStyle": "",
+ "foreground": "#b02767",
+ "token": "entity.other.inherited-class"
+ },
+ {
+ "fontStyle": "",
+ "foreground": "#da5221",
+ "token": "variable.other.readwrites"
+ },
+ {
+ "fontStyle": "",
+ "foreground": "#da5221",
+ "token": "meta.definition.variable"
+ },
+ {
+ "foreground": "#358a7b",
+ "token": "support.variable.property"
+ },
+ {
+ "foreground": "#b1108e",
+ "token": "entity.name.function"
+ },
+ {
+ "foreground": "#b1108e",
+ "fontStyle": "",
+ "token": "variable.parameter"
+ },
+ {
+ "fontStyle": "",
+ "foreground": "#0444ac",
+ "token": "entity.name.tag"
+ },
+ {
+ "foreground": "#0444ac",
+ "token": "entity.name.type"
+ },
+ {
+ "foreground": "#df8618",
+ "token": "entity.other.attribute-name"
+ },
+ {
+ "foreground": "#df8618",
+ "token": "punctuation.decorator"
+ },
+ {
+ "foreground": "#3e3e3e",
+ "token": "punctuation.definition.block"
+ },
+ {
+ "foreground": "#3e3e3e",
+ "token": "punctuation.definition.tag"
+ },
+ {
+ "fontStyle": "",
+ "foreground": "#08134A",
+ "token": "support.function"
+ },
+ {
+ "fontStyle": "",
+ "foreground": "#174781",
+ "token": "support.constant"
+ },
+ {
+ "foreground": "#dc3eb7",
+ "token": "support.type"
+ },
+ {
+ "foreground": "#dc3eb7",
+ "token": "support.class"
+ },
+ {
+ "foreground": "#224555",
+ "token": "support.other.variable"
+ },
+ {
+ "fontStyle": " bold underline",
+ "foreground": "#207bb8",
+ "token": "invalid"
+ },
+ {
+ "foreground": "#207bb8",
+ "fontStyle": " bold underline",
+ "token": "invalid.deprecated"
+ },
+ {
+ "foreground": "#3a9685",
+ "token": "support.type.property-name.json"
+ },
+ {
+ "foreground": "#497803",
+ "token": "support.constant.json"
+ },
+ {
+ "foreground": "#8123a9",
+ "token": "meta.structure.dictionary.value.json string.quoted.double"
+ },
+ {
+ "foreground": "#2b8c82",
+ "token": "string.quoted.double.json punctuation.definition.string.json"
+ },
+ {
+ "foreground": "#ae408b",
+ "token": "meta.structure.dictionary.json meta.structure.dictionary.value constant.language"
+ },
+ {
+ "foreground": "#6dbdfa",
+ "token": "source.json support"
+ },
+ {
+ "foreground": "#00820f",
+ "token": "source.json string"
+ },
+ {
+ "foreground": "#00820f",
+ "token": "source.json punctuation.definition.string"
+ },
+ {
+ "foreground": "#207bb8",
+ "token": "markup.list"
+ },
+ {
+ "fontStyle": "",
+ "foreground": "#4FB4D8",
+ "token": "markup.heading punctuation.definition.heading"
+ },
+ {
+ "fontStyle": "",
+ "foreground": "#4FB4D8",
+ "token": "entity.name.section"
+ },
+ {
+ "foreground": "#87429A",
+ "token": "text.html.markdown meta.paragraph meta.link.inline"
+ },
+ {
+ "foreground": "#87429A",
+ "token": "text.html.markdown meta.paragraph meta.link.inline punctuation.definition.string.begin.markdown"
+ },
+ {
+ "foreground": "#87429A",
+ "token": "text.html.markdown meta.paragraph meta.link.inline punctuation.definition.string.end.markdown"
+ },
+ {
+ "foreground": "#3e3e3e",
+ "token": "meta.paragraph.markdown"
+ },
+ {
+ "foreground": "#87429A",
+ "token": "markup.quote"
+ },
+ {
+ "foreground": "#87429A",
+ "token": "meta.link"
+ },
+ {
+ "foreground": "#005fa4",
+ "token": "source.dockerfile"
+ }
+ ],
+ "encodedTokensColors": []
+}
diff --git a/html/monaco-editor/tmLanguage/MagicPython.tmLanguage.json b/html/monaco-editor/tmLanguage/MagicPython.tmLanguage.json
new file mode 100644
index 0000000..f2a216b
--- /dev/null
+++ b/html/monaco-editor/tmLanguage/MagicPython.tmLanguage.json
@@ -0,0 +1,5335 @@
+{
+ "information_for_contributors": [
+ "This file has been converted from https://github.com/MagicStack/MagicPython/blob/master/grammars/MagicPython.tmLanguage",
+ "If you want to provide a fix or improvement, please create a pull request against the original repository.",
+ "Once accepted there, we are happy to receive an update request."
+ ],
+ "version": "https://github.com/MagicStack/MagicPython/commit/b4b2e6eb16fee36aea0788bf0aa1853c25f7d276",
+ "name": "MagicPython",
+ "scopeName": "source.python",
+ "patterns": [
+ {
+ "include": "#statement"
+ },
+ {
+ "include": "#expression"
+ }
+ ],
+ "repository": {
+ "impossible": {
+ "comment": "This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.",
+ "match": "$.^"
+ },
+ "statement": {
+ "patterns": [
+ {
+ "include": "#import"
+ },
+ {
+ "include": "#class-declaration"
+ },
+ {
+ "include": "#function-declaration"
+ },
+ {
+ "include": "#generator"
+ },
+ {
+ "include": "#statement-keyword"
+ },
+ {
+ "include": "#assignment-operator"
+ },
+ {
+ "include": "#decorator"
+ },
+ {
+ "include": "#docstring-statement"
+ },
+ {
+ "include": "#semicolon"
+ }
+ ]
+ },
+ "semicolon": {
+ "patterns": [
+ {
+ "name": "invalid.deprecated.semicolon.python",
+ "match": "\\;$"
+ }
+ ]
+ },
+ "comments": {
+ "patterns": [
+ {
+ "name": "comment.line.number-sign.python",
+ "contentName": "meta.typehint.comment.python",
+ "begin": "(?x)\n (?:\n \\# \\s* (type:)\n \\s*+ (?# we want `\\s*+` which is possessive quantifier since\n we do not actually want to backtrack when matching\n whitespace here)\n (?! $ | \\#)\n )\n",
+ "end": "(?:$|(?=\\#))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.typehint.comment.python"
+ },
+ "1": {
+ "name": "comment.typehint.directive.notation.python"
+ }
+ },
+ "patterns": [
+ {
+ "name": "comment.typehint.ignore.notation.python",
+ "match": "(?x)\n \\G ignore\n (?= \\s* (?: $ | \\#))\n"
+ },
+ {
+ "name": "comment.typehint.type.notation.python",
+ "match": "(?x)\n (?))"
+ },
+ {
+ "name": "comment.typehint.variable.notation.python",
+ "match": "([[:alpha:]_]\\w*)"
+ }
+ ]
+ },
+ {
+ "include": "#comments-base"
+ }
+ ]
+ },
+ "docstring-statement": {
+ "begin": "^(?=\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))",
+ "comment": "the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring",
+ "end": "((?<=\\1)|^)(?!\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))",
+ "patterns": [
+ {
+ "include": "#docstring"
+ }
+ ]
+ },
+ "docstring": {
+ "patterns": [
+ {
+ "name": "string.quoted.docstring.multi.python",
+ "begin": "(\\'\\'\\'|\\\"\\\"\\\")",
+ "end": "(\\1)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.python"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#docstring-prompt"
+ },
+ {
+ "include": "#codetags"
+ },
+ {
+ "include": "#docstring-guts-unicode"
+ }
+ ]
+ },
+ {
+ "name": "string.quoted.docstring.raw.multi.python",
+ "begin": "([rR])(\\'\\'\\'|\\\"\\\"\\\")",
+ "end": "(\\2)",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.string.python"
+ },
+ "2": {
+ "name": "punctuation.definition.string.begin.python"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#string-consume-escape"
+ },
+ {
+ "include": "#docstring-prompt"
+ },
+ {
+ "include": "#codetags"
+ }
+ ]
+ },
+ {
+ "name": "string.quoted.docstring.single.python",
+ "begin": "(\\'|\\\")",
+ "end": "(\\1)|(\\n)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.python"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.python"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#codetags"
+ },
+ {
+ "include": "#docstring-guts-unicode"
+ }
+ ]
+ },
+ {
+ "name": "string.quoted.docstring.raw.single.python",
+ "begin": "([rR])(\\'|\\\")",
+ "end": "(\\2)|(\\n)",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.string.python"
+ },
+ "2": {
+ "name": "punctuation.definition.string.begin.python"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.python"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#string-consume-escape"
+ },
+ {
+ "include": "#codetags"
+ }
+ ]
+ }
+ ]
+ },
+ "docstring-guts-unicode": {
+ "patterns": [
+ {
+ "include": "#escape-sequence-unicode"
+ },
+ {
+ "include": "#escape-sequence"
+ },
+ {
+ "include": "#string-line-continuation"
+ }
+ ]
+ },
+ "docstring-prompt": {
+ "match": "(?x)\n (?:\n (?:^|\\G) \\s* (?# '\\G' is necessary for ST)\n ((?:>>>|\\.\\.\\.) \\s) (?=\\s*\\S)\n )\n",
+ "captures": {
+ "1": {
+ "name": "keyword.control.flow.python"
+ }
+ }
+ },
+ "statement-keyword": {
+ "patterns": [
+ {
+ "name": "storage.type.function.python",
+ "match": "\\b((async\\s+)?\\s*def)\\b"
+ },
+ {
+ "name": "keyword.control.flow.python",
+ "comment": "if `as` is eventually followed by `:` or line continuation\nit's probably control flow like:\n with foo as bar, \\\n Foo as Bar:\n try:\n do_stuff()\n except Exception as e:\n pass\n",
+ "match": "\\b(?>= | //= | \\*\\*=\n | \\+= | -= | /= | @=\n | \\*= | %= | ~= | \\^= | &= | \\|=\n | =(?!=)\n"
+ },
+ "operator": {
+ "match": "(?x)\n \\b(?> | & | \\| | \\^ | ~) (?# 3)\n\n | (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4)\n\n | (!= | == | >= | <= | < | >) (?# 5)\n",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.logical.python"
+ },
+ "2": {
+ "name": "keyword.control.flow.python"
+ },
+ "3": {
+ "name": "keyword.operator.bitwise.python"
+ },
+ "4": {
+ "name": "keyword.operator.arithmetic.python"
+ },
+ "5": {
+ "name": "keyword.operator.comparison.python"
+ }
+ }
+ },
+ "punctuation": {
+ "patterns": [
+ {
+ "name": "punctuation.separator.colon.python",
+ "match": ":"
+ },
+ {
+ "name": "punctuation.separator.element.python",
+ "match": ","
+ }
+ ]
+ },
+ "literal": {
+ "patterns": [
+ {
+ "name": "constant.language.python",
+ "match": "\\b(True|False|None|NotImplemented|Ellipsis)\\b"
+ },
+ {
+ "include": "#number"
+ }
+ ]
+ },
+ "number": {
+ "name": "constant.numeric.python",
+ "patterns": [
+ {
+ "include": "#number-float"
+ },
+ {
+ "include": "#number-dec"
+ },
+ {
+ "include": "#number-hex"
+ },
+ {
+ "include": "#number-oct"
+ },
+ {
+ "include": "#number-bin"
+ },
+ {
+ "include": "#number-long"
+ },
+ {
+ "name": "invalid.illegal.name.python",
+ "match": "\\b[0-9]+\\w+"
+ }
+ ]
+ },
+ "number-float": {
+ "name": "constant.numeric.float.python",
+ "match": "(?x)\n (?=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )?\n })\n )\n",
+ "captures": {
+ "1": {
+ "name": "constant.character.format.placeholder.other.python"
+ },
+ "3": {
+ "name": "storage.type.format.python"
+ },
+ "4": {
+ "name": "storage.type.format.python"
+ }
+ }
+ },
+ {
+ "name": "meta.format.brace.python",
+ "match": "(?x)\n (\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n (:)\n [^'\"{}\\n]* (?:\n \\{ [^'\"}\\n]*? \\} [^'\"{}\\n]*\n )*\n }\n )\n",
+ "captures": {
+ "1": {
+ "name": "constant.character.format.placeholder.other.python"
+ },
+ "3": {
+ "name": "storage.type.format.python"
+ },
+ "4": {
+ "name": "storage.type.format.python"
+ }
+ }
+ }
+ ]
+ },
+ "fstring-formatting": {
+ "patterns": [
+ {
+ "include": "#fstring-formatting-braces"
+ },
+ {
+ "include": "#fstring-formatting-singe-brace"
+ }
+ ]
+ },
+ "fstring-formatting-singe-brace": {
+ "name": "invalid.illegal.brace.python",
+ "match": "(}(?!}))"
+ },
+ "import": {
+ "comment": "Import statements used to correctly mark `from`, `import`, and `as`\n",
+ "patterns": [
+ {
+ "begin": "\\b(?)",
+ "end": "(?=:)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.separator.annotation.result.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#expression"
+ }
+ ]
+ },
+ "item-access": {
+ "patterns": [
+ {
+ "name": "meta.item-access.python",
+ "begin": "(?x)\n \\b(?=\n [[:alpha:]_]\\w* \\s* \\[\n )\n",
+ "end": "(\\])",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#item-name"
+ },
+ {
+ "include": "#item-index"
+ },
+ {
+ "include": "#expression"
+ }
+ ]
+ }
+ ]
+ },
+ "item-name": {
+ "patterns": [
+ {
+ "include": "#special-variables"
+ },
+ {
+ "include": "#builtin-functions"
+ },
+ {
+ "include": "#special-names"
+ },
+ {
+ "name": "meta.indexed-name.python",
+ "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"
+ }
+ ]
+ },
+ "item-index": {
+ "begin": "(\\[)",
+ "end": "(?=\\])",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.python"
+ }
+ },
+ "contentName": "meta.item-access.arguments.python",
+ "patterns": [
+ {
+ "name": "punctuation.separator.slice.python",
+ "match": ":"
+ },
+ {
+ "include": "#expression"
+ }
+ ]
+ },
+ "decorator": {
+ "name": "meta.function.decorator.python",
+ "begin": "(?x)\n ^\\s*\n ((@)) \\s* (?=[[:alpha:]_]\\w*)\n",
+ "end": "(?x)\n ( \\) )\n # trailing whitespace and comments are legal\n (?: (.*?) (?=\\s*(?:\\#|$)) )\n | (?=\\n|\\#)\n",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.decorator.python"
+ },
+ "2": {
+ "name": "punctuation.definition.decorator.python"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.python"
+ },
+ "2": {
+ "name": "invalid.illegal.decorator.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#decorator-name"
+ },
+ {
+ "include": "#function-arguments"
+ }
+ ]
+ },
+ "decorator-name": {
+ "patterns": [
+ {
+ "include": "#builtin-callables"
+ },
+ {
+ "include": "#illegal-object-name"
+ },
+ {
+ "name": "entity.name.function.decorator.python",
+ "match": "(?x)\n ([[:alpha:]_]\\w*) | (\\.)\n",
+ "captures": {
+ "2": {
+ "name": "punctuation.separator.period.python"
+ }
+ }
+ },
+ {
+ "include": "#line-continuation"
+ },
+ {
+ "name": "invalid.illegal.decorator.python",
+ "match": "(?x)\n \\s* ([^([:alpha:]\\s_\\.#\\\\] .*?) (?=\\#|$)\n",
+ "captures": {
+ "1": {
+ "name": "invalid.illegal.decorator.python"
+ }
+ }
+ }
+ ]
+ },
+ "call-wrapper-inheritance": {
+ "comment": "same as a function call, but in inheritance context",
+ "name": "meta.function-call.python",
+ "begin": "(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n",
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#inheritance-name"
+ },
+ {
+ "include": "#function-arguments"
+ }
+ ]
+ },
+ "inheritance-name": {
+ "patterns": [
+ {
+ "include": "#lambda-incomplete"
+ },
+ {
+ "include": "#builtin-possible-callables"
+ },
+ {
+ "include": "#inheritance-identifier"
+ }
+ ]
+ },
+ "function-call": {
+ "name": "meta.function-call.python",
+ "comment": "Regular function call of the type \"name(args)\"",
+ "begin": "(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n",
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#special-variables"
+ },
+ {
+ "include": "#function-name"
+ },
+ {
+ "include": "#function-arguments"
+ }
+ ]
+ },
+ "function-name": {
+ "patterns": [
+ {
+ "include": "#builtin-possible-callables"
+ },
+ {
+ "comment": "Some color schemas support meta.function-call.generic scope",
+ "name": "meta.function-call.generic.python",
+ "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"
+ }
+ ]
+ },
+ "function-arguments": {
+ "begin": "(\\()",
+ "end": "(?=\\))(?!\\)\\s*\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.python"
+ }
+ },
+ "contentName": "meta.function-call.arguments.python",
+ "patterns": [
+ {
+ "name": "punctuation.separator.arguments.python",
+ "match": "(,)"
+ },
+ {
+ "match": "(?x)\n (?:(?<=[,(])|^) \\s* (\\*{1,2})\n",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.unpacking.arguments.python"
+ }
+ }
+ },
+ {
+ "include": "#lambda-incomplete"
+ },
+ {
+ "include": "#illegal-names"
+ },
+ {
+ "match": "\\b([[:alpha:]_]\\w*)\\s*(=)(?!=)",
+ "captures": {
+ "1": {
+ "name": "variable.parameter.function-call.python"
+ },
+ "2": {
+ "name": "keyword.operator.assignment.python"
+ }
+ }
+ },
+ {
+ "name": "keyword.operator.assignment.python",
+ "match": "=(?!=)"
+ },
+ {
+ "include": "#expression"
+ },
+ {
+ "match": "\\s*(\\))\\s*(\\()",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.python"
+ },
+ "2": {
+ "name": "punctuation.definition.arguments.begin.python"
+ }
+ }
+ }
+ ]
+ },
+ "builtin-callables": {
+ "patterns": [
+ {
+ "include": "#illegal-names"
+ },
+ {
+ "include": "#illegal-object-name"
+ },
+ {
+ "include": "#builtin-exceptions"
+ },
+ {
+ "include": "#builtin-functions"
+ },
+ {
+ "include": "#builtin-types"
+ }
+ ]
+ },
+ "builtin-possible-callables": {
+ "patterns": [
+ {
+ "include": "#builtin-callables"
+ },
+ {
+ "include": "#magic-names"
+ }
+ ]
+ },
+ "builtin-exceptions": {
+ "name": "support.type.exception.python",
+ "match": "(?x) (?"
+ },
+ "regexp-base-expression": {
+ "patterns": [
+ {
+ "include": "#regexp-quantifier"
+ },
+ {
+ "include": "#regexp-base-common"
+ }
+ ]
+ },
+ "fregexp-base-expression": {
+ "patterns": [
+ {
+ "include": "#fregexp-quantifier"
+ },
+ {
+ "include": "#fstring-formatting-braces"
+ },
+ {
+ "match": "\\{.*?\\}"
+ },
+ {
+ "include": "#regexp-base-common"
+ }
+ ]
+ },
+ "fstring-formatting-braces": {
+ "patterns": [
+ {
+ "comment": "empty braces are illegal",
+ "match": "({)(\\s*?)(})",
+ "captures": {
+ "1": {
+ "name": "constant.character.format.placeholder.other.python"
+ },
+ "2": {
+ "name": "invalid.illegal.brace.python"
+ },
+ "3": {
+ "name": "constant.character.format.placeholder.other.python"
+ }
+ }
+ },
+ {
+ "name": "constant.character.escape.python",
+ "match": "({{|}})"
+ }
+ ]
+ },
+ "regexp-base-common": {
+ "patterns": [
+ {
+ "name": "support.other.match.any.regexp",
+ "match": "\\."
+ },
+ {
+ "name": "support.other.match.begin.regexp",
+ "match": "\\^"
+ },
+ {
+ "name": "support.other.match.end.regexp",
+ "match": "\\$"
+ },
+ {
+ "name": "keyword.operator.quantifier.regexp",
+ "match": "[+*?]\\??"
+ },
+ {
+ "name": "keyword.operator.disjunction.regexp",
+ "match": "\\|"
+ },
+ {
+ "include": "#regexp-escape-sequence"
+ }
+ ]
+ },
+ "regexp-quantifier": {
+ "name": "keyword.operator.quantifier.regexp",
+ "match": "(?x)\n \\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\n"
+ },
+ "fregexp-quantifier": {
+ "name": "keyword.operator.quantifier.regexp",
+ "match": "(?x)\n \\{\\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\\}\n"
+ },
+ "regexp-backreference-number": {
+ "name": "meta.backreference.regexp",
+ "match": "(\\\\[1-9]\\d?)",
+ "captures": {
+ "1": {
+ "name": "entity.name.tag.backreference.regexp"
+ }
+ }
+ },
+ "regexp-backreference": {
+ "name": "meta.backreference.named.regexp",
+ "match": "(?x)\n (\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\))\n",
+ "captures": {
+ "1": {
+ "name": "support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"
+ },
+ "2": {
+ "name": "entity.name.tag.named.backreference.regexp"
+ },
+ "3": {
+ "name": "support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"
+ }
+ }
+ },
+ "regexp-flags": {
+ "name": "storage.modifier.flag.regexp",
+ "match": "\\(\\?[aiLmsux]+\\)"
+ },
+ "regexp-escape-special": {
+ "name": "support.other.escape.special.regexp",
+ "match": "\\\\([AbBdDsSwWZ])"
+ },
+ "regexp-escape-character": {
+ "name": "constant.character.escape.regexp",
+ "match": "(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | 0[0-7]{1,2}\n | [0-7]{3}\n )\n"
+ },
+ "regexp-escape-unicode": {
+ "name": "constant.character.unicode.regexp",
+ "match": "(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n )\n"
+ },
+ "regexp-escape-catchall": {
+ "name": "constant.character.escape.regexp",
+ "match": "\\\\(.|\\n)"
+ },
+ "regexp-escape-sequence": {
+ "patterns": [
+ {
+ "include": "#regexp-escape-special"
+ },
+ {
+ "include": "#regexp-escape-character"
+ },
+ {
+ "include": "#regexp-escape-unicode"
+ },
+ {
+ "include": "#regexp-backreference-number"
+ },
+ {
+ "include": "#regexp-escape-catchall"
+ }
+ ]
+ },
+ "regexp-charecter-set-escapes": {
+ "patterns": [
+ {
+ "name": "constant.character.escape.regexp",
+ "match": "\\\\[abfnrtv\\\\]"
+ },
+ {
+ "include": "#regexp-escape-special"
+ },
+ {
+ "name": "constant.character.escape.regexp",
+ "match": "\\\\([0-7]{1,3})"
+ },
+ {
+ "include": "#regexp-escape-character"
+ },
+ {
+ "include": "#regexp-escape-unicode"
+ },
+ {
+ "include": "#regexp-escape-catchall"
+ }
+ ]
+ },
+ "codetags": {
+ "match": "(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)",
+ "captures": {
+ "1": {
+ "name": "keyword.codetag.notation.python"
+ }
+ }
+ },
+ "comments-base": {
+ "name": "comment.line.number-sign.python",
+ "begin": "(\\#)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.python"
+ }
+ },
+ "end": "($)",
+ "patterns": [
+ {
+ "include": "#codetags"
+ }
+ ]
+ },
+ "comments-string-single-three": {
+ "name": "comment.line.number-sign.python",
+ "begin": "(\\#)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.python"
+ }
+ },
+ "end": "($|(?='''))",
+ "patterns": [
+ {
+ "include": "#codetags"
+ }
+ ]
+ },
+ "comments-string-double-three": {
+ "name": "comment.line.number-sign.python",
+ "begin": "(\\#)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.python"
+ }
+ },
+ "end": "($|(?=\"\"\"))",
+ "patterns": [
+ {
+ "include": "#codetags"
+ }
+ ]
+ },
+ "single-one-regexp-expression": {
+ "patterns": [
+ {
+ "include": "#regexp-base-expression"
+ },
+ {
+ "include": "#single-one-regexp-character-set"
+ },
+ {
+ "include": "#single-one-regexp-comments"
+ },
+ {
+ "include": "#regexp-flags"
+ },
+ {
+ "include": "#single-one-regexp-named-group"
+ },
+ {
+ "include": "#regexp-backreference"
+ },
+ {
+ "include": "#single-one-regexp-lookahead"
+ },
+ {
+ "include": "#single-one-regexp-lookahead-negative"
+ },
+ {
+ "include": "#single-one-regexp-lookbehind"
+ },
+ {
+ "include": "#single-one-regexp-lookbehind-negative"
+ },
+ {
+ "include": "#single-one-regexp-conditional"
+ },
+ {
+ "include": "#single-one-regexp-parentheses-non-capturing"
+ },
+ {
+ "include": "#single-one-regexp-parentheses"
+ }
+ ]
+ },
+ "single-one-regexp-character-set": {
+ "patterns": [
+ {
+ "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n"
+ },
+ {
+ "name": "meta.character.set.regexp",
+ "begin": "(\\[)(\\^)?(\\])?",
+ "end": "(\\]|(?=\\'))|((?=(?)\n",
+ "end": "(\\)|(?=\\'))|((?=(?)\n",
+ "end": "(\\)|(?=\\'\\'\\'))",
+ "beginCaptures": {
+ "1": {
+ "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"
+ },
+ "2": {
+ "name": "entity.name.tag.named.group.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#single-three-regexp-expression"
+ },
+ {
+ "include": "#comments-string-single-three"
+ }
+ ]
+ },
+ "single-three-regexp-comments": {
+ "name": "comment.regexp",
+ "begin": "\\(\\?#",
+ "end": "(\\)|(?=\\'\\'\\'))",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.comment.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.comment.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#codetags"
+ }
+ ]
+ },
+ "single-three-regexp-lookahead": {
+ "begin": "(\\()\\?=",
+ "end": "(\\)|(?=\\'\\'\\'))",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.lookahead.regexp"
+ },
+ "1": {
+ "name": "punctuation.parenthesis.lookahead.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#single-three-regexp-expression"
+ },
+ {
+ "include": "#comments-string-single-three"
+ }
+ ]
+ },
+ "single-three-regexp-lookahead-negative": {
+ "begin": "(\\()\\?!",
+ "end": "(\\)|(?=\\'\\'\\'))",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.lookahead.negative.regexp"
+ },
+ "1": {
+ "name": "punctuation.parenthesis.lookahead.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#single-three-regexp-expression"
+ },
+ {
+ "include": "#comments-string-single-three"
+ }
+ ]
+ },
+ "single-three-regexp-lookbehind": {
+ "begin": "(\\()\\?<=",
+ "end": "(\\)|(?=\\'\\'\\'))",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.lookbehind.regexp"
+ },
+ "1": {
+ "name": "punctuation.parenthesis.lookbehind.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#single-three-regexp-expression"
+ },
+ {
+ "include": "#comments-string-single-three"
+ }
+ ]
+ },
+ "single-three-regexp-lookbehind-negative": {
+ "begin": "(\\()\\?)\n",
+ "end": "(\\)|(?=\"))|((?=(?)\n",
+ "end": "(\\)|(?=\"\"\"))",
+ "beginCaptures": {
+ "1": {
+ "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"
+ },
+ "2": {
+ "name": "entity.name.tag.named.group.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#double-three-regexp-expression"
+ },
+ {
+ "include": "#comments-string-double-three"
+ }
+ ]
+ },
+ "double-three-regexp-comments": {
+ "name": "comment.regexp",
+ "begin": "\\(\\?#",
+ "end": "(\\)|(?=\"\"\"))",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.comment.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.comment.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#codetags"
+ }
+ ]
+ },
+ "double-three-regexp-lookahead": {
+ "begin": "(\\()\\?=",
+ "end": "(\\)|(?=\"\"\"))",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.lookahead.regexp"
+ },
+ "1": {
+ "name": "punctuation.parenthesis.lookahead.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#double-three-regexp-expression"
+ },
+ {
+ "include": "#comments-string-double-three"
+ }
+ ]
+ },
+ "double-three-regexp-lookahead-negative": {
+ "begin": "(\\()\\?!",
+ "end": "(\\)|(?=\"\"\"))",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.lookahead.negative.regexp"
+ },
+ "1": {
+ "name": "punctuation.parenthesis.lookahead.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#double-three-regexp-expression"
+ },
+ {
+ "include": "#comments-string-double-three"
+ }
+ ]
+ },
+ "double-three-regexp-lookbehind": {
+ "begin": "(\\()\\?<=",
+ "end": "(\\)|(?=\"\"\"))",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.lookbehind.regexp"
+ },
+ "1": {
+ "name": "punctuation.parenthesis.lookbehind.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#double-three-regexp-expression"
+ },
+ {
+ "include": "#comments-string-double-three"
+ }
+ ]
+ },
+ "double-three-regexp-lookbehind-negative": {
+ "begin": "(\\()\\?)\n",
+ "end": "(\\)|(?=\\'))|((?=(?)\n",
+ "end": "(\\)|(?=\\'\\'\\'))",
+ "beginCaptures": {
+ "1": {
+ "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"
+ },
+ "2": {
+ "name": "entity.name.tag.named.group.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#single-three-fregexp-expression"
+ },
+ {
+ "include": "#comments-string-single-three"
+ }
+ ]
+ },
+ "single-three-fregexp-lookahead": {
+ "begin": "(\\()\\?=",
+ "end": "(\\)|(?=\\'\\'\\'))",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.lookahead.regexp"
+ },
+ "1": {
+ "name": "punctuation.parenthesis.lookahead.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#single-three-fregexp-expression"
+ },
+ {
+ "include": "#comments-string-single-three"
+ }
+ ]
+ },
+ "single-three-fregexp-lookahead-negative": {
+ "begin": "(\\()\\?!",
+ "end": "(\\)|(?=\\'\\'\\'))",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.lookahead.negative.regexp"
+ },
+ "1": {
+ "name": "punctuation.parenthesis.lookahead.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#single-three-fregexp-expression"
+ },
+ {
+ "include": "#comments-string-single-three"
+ }
+ ]
+ },
+ "single-three-fregexp-lookbehind": {
+ "begin": "(\\()\\?<=",
+ "end": "(\\)|(?=\\'\\'\\'))",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.lookbehind.regexp"
+ },
+ "1": {
+ "name": "punctuation.parenthesis.lookbehind.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#single-three-fregexp-expression"
+ },
+ {
+ "include": "#comments-string-single-three"
+ }
+ ]
+ },
+ "single-three-fregexp-lookbehind-negative": {
+ "begin": "(\\()\\?)\n",
+ "end": "(\\)|(?=\"))|((?=(?)\n",
+ "end": "(\\)|(?=\"\"\"))",
+ "beginCaptures": {
+ "1": {
+ "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"
+ },
+ "2": {
+ "name": "entity.name.tag.named.group.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#double-three-fregexp-expression"
+ },
+ {
+ "include": "#comments-string-double-three"
+ }
+ ]
+ },
+ "double-three-fregexp-lookahead": {
+ "begin": "(\\()\\?=",
+ "end": "(\\)|(?=\"\"\"))",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.lookahead.regexp"
+ },
+ "1": {
+ "name": "punctuation.parenthesis.lookahead.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#double-three-fregexp-expression"
+ },
+ {
+ "include": "#comments-string-double-three"
+ }
+ ]
+ },
+ "double-three-fregexp-lookahead-negative": {
+ "begin": "(\\()\\?!",
+ "end": "(\\)|(?=\"\"\"))",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.lookahead.negative.regexp"
+ },
+ "1": {
+ "name": "punctuation.parenthesis.lookahead.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#double-three-fregexp-expression"
+ },
+ {
+ "include": "#comments-string-double-three"
+ }
+ ]
+ },
+ "double-three-fregexp-lookbehind": {
+ "begin": "(\\()\\?<=",
+ "end": "(\\)|(?=\"\"\"))",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.lookbehind.regexp"
+ },
+ "1": {
+ "name": "punctuation.parenthesis.lookbehind.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#double-three-fregexp-expression"
+ },
+ {
+ "include": "#comments-string-double-three"
+ }
+ ]
+ },
+ "double-three-fregexp-lookbehind-negative": {
+ "begin": "(\\()\\?=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n",
+ "captures": {
+ "1": {
+ "name": "storage.type.format.python"
+ },
+ "2": {
+ "name": "storage.type.format.python"
+ }
+ }
+ },
+ {
+ "include": "#fstring-terminator-single-tail"
+ }
+ ]
+ },
+ "fstring-terminator-single-tail": {
+ "begin": "(![rsa])?(:)(?=.*?{)",
+ "end": "(?=})|(?=\\n)",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.format.python"
+ },
+ "2": {
+ "name": "storage.type.format.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#fstring-illegal-single-brace"
+ },
+ {
+ "include": "#fstring-single-brace"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "([bcdeEfFgGnosxX%])(?=})"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "(\\.\\d+)"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "(,)"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "(\\d+)"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "(\\#)"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "([-+ ])"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "([<>=^])"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "(\\w)"
+ }
+ ]
+ },
+ "fstring-fnorm-quoted-multi-line": {
+ "name": "meta.fstring.python",
+ "begin": "(\\b[fF])([bBuU])?('''|\"\"\")",
+ "end": "(\\3)",
+ "beginCaptures": {
+ "1": {
+ "name": "string.interpolated.python string.quoted.multi.python storage.type.string.python"
+ },
+ "2": {
+ "name": "invalid.illegal.prefix.python"
+ },
+ "3": {
+ "name": "punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#fstring-guts"
+ },
+ {
+ "include": "#fstring-illegal-multi-brace"
+ },
+ {
+ "include": "#fstring-multi-brace"
+ },
+ {
+ "include": "#fstring-multi-core"
+ }
+ ]
+ },
+ "fstring-normf-quoted-multi-line": {
+ "name": "meta.fstring.python",
+ "begin": "(\\b[bBuU])([fF])('''|\"\"\")",
+ "end": "(\\3)",
+ "beginCaptures": {
+ "1": {
+ "name": "invalid.illegal.prefix.python"
+ },
+ "2": {
+ "name": "string.interpolated.python string.quoted.multi.python storage.type.string.python"
+ },
+ "3": {
+ "name": "punctuation.definition.string.begin.python string.quoted.multi.python"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#fstring-guts"
+ },
+ {
+ "include": "#fstring-illegal-multi-brace"
+ },
+ {
+ "include": "#fstring-multi-brace"
+ },
+ {
+ "include": "#fstring-multi-core"
+ }
+ ]
+ },
+ "fstring-raw-quoted-multi-line": {
+ "name": "meta.fstring.python",
+ "begin": "(\\b(?:[R][fF]|[fF][R]))('''|\"\"\")",
+ "end": "(\\2)",
+ "beginCaptures": {
+ "1": {
+ "name": "string.interpolated.python string.quoted.raw.multi.python storage.type.string.python"
+ },
+ "2": {
+ "name": "punctuation.definition.string.begin.python string.quoted.raw.multi.python"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#fstring-raw-guts"
+ },
+ {
+ "include": "#fstring-illegal-multi-brace"
+ },
+ {
+ "include": "#fstring-multi-brace"
+ },
+ {
+ "include": "#fstring-raw-multi-core"
+ }
+ ]
+ },
+ "fstring-multi-core": {
+ "name": "string.interpolated.python string.quoted.multi.python",
+ "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n"
+ },
+ "fstring-raw-multi-core": {
+ "name": "string.interpolated.python string.quoted.raw.multi.python",
+ "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n"
+ },
+ "fstring-multi-brace": {
+ "comment": "value interpolation using { ... }",
+ "begin": "(\\{)",
+ "end": "(?x)\n (\\})\n",
+ "beginCaptures": {
+ "1": {
+ "name": "constant.character.format.placeholder.other.python"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "constant.character.format.placeholder.other.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#fstring-terminator-multi"
+ },
+ {
+ "include": "#f-expression"
+ }
+ ]
+ },
+ "fstring-terminator-multi": {
+ "patterns": [
+ {
+ "name": "storage.type.format.python",
+ "match": "(![rsa])(?=})"
+ },
+ {
+ "match": "(?x)\n (![rsa])?\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n",
+ "captures": {
+ "1": {
+ "name": "storage.type.format.python"
+ },
+ "2": {
+ "name": "storage.type.format.python"
+ }
+ }
+ },
+ {
+ "include": "#fstring-terminator-multi-tail"
+ }
+ ]
+ },
+ "fstring-terminator-multi-tail": {
+ "begin": "(![rsa])?(:)(?=.*?{)",
+ "end": "(?=})",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.format.python"
+ },
+ "2": {
+ "name": "storage.type.format.python"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#fstring-illegal-multi-brace"
+ },
+ {
+ "include": "#fstring-multi-brace"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "([bcdeEfFgGnosxX%])(?=})"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "(\\.\\d+)"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "(,)"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "(\\d+)"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "(\\#)"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "([-+ ])"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "([<>=^])"
+ },
+ {
+ "name": "storage.type.format.python",
+ "match": "(\\w)"
+ }
+ ]
+ }
+ }
+}
diff --git a/html/monaco-editor/tmLanguage/c.tmLanguage.json b/html/monaco-editor/tmLanguage/c.tmLanguage.json
new file mode 100644
index 0000000..e66523c
--- /dev/null
+++ b/html/monaco-editor/tmLanguage/c.tmLanguage.json
@@ -0,0 +1,3555 @@
+{
+ "information_for_contributors": [
+ "This file has been converted from https://github.com/jeff-hykin/better-c-syntax/blob/master/autogenerated/c.tmLanguage.json",
+ "If you want to provide a fix or improvement, please create a pull request against the original repository.",
+ "Once accepted there, we are happy to receive an update request."
+ ],
+ "version": "https://github.com/jeff-hykin/better-c-syntax/commit/34712a6106a4ffb0a04d2fa836fd28ff6c5849a4",
+ "name": "C",
+ "scopeName": "source.c",
+ "patterns": [
+ {
+ "include": "#preprocessor-rule-enabled"
+ },
+ {
+ "include": "#preprocessor-rule-disabled"
+ },
+ {
+ "include": "#preprocessor-rule-conditional"
+ },
+ {
+ "include": "#predefined_macros"
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#switch_statement"
+ },
+ {
+ "include": "#anon_pattern_1"
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "include": "#anon_pattern_2"
+ },
+ {
+ "include": "#anon_pattern_3"
+ },
+ {
+ "include": "#anon_pattern_4"
+ },
+ {
+ "include": "#anon_pattern_5"
+ },
+ {
+ "include": "#anon_pattern_6"
+ },
+ {
+ "include": "#anon_pattern_7"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#numbers"
+ },
+ {
+ "include": "#strings"
+ },
+ {
+ "include": "#anon_pattern_range_1"
+ },
+ {
+ "include": "#anon_pattern_range_2"
+ },
+ {
+ "include": "#anon_pattern_range_3"
+ },
+ {
+ "include": "#pragma-mark"
+ },
+ {
+ "include": "#anon_pattern_range_4"
+ },
+ {
+ "include": "#anon_pattern_range_5"
+ },
+ {
+ "include": "#anon_pattern_range_6"
+ },
+ {
+ "include": "#anon_pattern_8"
+ },
+ {
+ "include": "#anon_pattern_9"
+ },
+ {
+ "include": "#anon_pattern_10"
+ },
+ {
+ "include": "#anon_pattern_11"
+ },
+ {
+ "include": "#anon_pattern_12"
+ },
+ {
+ "include": "#anon_pattern_13"
+ },
+ {
+ "include": "#block"
+ },
+ {
+ "include": "#parens"
+ },
+ {
+ "include": "#anon_pattern_range_7"
+ },
+ {
+ "include": "#line_continuation_character"
+ },
+ {
+ "include": "#anon_pattern_range_8"
+ },
+ {
+ "include": "#anon_pattern_range_9"
+ },
+ {
+ "include": "#anon_pattern_14"
+ },
+ {
+ "include": "#anon_pattern_15"
+ }
+ ],
+ "repository": {
+ "access-method": {
+ "name": "meta.function-call.member.c",
+ "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.object.c"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.c"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.c"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\.",
+ "name": "punctuation.separator.dot-access.c"
+ },
+ {
+ "match": "->",
+ "name": "punctuation.separator.pointer-access.c"
+ },
+ {
+ "match": "[a-zA-Z_][a-zA-Z_0-9]*",
+ "name": "variable.object.c"
+ },
+ {
+ "name": "everything.else.c",
+ "match": ".+"
+ }
+ ]
+ },
+ "5": {
+ "name": "entity.name.function.member.c"
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ "anon_pattern_1": {
+ "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",
+ "name": "keyword.control.c"
+ },
+ "anon_pattern_10": {
+ "match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b",
+ "name": "support.type.stdint.c"
+ },
+ "anon_pattern_11": {
+ "match": "\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",
+ "name": "support.constant.mac-classic.c"
+ },
+ "anon_pattern_12": {
+ "match": "(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b",
+ "name": "support.type.mac-classic.c"
+ },
+ "anon_pattern_13": {
+ "match": "\\b([A-Za-z0-9_]+_t)\\b",
+ "name": "support.type.posix-reserved.c"
+ },
+ "anon_pattern_14": {
+ "match": ";",
+ "name": "punctuation.terminator.statement.c"
+ },
+ "anon_pattern_15": {
+ "match": ",",
+ "name": "punctuation.separator.delimiter.c"
+ },
+ "anon_pattern_2": {
+ "match": "typedef",
+ "name": "keyword.other.typedef.c"
+ },
+ "anon_pattern_3": {
+ "match": "\\b(const|extern|register|restrict|static|volatile|inline)\\b",
+ "name": "storage.modifier.c"
+ },
+ "anon_pattern_4": {
+ "match": "\\bk[A-Z]\\w*\\b",
+ "name": "constant.other.variable.mac-classic.c"
+ },
+ "anon_pattern_5": {
+ "match": "\\bg[A-Z]\\w*\\b",
+ "name": "variable.other.readwrite.global.mac-classic.c"
+ },
+ "anon_pattern_6": {
+ "match": "\\bs[A-Z]\\w*\\b",
+ "name": "variable.other.readwrite.static.mac-classic.c"
+ },
+ "anon_pattern_7": {
+ "match": "\\b(NULL|true|false|TRUE|FALSE)\\b",
+ "name": "constant.language.c"
+ },
+ "anon_pattern_8": {
+ "match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",
+ "name": "support.type.sys-types.c"
+ },
+ "anon_pattern_9": {
+ "match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",
+ "name": "support.type.pthread.c"
+ },
+ "anon_pattern_range_1": {
+ "name": "meta.preprocessor.macro.c",
+ "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\s+((?",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.c"
+ }
+ },
+ "name": "string.quoted.other.lt-gt.include.c"
+ }
+ ]
+ },
+ "anon_pattern_range_4": {
+ "begin": "^\\s*((#)\\s*line)\\b",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.directive.line.c"
+ },
+ "2": {
+ "name": "punctuation.definition.directive.c"
+ }
+ },
+ "end": "(?=(?://|/\\*))|(?=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.other.c"
+ },
+ "2": {
+ "name": "punctuation.section.parens.begin.bracket.round.initialization.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.initialization.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ {
+ "begin": "{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.c"
+ }
+ },
+ "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ {
+ "include": "#parens-block"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "c_conditional_context": {
+ "patterns": [
+ {
+ "include": "$self"
+ },
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ "c_function_call": {
+ "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
+ "end": "(?<=\\))(?!\\w)",
+ "name": "meta.function-call.c",
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ "case_statement": {
+ "name": "meta.conditional.case.c",
+ "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?\\s*)(\\/\\/[!\\/]+)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.documentation.c"
+ }
+ },
+ "end": "(?<=\\n)(?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.c"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.c"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.c"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "in|out",
+ "name": "keyword.other.parameter.direction.$0.c"
+ }
+ ]
+ },
+ "3": {
+ "name": "variable.parameter.c"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
+ "name": "storage.type.class.gtkdoc"
+ }
+ ]
+ },
+ {
+ "match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.comment.begin.documentation.c"
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.c"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.c"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.c"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "in|out",
+ "name": "keyword.other.parameter.direction.$0.c"
+ }
+ ]
+ },
+ "3": {
+ "name": "variable.parameter.c"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
+ "name": "storage.type.class.gtkdoc"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.comment.end.documentation.c"
+ }
+ },
+ "name": "comment.block.documentation.c"
+ },
+ {
+ "name": "comment.block.documentation.c",
+ "begin": "((?>\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.begin.documentation.c"
+ }
+ },
+ "end": "([!*]*\\*\\/)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.end.documentation.c"
+ }
+ },
+ "patterns": [
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.c"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.c"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.c"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "in|out",
+ "name": "keyword.other.parameter.direction.$0.c"
+ }
+ ]
+ },
+ "3": {
+ "name": "variable.parameter.c"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
+ "name": "storage.type.class.gtkdoc"
+ }
+ ]
+ },
+ {
+ "match": "^\\/\\* =(\\s*.*?)\\s*= \\*\\/$\\n?",
+ "captures": {
+ "1": {
+ "name": "meta.toc-list.banner.block.c"
+ }
+ },
+ "name": "comment.block.banner.c"
+ },
+ {
+ "name": "comment.block.c",
+ "begin": "(\\/\\*)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.begin.c"
+ }
+ },
+ "end": "(\\*\\/)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.end.c"
+ }
+ }
+ },
+ {
+ "match": "^\\/\\/ =(\\s*.*?)\\s*=$\\n?",
+ "captures": {
+ "1": {
+ "name": "meta.toc-list.banner.line.c"
+ }
+ },
+ "name": "comment.line.banner.c"
+ },
+ {
+ "begin": "((?:^[ \\t]+)?)(?=\\/\\/)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.whitespace.comment.leading.c"
+ }
+ },
+ "end": "(?!\\G)",
+ "patterns": [
+ {
+ "name": "comment.line.double-slash.c",
+ "begin": "(\\/\\/)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.c"
+ }
+ },
+ "end": "(?=\\n)",
+ "patterns": [
+ {
+ "include": "#line_continuation_character"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "include": "#block_comment"
+ },
+ {
+ "include": "#line_comment"
+ }
+ ]
+ },
+ {
+ "include": "#block_comment"
+ },
+ {
+ "include": "#line_comment"
+ }
+ ]
+ },
+ "default_statement": {
+ "name": "meta.conditional.case.c",
+ "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.c"
+ },
+ "2": {
+ "name": "punctuation.section.arguments.begin.bracket.round.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ "function-innards": {
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#vararg_ellipses"
+ },
+ {
+ "name": "meta.function.definition.parameters.c",
+ "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.c"
+ },
+ "2": {
+ "name": "punctuation.section.parameters.begin.bracket.round.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.end.bracket.round.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#probably_a_parameter"
+ },
+ {
+ "include": "#function-innards"
+ }
+ ]
+ },
+ {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-innards"
+ }
+ ]
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "inline_comment": {
+ "patterns": [
+ {
+ "patterns": [
+ {
+ "match": "(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/))",
+ "captures": {
+ "1": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "2": {
+ "name": "comment.block.c"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))",
+ "captures": {
+ "1": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "2": {
+ "name": "comment.block.c"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ {
+ "match": "(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))",
+ "captures": {
+ "1": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "2": {
+ "name": "comment.block.c"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "line_comment": {
+ "patterns": [
+ {
+ "begin": "\\s*+(\\/\\/)",
+ "end": "(?<=\\n)(?\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|atomic_uintptr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintmax_t|pthread_mutex_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_attr_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_cond_t|pthread_once_t|uint_fast64_t|uint_fast16_t|atomic_size_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|pthread_key_t|atomic_ullong|atomic_ushort|uint_fast32_t|atomic_schar|atomic_short|uint_fast8_t|int_fast64_t|int_fast32_t|int_fast16_t|atomic_ulong|atomic_llong|int_least8_t|atomic_uchar|memory_order|suseconds_t|int_fast8_t|atomic_bool|atomic_char|atomic_uint|atomic_long|atomic_int|useconds_t|_Imaginary|blksize_t|pthread_t|in_addr_t|uintptr_t|in_port_t|uintmax_t|uintmax_t|blkcnt_t|uint16_t|unsigned|_Complex|uint32_t|intptr_t|intmax_t|intmax_t|uint64_t|u_quad_t|int64_t|int32_t|ssize_t|caddr_t|clock_t|uint8_t|u_short|swblk_t|segsz_t|int16_t|fixpt_t|daddr_t|nlink_t|qaddr_t|size_t|time_t|mode_t|signed|quad_t|ushort|u_long|u_char|double|int8_t|ino_t|uid_t|pid_t|_Bool|float|dev_t|div_t|short|gid_t|off_t|u_int|key_t|id_t|uint|long|void|char|bool|id_t|int)\\b)[a-zA-Z_]\\w*\\b(?!\\())",
+ "captures": {
+ "1": {
+ "name": "variable.other.object.access.c"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.c"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.c"
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#method_access"
+ },
+ {
+ "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
+ "captures": {
+ "1": {
+ "name": "variable.other.object.access.c"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.c"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.c"
+ }
+ }
+ }
+ ]
+ },
+ "5": {
+ "name": "variable.other.member.c"
+ }
+ }
+ },
+ "method_access": {
+ "contentName": "meta.function-call.member.c",
+ "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.other.object.access.c"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.c"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.c"
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#method_access"
+ },
+ {
+ "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
+ "captures": {
+ "1": {
+ "name": "variable.other.object.access.c"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.c"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.c"
+ }
+ }
+ }
+ ]
+ },
+ "5": {
+ "name": "entity.name.function.member.c"
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.c"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ "numbers": {
+ "match": "(?>=|\\|=",
+ "name": "keyword.operator.assignment.compound.bitwise.c"
+ },
+ {
+ "match": "<<|>>",
+ "name": "keyword.operator.bitwise.shift.c"
+ },
+ {
+ "match": "!=|<=|>=|==|<|>",
+ "name": "keyword.operator.comparison.c"
+ },
+ {
+ "match": "&&|!|\\|\\|",
+ "name": "keyword.operator.logical.c"
+ },
+ {
+ "match": "&|\\||\\^|~",
+ "name": "keyword.operator.c"
+ },
+ {
+ "match": "=",
+ "name": "keyword.operator.assignment.c"
+ },
+ {
+ "match": "%|\\*|/|-|\\+",
+ "name": "keyword.operator.c"
+ },
+ {
+ "begin": "(\\?)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.ternary.c"
+ }
+ },
+ "end": "(:)",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.ternary.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "parens": {
+ "name": "meta.parens.c",
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "parens-block": {
+ "name": "meta.parens.block.c",
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block_innards"
+ },
+ {
+ "match": "(?-mix:(?=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
+ "end": "(?<=\\))(?!\\w)|(?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.c"
+ },
+ "2": {
+ "name": "punctuation.section.arguments.begin.bracket.round.c"
+ }
+ },
+ "end": "(\\))|(?\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))",
+ "captures": {
+ "1": {
+ "name": "variable.parameter.probably.c"
+ }
+ }
+ },
+ "static_assert": {
+ "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "3": {
+ "name": "comment.block.c"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ },
+ "5": {
+ "name": "keyword.other.static_assert.c"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "8": {
+ "name": "comment.block.c"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ },
+ "10": {
+ "name": "punctuation.section.arguments.begin.bracket.round.static_assert.c"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.arguments.end.bracket.round.static_assert.c"
+ }
+ },
+ "patterns": [
+ {
+ "name": "meta.static_assert.message.c",
+ "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.separator.delimiter.comma.c"
+ }
+ },
+ "end": "(?=\\))",
+ "patterns": [
+ {
+ "include": "#string_context"
+ }
+ ]
+ },
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "storage_types": {
+ "patterns": [
+ {
+ "match": "(?-mix:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\n|$)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "3": {
+ "name": "comment.block.c"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "begin": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.section.parens.begin.bracket.round.assembly.c"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "4": {
+ "name": "comment.block.c"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.parens.end.bracket.round.assembly.c"
+ }
+ },
+ "patterns": [
+ {
+ "name": "string.quoted.double.c",
+ "contentName": "meta.embedded.assembly.c",
+ "begin": "(R?)(\")",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.encoding.c"
+ },
+ "2": {
+ "name": "punctuation.definition.string.begin.assembly.c"
+ }
+ },
+ "end": "(\")",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.assembly.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "source.asm"
+ },
+ {
+ "include": "source.x86"
+ },
+ {
+ "include": "source.x86_64"
+ },
+ {
+ "include": "source.arm"
+ },
+ {
+ "include": "#backslash_escapes"
+ },
+ {
+ "include": "#string_escaped_char"
+ }
+ ]
+ },
+ {
+ "begin": "(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.section.parens.begin.bracket.round.assembly.inner.c"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.parens.end.bracket.round.assembly.inner.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "match": "\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))([a-zA-Z_]\\w*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "3": {
+ "name": "comment.block.c"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ },
+ "5": {
+ "name": "variable.other.asm.label.c"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "8": {
+ "name": "comment.block.c"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": ":",
+ "name": "punctuation.separator.delimiter.colon.assembly.c"
+ },
+ {
+ "include": "#comments"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "string_escaped_char": {
+ "patterns": [
+ {
+ "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",
+ "name": "constant.character.escape.c"
+ },
+ {
+ "match": "\\\\.",
+ "name": "invalid.illegal.unknown-escape.c"
+ }
+ ]
+ },
+ "string_placeholder": {
+ "patterns": [
+ {
+ "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",
+ "name": "constant.other.placeholder.c"
+ },
+ {
+ "match": "(%)(?!\"\\s*(PRI|SCN))",
+ "captures": {
+ "1": {
+ "name": "invalid.illegal.placeholder.c"
+ }
+ }
+ }
+ ]
+ },
+ "strings": {
+ "patterns": [
+ {
+ "begin": "\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.c"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.c"
+ }
+ },
+ "name": "string.quoted.double.c",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ },
+ {
+ "include": "#string_placeholder"
+ },
+ {
+ "include": "#line_continuation_character"
+ }
+ ]
+ },
+ {
+ "begin": "'",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.c"
+ }
+ },
+ "end": "'",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.c"
+ }
+ },
+ "name": "string.quoted.single.c",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ },
+ {
+ "include": "#line_continuation_character"
+ }
+ ]
+ }
+ ]
+ },
+ "switch_conditional_parentheses": {
+ "name": "meta.conditional.switch.c",
+ "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "3": {
+ "name": "comment.block.c"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ },
+ "5": {
+ "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.c"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.parens.end.bracket.round.conditional.switch.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ },
+ {
+ "include": "#c_conditional_context"
+ }
+ ]
+ },
+ "switch_statement": {
+ "name": "meta.block.switch.c",
+ "begin": "(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "patterns": [
+ {
+ "name": "meta.head.switch.c",
+ "begin": "\\G ?",
+ "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.begin.bracket.curly.switch.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#switch_conditional_parentheses"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "name": "meta.body.switch.c",
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "(\\}|%>|\\?\\?>)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.end.bracket.curly.switch.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#default_statement"
+ },
+ {
+ "include": "#case_statement"
+ },
+ {
+ "include": "$self"
+ },
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ {
+ "name": "meta.tail.switch.c",
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
+ "end": "[\\s\\n]*(?=;)",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "vararg_ellipses": {
+ "match": "(?