├── .github └── workflows │ └── gh-pages.yml ├── .gitignore ├── .prettierrc ├── .vscode ├── extensions.json └── settings.json ├── LICENSE ├── README.md ├── package.json ├── src ├── autocompletionData.ts ├── completionProvider.ts ├── editorSession.ts ├── formatter.ts ├── glua │ ├── GluaEnum.ts │ ├── GluaFunc.ts │ ├── GluaItem.ts │ ├── GmodInterfaceValue.ts │ └── Gwiki.ts ├── gmodInterface.ts ├── hoverProvider.ts ├── index.ts ├── lua.ts ├── luacheckCompat.ts ├── repl.ts ├── replInterface.ts └── themeLoader.ts ├── themes ├── Active4D.json ├── All Hallows Eve.json ├── Amy.json ├── Birds of Paradise.json ├── Blackboard.json ├── Brilliance Black.json ├── Brilliance Dull.json ├── Chrome DevTools.json ├── Clouds Midnight.json ├── Clouds.json ├── Cobalt.json ├── Dawn.json ├── Dominion Day.json ├── Dreamweaver.json ├── Eiffel.json ├── Espresso Libre.json ├── GitHub.json ├── IDLE.json ├── Katzenmilch.json ├── Kuroir Theme.json ├── LAZY.json ├── MagicWB (Amiga).json ├── Merbivore Soft.json ├── Merbivore.json ├── Monokai Bright.json ├── Monokai.json ├── Night Owl.json ├── Oceanic Next.json ├── Pastels on Dark.json ├── Slush and Poppies.json ├── Solarized-dark.json ├── Solarized-light.json ├── SpaceCadet.json ├── Sunburst.json ├── Textmate (Mac Classic).json ├── Tomorrow-Night-Blue.json ├── Tomorrow-Night-Bright.json ├── Tomorrow-Night-Eighties.json ├── Tomorrow-Night.json ├── Tomorrow.json ├── Twilight.json ├── Upstream Sunburst.json ├── Vibrant Ink.json ├── Xcode_default.json ├── Zenburnesque.json ├── iPlastic.json ├── idleFingers.json ├── krTheme.json ├── monoindustrial.json └── themelist.json ├── tsconfig.json ├── views ├── index.html └── repl.html ├── webpack.config.js └── yarn.lock /.github/workflows/gh-pages.yml: -------------------------------------------------------------------------------- 1 | name: Build and Deploy GitHub Pages 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | 8 | jobs: 9 | build: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/checkout@v2 14 | 15 | - name: Use Node.js 14.15.1 16 | uses: actions/setup-node@v1 17 | with: 18 | node-version: "14.15.1" 19 | 20 | - name: Build 21 | run: | 22 | yarn 23 | yarn build 24 | env: 25 | CI: true 26 | 27 | - name: Deploy GitHub Pages 28 | uses: peaceiris/actions-gh-pages@v3 29 | with: 30 | github_token: ${{ secrets.GITHUB_TOKEN }} 31 | publish_dir: ./dist 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.gitignore.io/api/node 3 | # Edit at https://www.gitignore.io/?templates=node 4 | 5 | ### Node ### 6 | # Logs 7 | logs 8 | *.log 9 | npm-debug.log* 10 | yarn-debug.log* 11 | yarn-error.log* 12 | lerna-debug.log* 13 | 14 | # Diagnostic reports (https://nodejs.org/api/report.html) 15 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 16 | 17 | # Runtime data 18 | pids 19 | *.pid 20 | *.seed 21 | *.pid.lock 22 | 23 | # Directory for instrumented libs generated by jscoverage/JSCover 24 | lib-cov 25 | 26 | # Coverage directory used by tools like istanbul 27 | coverage 28 | *.lcov 29 | 30 | # nyc test coverage 31 | .nyc_output 32 | 33 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 34 | .grunt 35 | 36 | # Bower dependency directory (https://bower.io/) 37 | bower_components 38 | 39 | # node-waf configuration 40 | .lock-wscript 41 | 42 | # Compiled binary addons (https://nodejs.org/api/addons.html) 43 | build/Release 44 | 45 | # Dependency directories 46 | node_modules/ 47 | jspm_packages/ 48 | 49 | # TypeScript v1 declaration files 50 | typings/ 51 | 52 | # TypeScript cache 53 | *.tsbuildinfo 54 | 55 | # Optional npm cache directory 56 | .npm 57 | 58 | # Optional eslint cache 59 | .eslintcache 60 | 61 | # Optional REPL history 62 | .node_repl_history 63 | 64 | # Output of 'npm pack' 65 | *.tgz 66 | 67 | # Yarn Integrity file 68 | .yarn-integrity 69 | 70 | # dotenv environment variables file 71 | .env 72 | .env.test 73 | 74 | # parcel-bundler cache (https://parceljs.org/) 75 | .cache 76 | 77 | # next.js build output 78 | .next 79 | 80 | # nuxt.js build output 81 | .nuxt 82 | 83 | # rollup.js default build output 84 | dist/**/* 85 | 86 | # Uncomment the public line if your project uses Gatsby 87 | # https://nextjs.org/blog/next-9-1#public-directory-support 88 | # https://create-react-app.dev/docs/using-the-public-folder/#docsNav 89 | # public 90 | 91 | # Storybook build outputs 92 | .out 93 | .storybook-out 94 | 95 | # vuepress build output 96 | .vuepress/dist 97 | 98 | # Serverless directories 99 | .serverless/ 100 | 101 | # FuseBox cache 102 | .fusebox/ 103 | 104 | # DynamoDB Local files 105 | .dynamodb/ 106 | 107 | # Temporary folders 108 | tmp/ 109 | temp/ 110 | 111 | # End of https://www.gitignore.io/api/node 112 | 113 | package-lock.json 114 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 4 3 | } 4 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["esbenp.prettier-vscode"] 3 | } 4 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": ["gmodinterface"], 3 | "editor.tabSize": 4, 4 | "typescript.tsdk": "node_modules\\typescript\\lib", 5 | "editor.formatOnSave": true, 6 | "editor.defaultFormatter": "esbenp.prettier-vscode" 7 | } 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Meta Construct 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # gmod-monaco 2 | 3 | A [monaco](https://github.com/microsoft/monaco-editor)-based GLua editor with auto-completion and syntax checking. 4 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "gmod-monaco", 3 | "version": "1.0.0", 4 | "main": "src/index.js", 5 | "license": "MIT", 6 | "scripts": { 7 | "build": "webpack -p", 8 | "watch": "webpack --watch", 9 | "dev": "webpack-dev-server" 10 | }, 11 | "dependencies": { 12 | "lua-fmt": "^2.6.0" 13 | }, 14 | "devDependencies": { 15 | "css-loader": "^5.2.4", 16 | "file-loader": "^6.2.0", 17 | "html-webpack-plugin": "^4.3.0", 18 | "monaco-editor": "^0.24.0", 19 | "monaco-editor-webpack-plugin": "^3.1.0", 20 | "prettier": "2.3.0", 21 | "style-loader": "^2.0.0", 22 | "ts-loader": "^7.0.5", 23 | "typescript": "^4.2.4", 24 | "webpack": "^4.43.0", 25 | "webpack-cli": "^3.3.11", 26 | "webpack-command": "^0.5.0", 27 | "webpack-dev-server": "^3.11.0" 28 | } 29 | } -------------------------------------------------------------------------------- /src/completionProvider.ts: -------------------------------------------------------------------------------- 1 | import * as monaco from "monaco-editor"; 2 | import { autocompletionData } from "./autocompletionData"; 3 | 4 | export class GLuaCompletionProvider 5 | implements monaco.languages.CompletionItemProvider { 6 | public triggerCharacters?: [":", ".", "("]; 7 | 8 | public provideCompletionItems( 9 | model: monaco.editor.ITextModel, 10 | position: monaco.Position, 11 | context: monaco.languages.CompletionContext, 12 | token: monaco.CancellationToken 13 | ): monaco.languages.ProviderResult { 14 | const lineUntil = model 15 | .getLineContent(position.lineNumber) 16 | .substring(0, position.column); 17 | const word = model.getWordUntilPosition(position); 18 | const insertRange = { 19 | startLineNumber: position.lineNumber, 20 | endLineNumber: position.lineNumber, 21 | startColumn: word.startColumn, 22 | endColumn: word.endColumn, 23 | }; 24 | const prevWord = model.getWordUntilPosition({ 25 | lineNumber: position.lineNumber, 26 | column: word.startColumn - 1, 27 | }); 28 | const lastChar = lineUntil.charAt(prevWord.endColumn - 1); 29 | let firstIdentifierWord = prevWord; 30 | let currentIdentifier = firstIdentifierWord.word; 31 | if (lastChar === "." || lastChar === "(") { 32 | while (true) { 33 | if ( 34 | lineUntil.charAt(firstIdentifierWord.startColumn - 2) !== 35 | "." 36 | ) { 37 | break; 38 | } 39 | firstIdentifierWord = model.getWordUntilPosition({ 40 | lineNumber: position.lineNumber, 41 | column: firstIdentifierWord.startColumn - 1, 42 | }); 43 | currentIdentifier = 44 | firstIdentifierWord.word + "." + currentIdentifier; 45 | } 46 | } 47 | if (lastChar === ":") { 48 | return autocompletionData.methodAutocomplete(insertRange); 49 | } else if ( 50 | lastChar === "." && 51 | autocompletionData.modules.indexOf( 52 | currentIdentifier.split(".")[0] 53 | ) !== -1 54 | ) { 55 | insertRange.startColumn = firstIdentifierWord.startColumn; 56 | return autocompletionData.globalAutocomplete(insertRange); 57 | } else if ( 58 | (lastChar === "(" || lastChar === '"') && 59 | firstIdentifierWord.word === "hook" && 60 | currentIdentifier !== "hook.GetTable" 61 | ) { 62 | return autocompletionData.hookAutocomplete( 63 | insertRange, 64 | lastChar === "(" 65 | ); 66 | } else if (prevWord.word === "local") { 67 | return { 68 | suggestions: [ 69 | { 70 | label: "function", 71 | kind: monaco.languages.CompletionItemKind.Keyword, 72 | insertText: "function", 73 | range: insertRange, 74 | }, 75 | { 76 | label: "fun", 77 | kind: monaco.languages.CompletionItemKind.Snippet, 78 | insertText: 79 | "function ${1:fname}(${2:...})\n${3:-- body}\nend", 80 | insertTextRules: 81 | monaco.languages.CompletionItemInsertTextRule 82 | .InsertAsSnippet, 83 | range: insertRange, 84 | }, 85 | ], 86 | incomplete: false, 87 | }; 88 | } else if (lastChar === ".") { 89 | return { 90 | suggestions: [], 91 | incomplete: false, 92 | }; 93 | } else { 94 | return autocompletionData.globalAutocomplete(insertRange); 95 | } 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /src/editorSession.ts: -------------------------------------------------------------------------------- 1 | import * as monaco from "monaco-editor"; 2 | 3 | export interface EditorSessionObject { 4 | name: string; 5 | code: string; 6 | language: string; 7 | viewState?: monaco.editor.ICodeEditorViewState; 8 | versionId: number; 9 | } 10 | 11 | export class EditorSession implements EditorSessionObject { 12 | name: string = "Unnamed"; 13 | code: string = "-- empty :c"; 14 | language: string = "glua"; 15 | model: monaco.editor.ITextModel = monaco.editor.createModel( 16 | this.code, 17 | this.language 18 | ); 19 | viewState?: monaco.editor.ICodeEditorViewState; 20 | versionId: number = 0; 21 | getSerializable(): EditorSessionObject { 22 | return { 23 | name: this.name, 24 | code: this.code, 25 | language: this.language, 26 | viewState: this.viewState, 27 | versionId: this.model.getAlternativeVersionId(), 28 | }; 29 | } 30 | static fromObject(sessionObj: EditorSessionObject): EditorSession { 31 | const newSession = Object.assign(new EditorSession(), sessionObj); 32 | newSession.model.setValue(newSession.code); 33 | monaco.editor.setModelLanguage(newSession.model, newSession.language); 34 | return newSession; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/formatter.ts: -------------------------------------------------------------------------------- 1 | import * as monaco from "monaco-editor"; 2 | import { formatText } from "lua-fmt"; 3 | 4 | export class GLuaFormatter 5 | implements monaco.languages.DocumentFormattingEditProvider { 6 | displayName?: string; 7 | 8 | provideDocumentFormattingEdits( 9 | model: monaco.editor.ITextModel, 10 | options: monaco.languages.FormattingOptions, 11 | token: monaco.CancellationToken 12 | ): monaco.languages.ProviderResult { 13 | let code: string = model.getValue(); 14 | return [ 15 | { 16 | eol: monaco.editor.EndOfLineSequence.LF, 17 | range: model.getFullModelRange(), 18 | text: formatText(code, { 19 | useTabs: !options.insertSpaces, 20 | indentCount: options.tabSize, 21 | quotemark: "double", 22 | }), 23 | }, 24 | ]; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/glua/GluaEnum.ts: -------------------------------------------------------------------------------- 1 | import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; 2 | import { GluaItem } from "./GluaItem"; 3 | 4 | export class GluaEnum extends GluaItem { 5 | key!: string; 6 | value!: string; 7 | text!: string; 8 | tableDesc!: string; 9 | realm!: string; 10 | realms: string[] | undefined; 11 | constructor(jsonObj: object) { 12 | super(jsonObj); 13 | } 14 | generateDocumentation(): monaco.IMarkdownString[] { 15 | return [ 16 | { value: `Value: \`${this.value}\`` }, 17 | { value: this.text || "No description" }, 18 | { value: this.tableDesc || "No description" }, 19 | ]; 20 | } 21 | getDetail(): string { 22 | return `${this.text || ""}\n\n${this.tableDesc || "No description"}`; 23 | } 24 | getFullName() { 25 | return this.key; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/glua/GluaFunc.ts: -------------------------------------------------------------------------------- 1 | import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; 2 | import { GluaItem } from "./GluaItem"; 3 | 4 | export class GluaFunc extends GluaItem { 5 | name!: string; 6 | parent!: string; 7 | type!: string; 8 | description!: { 9 | text: string; 10 | internal?: string; 11 | deprecated?: string; 12 | }; 13 | realm!: string; 14 | file?: { text: string; line: string }; 15 | args!: { 16 | text: string; 17 | name: string; 18 | type: string; 19 | default?: string; 20 | }[]; 21 | rets!: { 22 | text: string; 23 | name: string; 24 | type: string; 25 | }[]; 26 | example!: { 27 | description: string; 28 | code: string; 29 | output: string; 30 | }[]; 31 | realms!: string[]; 32 | objType!: string; 33 | constructor(jsonObj: object) { 34 | super(jsonObj); 35 | } 36 | hasArgs(): boolean { 37 | return this.args.length !== 0; 38 | } 39 | getDetail(): string { 40 | return ( 41 | `${ 42 | this.description.deprecated !== undefined ? "[deprecated] " : "" 43 | }${this.description.internal !== undefined ? "[internal] " : ""}[${ 44 | this.realm 45 | }] ` + this.description.text.split("\n").shift() 46 | ); 47 | } 48 | getSuggestDocumentation(): string { 49 | return this.description.text.split("\n").slice(1).join("\n"); 50 | } 51 | getFullName(): string { 52 | if (this.type === "libraryfunc" && this.parent !== "Global") { 53 | return `${this.parent}.${this.name}`; 54 | } else if (this.type === "classfunc" || this.type === "panelfunc") { 55 | return `${this.parent}:${this.name}`; 56 | } 57 | return this.name; 58 | } 59 | 60 | generateUsageSnippet(): string { 61 | if (!this.hasArgs()) { 62 | return `${ 63 | this.type === "classfunc" || 64 | this.type === "hook" || 65 | this.type === "panelfunc" 66 | ? this.name 67 | : this.getFullName() 68 | }()`; 69 | } 70 | const args: string[] = []; 71 | this.args.forEach((elem, idx) => { 72 | let arg = `${idx + 1}:${elem.type}_${elem.name}`; 73 | if (elem.default && elem.default !== "" && elem.default !== "nil") { 74 | arg += "=" + elem.default; 75 | } 76 | args.push("${" + arg + "}"); 77 | }); 78 | return `${ 79 | this.type === "classfunc" || 80 | this.type === "hook" || 81 | this.type === "panelfunc" 82 | ? this.name 83 | : this.getFullName() 84 | }(${args.join(", ")})`; 85 | } 86 | generateUsageText(): string { 87 | if (!this.hasArgs()) { 88 | return this.getFullName() + "()"; 89 | } 90 | const args: string[] = []; 91 | this.args.forEach((elem) => { 92 | let arg = `(${elem.type})${elem.name}`; 93 | if (elem.default && elem.default !== "" && elem.default !== "nil") { 94 | arg += "=" + elem.default; 95 | } 96 | args.push(arg); 97 | }); 98 | return `${this.getFullName()}(${args.join(", ")})`; 99 | } 100 | generateDocumentation(): monaco.IMarkdownString[] { 101 | const output = [ 102 | { value: `**${this.generateUsageText()}**` }, 103 | { value: `#### Realm: \`${this.realm}\`` }, 104 | { 105 | value: `${ 106 | this.description.deprecated !== undefined 107 | ? "### Deprecated\n" + this.description.deprecated 108 | : "" 109 | }`, 110 | }, 111 | { 112 | value: `${ 113 | this.description.internal !== undefined 114 | ? "### Internal\n" + this.description.internal 115 | : "" 116 | }`, 117 | }, 118 | { value: `${this.description.text}` }, 119 | ]; 120 | if (this.hasArgs()) { 121 | let result = "## Arguments\n"; 122 | this.args.forEach((arg, idx) => { 123 | let argStr = `${idx + 1}. (${arg.type}) ${arg.name}`; 124 | if ( 125 | arg.default && 126 | arg.default !== "" && 127 | arg.default !== "nil" 128 | ) { 129 | argStr += "=" + arg.default; 130 | } 131 | result += `### ${argStr}\n##### ${arg.text.replace( 132 | "\n", 133 | "\n##### " 134 | )}\n`; 135 | }); 136 | output.push({ value: result.trim() }); 137 | } 138 | if (this.rets !== undefined && this.rets.length !== 0) { 139 | let result = "## Returns\n"; 140 | this.rets.forEach((ret, idx) => { 141 | result += `### ${idx + 1}. ${ 142 | ret.type 143 | }\n##### ${ret.text.replace("\n", "\n##### ")}\n`; 144 | }); 145 | output.push({ value: result.trim() }); 146 | } 147 | if (this.example.length !== 0) { 148 | output.push({ value: `## Examples` }); 149 | this.example.forEach((elem, idx) => { 150 | output.push({ 151 | value: `### Example ${idx + 1}.\n#### ${elem.description}`, 152 | }); 153 | output.push({ value: `\`\`\`glua\n${elem.code}\n\`\`\`` }); 154 | if (elem.output !== "" && elem.output !== undefined) { 155 | output.push({ value: `##### Output\n\`${elem.output}\`` }); 156 | } 157 | }); 158 | } 159 | return output; 160 | } 161 | } 162 | -------------------------------------------------------------------------------- /src/glua/GluaItem.ts: -------------------------------------------------------------------------------- 1 | import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; 2 | 3 | export abstract class GluaItem { 4 | constructor(jsonObj: object) { 5 | for (const propName in jsonObj) { 6 | // Will ts-ignore this bc our json is dirty 7 | // @ts-ignore 8 | this[propName] = jsonObj[propName]; 9 | } 10 | // Object.assign(this, jsonObj) 11 | } 12 | abstract generateDocumentation(): monaco.IMarkdownString[]; 13 | abstract getFullName(): string; 14 | } 15 | -------------------------------------------------------------------------------- /src/glua/GmodInterfaceValue.ts: -------------------------------------------------------------------------------- 1 | import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; 2 | import { GluaItem } from "./GluaItem"; 3 | 4 | export class GmodInterfaceValue extends GluaItem { 5 | fullname!: string; 6 | name!: string; 7 | classFunction?: boolean; 8 | description?: string; 9 | type!: keyof typeof monaco.languages.CompletionItemKind; 10 | parent?: string; 11 | constructor(jsonObj: object) { 12 | super(jsonObj); 13 | if (!this.name) { 14 | this.name = `${this.classFunction 15 | ? this.fullname.split(":").pop() 16 | : this.fullname 17 | }`; 18 | } 19 | } 20 | getUsage(): string { 21 | if (this.type === "Function" || this.type === "Method") { 22 | return `${this.classFunction ? this.name : this.fullname}()`; 23 | } 24 | return this.fullname; 25 | } 26 | getFullName() { 27 | return this.fullname; 28 | } 29 | getCompletionKind(): monaco.languages.CompletionItemKind { 30 | if (!this.type) { 31 | return monaco.languages.CompletionItemKind.Value; 32 | } 33 | return monaco.languages.CompletionItemKind[this.type]; 34 | } 35 | generateDocumentation(): monaco.IMarkdownString[] { 36 | if (this.description) { 37 | return [{ value: `${this.description}` }]; 38 | } 39 | return []; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/glua/Gwiki.ts: -------------------------------------------------------------------------------- 1 | import { autocompletionData } from "../autocompletionData"; 2 | import { GluaFunc } from "./GluaFunc"; 3 | import { GluaEnum } from "./GluaEnum"; 4 | 5 | function PreprocessGWikiElem(elem: any, parentElem: any) { 6 | if (elem.args && elem.args.arg) { 7 | if (Array.isArray(elem.args.arg)) { 8 | elem.args = elem.args.arg; 9 | } else { 10 | elem.args = [elem.args.arg]; 11 | } 12 | } else { 13 | elem.args = []; 14 | } 15 | if (elem.rets && elem.rets.ret) { 16 | if (Array.isArray(elem.rets.ret)) { 17 | elem.rets = elem.rets.ret; 18 | } else { 19 | elem.rets = [elem.rets.ret]; 20 | } 21 | } else { 22 | elem.rets = []; 23 | } 24 | if (typeof elem.description === "string") { 25 | elem.description = { text: elem.description }; 26 | } 27 | if (elem.description && !elem.description.text) { 28 | elem.description.text = ""; 29 | } else if (!elem.description) { 30 | elem.description = { text: "" }; 31 | } 32 | elem.example = elem.example || parentElem.example; 33 | if (elem.example) { 34 | if (Array.isArray(elem.example)) { 35 | elem.example = elem.example; 36 | } else { 37 | elem.example = [elem.example]; 38 | } 39 | // https://i.imgur.com/hipDRlx.png 40 | // This ruins everything 41 | elem.example.forEach((element: { code: any }, idx: any) => { 42 | if (typeof element.code !== "string") { 43 | elem.example.splice(idx, 1); 44 | } 45 | }); 46 | } else { 47 | elem.example = []; 48 | } 49 | } 50 | 51 | function addEnum(jsonOBJ: any) { 52 | if (Array.isArray(jsonOBJ.enum)) { 53 | jsonOBJ.enum.forEach((element: any) => { 54 | addEnum({ items: element }); 55 | }); 56 | return; 57 | } 58 | let enums; 59 | if (Array.isArray(jsonOBJ)) { 60 | enums = jsonOBJ; 61 | } else { 62 | enums = jsonOBJ.items.item; 63 | } 64 | enums.forEach((element: { items: any }) => { 65 | if (element.items) { 66 | addEnum(element); 67 | return; 68 | } 69 | const enumObj = new GluaEnum(element); 70 | if (autocompletionData.valuesLookup.has(enumObj.key)) { 71 | // Avoid enum duplicates 72 | return; 73 | } 74 | enumObj.tableDesc = jsonOBJ.description; 75 | autocompletionData.valuesLookup.set(enumObj.key, enumObj); 76 | autocompletionData.enums.push(enumObj); 77 | }); 78 | } 79 | 80 | export let gwikiData: any[]; 81 | 82 | export async function FetchGwiki() { 83 | try { 84 | // For prod, shoud work on github pages 85 | // better to use relative path since we cant rely on static hostames anymore (thanks CORS) 86 | gwikiData = await ( 87 | await fetch("/gmod-wiki-scraper/gwiki.json") 88 | ).json(); 89 | } catch (_) { 90 | // For local development 91 | gwikiData = await ( 92 | await fetch("https://metastruct.eu/gmod-wiki-scraper/gwiki.json") 93 | ).json(); 94 | } 95 | } 96 | 97 | export async function LoadAutocompletionData(currentState: string) { 98 | if (!gwikiData) { 99 | await FetchGwiki(); 100 | } 101 | gwikiData.forEach((elem) => { 102 | if (currentState == "Shared") { 103 | if (elem.realms.length == 1 && elem.realms[0] == "Menu") { 104 | return; 105 | } 106 | } else if (elem.realms.indexOf(currentState) === -1) { 107 | return; 108 | } 109 | if (elem.function) { 110 | const funcElem = elem.function; 111 | PreprocessGWikiElem(funcElem, elem); 112 | const func = new GluaFunc(funcElem); 113 | autocompletionData.valuesLookup.set(func.getFullName(), func); 114 | if (autocompletionData.modules.indexOf(func.parent) === -1) { 115 | autocompletionData.modules.push(func.parent); 116 | } 117 | if (func.type === "classfunc" || func.type === "panelfunc") { 118 | autocompletionData.classmethods.push(func); 119 | if (autocompletionData.methodsLookup.has(func.name)) { 120 | autocompletionData.methodsLookup.get(func.name)?.push(func); 121 | } else { 122 | autocompletionData.methodsLookup.set(func.name, [func]); 123 | } 124 | } else if (func.type === "hook") { 125 | autocompletionData.valuesLookup.set(func.name, func); 126 | autocompletionData.hooks.push(func); 127 | } else { 128 | autocompletionData.functions.push(func); 129 | } 130 | } else if (elem.enum) { 131 | addEnum(elem.enum); 132 | } 133 | }); 134 | autocompletionData.ClearAutocompleteCache(); 135 | } 136 | -------------------------------------------------------------------------------- /src/hoverProvider.ts: -------------------------------------------------------------------------------- 1 | import * as monaco from "monaco-editor"; 2 | import { autocompletionData } from "./autocompletionData"; 3 | import { GluaItem } from "./glua/GluaItem"; 4 | 5 | export class GLuaHoverProvider implements monaco.languages.HoverProvider { 6 | provideHover( 7 | model: monaco.editor.ITextModel, 8 | position: monaco.Position, 9 | token: monaco.CancellationToken 10 | ): monaco.languages.ProviderResult { 11 | const lineUntil = model 12 | .getLineContent(position.lineNumber) 13 | .substring(0, position.column); 14 | const word = model.getWordAtPosition(position); 15 | if (!word) { 16 | return; 17 | } 18 | let firstIdentifierWord = word; 19 | let currentIdentifier = word.word; 20 | if (lineUntil.charAt(word.startColumn - 2) === ".") { 21 | while (true) { 22 | if ( 23 | lineUntil.charAt(firstIdentifierWord.startColumn - 2) !== 24 | "." 25 | ) { 26 | break; 27 | } 28 | firstIdentifierWord = model.getWordUntilPosition({ 29 | lineNumber: position.lineNumber, 30 | column: firstIdentifierWord.startColumn - 1, 31 | }); 32 | currentIdentifier = 33 | firstIdentifierWord.word + "." + currentIdentifier; 34 | } 35 | } else if ( 36 | lineUntil.charAt(word.startColumn - 2) === ":" && 37 | autocompletionData.methodsLookup.has(word.word) 38 | ) { 39 | let conent: monaco.IMarkdownString[] = []; 40 | autocompletionData.methodsLookup 41 | .get(word.word) 42 | ?.forEach((method: GluaItem) => { 43 | conent = conent.concat(method.generateDocumentation()); 44 | }); 45 | return { 46 | contents: conent, 47 | range: new monaco.Range( 48 | position.lineNumber, 49 | word.startColumn, 50 | position.lineNumber, 51 | word.endColumn 52 | ), 53 | }; 54 | } 55 | if (!autocompletionData.valuesLookup.has(currentIdentifier)) { 56 | return { 57 | contents: [], 58 | range: new monaco.Range( 59 | position.lineNumber, 60 | firstIdentifierWord.startColumn, 61 | position.lineNumber, 62 | word.endColumn 63 | ), 64 | }; 65 | } 66 | return { 67 | contents: autocompletionData.valuesLookup 68 | .get(currentIdentifier) 69 | ?.generateDocumentation() || [{ value: "No documentation" }], 70 | range: new monaco.Range( 71 | position.lineNumber, 72 | firstIdentifierWord.startColumn, 73 | position.lineNumber, 74 | word.endColumn 75 | ), 76 | }; 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import * as monaco from "monaco-editor"; 2 | import * as lua from "./lua"; 3 | import { GLuaFormatter } from "./formatter"; 4 | import { GLuaCompletionProvider } from "./completionProvider"; 5 | import { gmodInterface } from "./gmodInterface"; 6 | import { ThemeLoader } from "./themeLoader"; 7 | import { LoadAutocompletionData } from "./glua/Gwiki"; 8 | import { GLuaHoverProvider } from "./hoverProvider"; 9 | 10 | const themeLoader: ThemeLoader = new ThemeLoader(); 11 | const themePromise: Promise = themeLoader.loadThemes(); 12 | 13 | monaco.languages.register({ 14 | id: "glua", 15 | extensions: [".lua"], 16 | aliases: ["GLua", "glua"], 17 | }); 18 | 19 | monaco.languages.setMonarchTokensProvider("glua", lua.language); 20 | monaco.languages.setLanguageConfiguration("glua", lua.conf); 21 | monaco.languages.registerDocumentFormattingEditProvider( 22 | "glua", 23 | new GLuaFormatter() 24 | ); 25 | monaco.languages.registerCompletionItemProvider( 26 | "glua", 27 | new GLuaCompletionProvider() 28 | ); 29 | monaco.languages.registerHoverProvider("glua", new GLuaHoverProvider()); 30 | 31 | const editor = monaco.editor.create( 32 | document.getElementById("container")!, 33 | { 34 | value: "", 35 | language: "glua", 36 | 37 | theme: "vs-dark", 38 | 39 | minimap: { 40 | enabled: true, 41 | }, 42 | autoIndent: "full", 43 | formatOnPaste: true, 44 | formatOnType: true, 45 | acceptSuggestionOnEnter: "off", 46 | }, 47 | { 48 | storageService: { 49 | get() { }, 50 | getBoolean(key: string) { 51 | if (key === "expandSuggestionDocs") return true; 52 | return false; 53 | }, 54 | getNumber(key: string) { 55 | return 0; 56 | }, 57 | remove() { }, 58 | store() { }, 59 | onWillSaveState() { }, 60 | onDidChangeStorage() { }, 61 | }, 62 | } 63 | ); 64 | 65 | editor.focus(); 66 | window.addEventListener("resize", () => editor.layout()); 67 | 68 | // so all themes are available to gmod when OnReady is fired 69 | // this prevents any loading order issue 70 | themePromise.finally(() => { 71 | if (gmodInterface) { 72 | gmodInterface.OnThemesLoaded(themeLoader.getLoadedThemes()); 73 | let langs = monaco.languages.getLanguages(); 74 | // Sending populated objects after strings so nothing breaks 75 | gmodInterface.OnLanguages( 76 | langs.map((lang) => lang.id), 77 | langs 78 | ); 79 | gmodInterface.SetEditor(editor); 80 | gmodInterface.OnReady(); 81 | LoadAutocompletionData("Client"); 82 | } else { 83 | // For people viewing page in browser 84 | LoadAutocompletionData("Client"); 85 | } 86 | }); 87 | -------------------------------------------------------------------------------- /src/lua.ts: -------------------------------------------------------------------------------- 1 | import * as monaco from "monaco-editor"; 2 | 3 | export const conf: monaco.languages.LanguageConfiguration = { 4 | comments: { 5 | lineComment: "--", 6 | blockComment: ["--[[", "]]"], 7 | }, 8 | brackets: [ 9 | ["{", "}"], 10 | ["[", "]"], 11 | ["(", ")"], 12 | ], 13 | autoClosingPairs: [ 14 | { open: "{", close: "}" }, 15 | { open: "[", close: "]" }, 16 | { open: "(", close: ")" }, 17 | { open: '"', close: '"', notIn: ["string"] }, 18 | { open: "'", close: "'", notIn: ["string"] }, 19 | ], 20 | surroundingPairs: [ 21 | { open: "{", close: "}" }, 22 | { open: "[", close: "]" }, 23 | { open: "(", close: ")" }, 24 | { open: '"', close: '"' }, 25 | { open: "'", close: "'" }, 26 | ], 27 | indentationRules: { 28 | increaseIndentPattern: new RegExp( 29 | "^((?!(\\-\\-)).)*((\\b(else|function|then|do|repeat)\\b((?!\\b(end|until)\\b).)*)|(\\{\\s*))$" 30 | ), 31 | decreaseIndentPattern: new RegExp( 32 | "^\\s*((\\b(elseif|else|end|until)\\b)|(\\})|(\\)))" 33 | ), 34 | }, 35 | }; 36 | 37 | export const language: monaco.languages.IMonarchLanguage = { 38 | defaultToken: "", 39 | tokenPostfix: ".lua", 40 | 41 | // @ts-ignore 42 | keywords: [ 43 | "and", 44 | "break", 45 | "do", 46 | "else", 47 | "elseif", 48 | "end", 49 | "false", 50 | "for", 51 | "function", 52 | "goto", 53 | "if", 54 | "in", 55 | "local", 56 | "nil", 57 | "not", 58 | "or", 59 | "repeat", 60 | "return", 61 | "then", 62 | "true", 63 | "until", 64 | "while", 65 | "continue", 66 | ], 67 | brackets: [ 68 | { token: "delimiter.bracket", open: "{", close: "}" }, 69 | { token: "delimiter.array", open: "[", close: "]" }, 70 | { token: "delimiter.parenthesis", open: "(", close: ")" }, 71 | ], 72 | operators: [ 73 | "+", 74 | "-", 75 | "*", 76 | "/", 77 | "%", 78 | "^", 79 | "#", 80 | "==", 81 | "~=", 82 | "<=", 83 | ">=", 84 | "<", 85 | ">", 86 | "=", 87 | ";", 88 | ":", 89 | ",", 90 | ".", 91 | "..", 92 | "...", 93 | "&&", 94 | "!", 95 | "!=", 96 | "||", 97 | ], 98 | // we include these common regular expressions 99 | symbols: /[=>; 12 | } 13 | -------------------------------------------------------------------------------- /src/repl.ts: -------------------------------------------------------------------------------- 1 | import * as monaco from "monaco-editor/esm/vs/editor/editor.api"; 2 | import * as lua from "./lua"; 3 | import { GLuaFormatter } from "./formatter"; 4 | import { GLuaCompletionProvider } from "./completionProvider"; 5 | import { GLuaHoverProvider } from "./hoverProvider"; 6 | import { ThemeLoader } from "./themeLoader"; 7 | import { replInterface } from "./replInterface"; 8 | 9 | const themeLoader: ThemeLoader = new ThemeLoader(); 10 | const themePromise: Promise = themeLoader.loadThemes(); 11 | 12 | monaco.languages.register({ 13 | id: "glua", 14 | extensions: [".lua"], 15 | aliases: ["GLua", "glua"], 16 | }); 17 | monaco.languages.setMonarchTokensProvider("glua", lua.language); 18 | monaco.languages.setLanguageConfiguration("glua", lua.conf); 19 | monaco.languages.registerDocumentFormattingEditProvider( 20 | "glua", 21 | new GLuaFormatter() 22 | ); 23 | 24 | const storageService = { 25 | // tslint:disable: no-empty 26 | get() { }, 27 | getBoolean(key: string) { 28 | if (key === "expandSuggestionDocs") return true; 29 | return false; 30 | }, 31 | getNumber(key: string) { 32 | return 0; 33 | }, 34 | remove() { }, 35 | store() { }, 36 | onWillSaveState() { }, 37 | onDidChangeStorage() { }, 38 | // tslint:enable: no-empty 39 | }; 40 | 41 | const editor = monaco.editor.create( 42 | document.getElementById("container")!, 43 | { 44 | value: "", 45 | language: "glua", 46 | theme: "vs-dark", 47 | scrollBeyondLastLine: false, 48 | lineNumbers: "off", 49 | minimap: { 50 | enabled: true, 51 | }, 52 | readOnly: true, 53 | }, 54 | { 55 | storageService, 56 | } 57 | ); 58 | const line = monaco.editor.create( 59 | document.getElementById("line-container")!, 60 | { 61 | value: "", 62 | language: "glua", 63 | theme: "vs-dark", 64 | lineNumbers: "off", 65 | scrollBeyondLastLine: false, 66 | renderLineHighlight: "none", 67 | renderFinalNewline: false, 68 | acceptSuggestionOnEnter: "off", 69 | tabCompletion: "off", 70 | contextmenu: false, 71 | tabSize: 2, 72 | codeLens: false, 73 | minimap: { 74 | enabled: false, 75 | }, 76 | scrollbar: { 77 | handleMouseWheel: false, 78 | horizontal: "hidden", 79 | }, 80 | }, 81 | { 82 | storageService, 83 | } 84 | ); 85 | 86 | line.focus(); 87 | window.addEventListener("resize", () => { 88 | editor.layout(); 89 | line.layout(); 90 | }); 91 | 92 | monaco.languages.registerCompletionItemProvider( 93 | "glua", 94 | new GLuaCompletionProvider() 95 | ); 96 | monaco.languages.registerHoverProvider("glua", new GLuaHoverProvider()); 97 | 98 | themePromise.finally(() => { 99 | if (replInterface) { 100 | replInterface!.SetEditors(editor, line); 101 | replInterface!.OnReady(); 102 | // Im sorry for this hack but for some reason widgets are now lazy loading 103 | let haxInterval = setInterval(() => { 104 | if (replHax()) { 105 | clearInterval(haxInterval); 106 | } 107 | }, 100); 108 | } 109 | }); 110 | 111 | // Stuff bellow is big brain hacking to make the line thing look normal 112 | // @ts-ignore 113 | line._standaloneKeybindingService 114 | ._getResolver() 115 | ._lookupMap.get( 116 | "editor.action.quickCommand" 117 | )[0].resolvedKeybinding._parts[0].keyCode = 0; 118 | // @ts-ignore 119 | line._standaloneKeybindingService.updateResolver(); 120 | function replHax(): boolean { 121 | // @ts-ignore 122 | const widgetContainer = line._contentWidgets["editor.widget.suggestWidget"]; 123 | if (widgetContainer === undefined) { 124 | return false; 125 | } 126 | const widget = widgetContainer.widget._widget; 127 | const OLDshowSuggestions = widget.showSuggestions.bind(widget); 128 | // Hacking to invert the order and select the last line 129 | // @ts-ignore 130 | widget.showSuggestions = (...args) => { 131 | OLDshowSuggestions(...args); 132 | widget.selectLast(); 133 | if (!widget._completionModel || widget._completionModel.hacked) { 134 | return; 135 | } 136 | const oldFn = widget._completionModel._snippetCompareFn; 137 | // @ts-ignore 138 | widget._completionModel._snippetCompareFn = (...cmpArgs) => { 139 | return -oldFn(...cmpArgs); 140 | }; 141 | widget._completionModel.hacked = true; 142 | }; 143 | replInterface!.SetWidget(widget); 144 | const elem = widget.element.domNode; 145 | // Force the popup widget to have this style cus monaco updates the style all the time 146 | const widgetStyle = 147 | "background-color: rgb(37, 37, 38); border-color: rgb(69, 69, 69); width: 430px; position: fixed; visibility: inherit; max-width: 1162px; line-height: 19px; bottom: 26px;"; 148 | const observer = new MutationObserver(() => { 149 | const oldLeft = elem.style.left; 150 | if (!oldLeft) { 151 | return; 152 | } 153 | // A hack to keep the left atribute while changing everything else 154 | const newStyle = `${widgetStyle} left: ${oldLeft};`; 155 | if (elem.style.cssText !== newStyle) { 156 | elem.style.cssText = widgetStyle; 157 | } 158 | }); 159 | observer.observe(elem, { attributes: true }); 160 | return true; 161 | } 162 | -------------------------------------------------------------------------------- /src/themeLoader.ts: -------------------------------------------------------------------------------- 1 | import * as monaco from "monaco-editor"; 2 | 3 | export class ThemeLoader { 4 | private loadedThemes: string[] = ["vs-dark"]; 5 | 6 | async loadThemes(): Promise { 7 | this.loadedThemes = ["vs-dark"]; 8 | try { 9 | let data = (await import("../themes/themelist.json")) as Object; 10 | let themeNames: string[] = Object.values(data); 11 | for (let themeName of themeNames) { 12 | if (typeof themeName !== "string") continue; 13 | let themeData = await import(`../themes/${themeName}.json`); 14 | let name: string = themeName 15 | .replace(/(\s|_)/g, "-") 16 | .replace(/(\(|\))/g, "") 17 | .toLowerCase(); 18 | this.loadedThemes.push(name); 19 | monaco.editor.defineTheme(name, themeData); 20 | } 21 | } catch (err) { 22 | console.warn("Could not load custom themes?!: ", err); 23 | } 24 | } 25 | 26 | getLoadedThemes(): string[] { 27 | return this.loadedThemes; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /themes/Active4D.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "background": "e2e9ff5e", 7 | "token": "text.html source.active4d" 8 | }, 9 | { 10 | "foreground": "000000", 11 | "token": "text.xml" 12 | }, 13 | { 14 | "foreground": "af82d4", 15 | "token": "comment.line" 16 | }, 17 | { 18 | "foreground": "af82d4", 19 | "token": "comment.block" 20 | }, 21 | { 22 | "foreground": "666666", 23 | "token": "string" 24 | }, 25 | { 26 | "foreground": "66ccff", 27 | "fontStyle": "bold", 28 | "token": "string.interpolated variable" 29 | }, 30 | { 31 | "foreground": "a8017e", 32 | "token": "constant.numeric" 33 | }, 34 | { 35 | "foreground": "66ccff", 36 | "fontStyle": "bold", 37 | "token": "constant.other.date" 38 | }, 39 | { 40 | "foreground": "66ccff", 41 | "fontStyle": "bold", 42 | "token": "constant.other.time" 43 | }, 44 | { 45 | "foreground": "a535ae", 46 | "token": "constant.language" 47 | }, 48 | { 49 | "foreground": "6392ff", 50 | "fontStyle": "bold", 51 | "token": "variable.other.local" 52 | }, 53 | { 54 | "foreground": "0053ff", 55 | "fontStyle": "bold", 56 | "token": "variable" 57 | }, 58 | { 59 | "foreground": "6988ae", 60 | "token": "variable.other.table-field" 61 | }, 62 | { 63 | "foreground": "006699", 64 | "fontStyle": "bold", 65 | "token": "keyword" 66 | }, 67 | { 68 | "foreground": "ff5600", 69 | "token": "storage" 70 | }, 71 | { 72 | "foreground": "21439c", 73 | "token": "entity.name.type" 74 | }, 75 | { 76 | "foreground": "21439c", 77 | "token": "entity.name.function" 78 | }, 79 | { 80 | "foreground": "7a7a7a", 81 | "token": "meta.tag" 82 | }, 83 | { 84 | "foreground": "016cff", 85 | "token": "entity.name.tag" 86 | }, 87 | { 88 | "foreground": "963dff", 89 | "token": "entity.other.attribute-name" 90 | }, 91 | { 92 | "foreground": "45ae34", 93 | "fontStyle": "bold", 94 | "token": "support.function" 95 | }, 96 | { 97 | "foreground": "b7734c", 98 | "token": "support.constant" 99 | }, 100 | { 101 | "foreground": "a535ae", 102 | "token": "support.type" 103 | }, 104 | { 105 | "foreground": "a535ae", 106 | "token": "support.class" 107 | }, 108 | { 109 | "foreground": "a535ae", 110 | "token": "support.variable" 111 | }, 112 | { 113 | "foreground": "ffffff", 114 | "background": "990000", 115 | "token": "invalid" 116 | }, 117 | { 118 | "foreground": "ffffff", 119 | "background": "656565", 120 | "token": "meta.diff" 121 | }, 122 | { 123 | "foreground": "ffffff", 124 | "background": "1b63ff", 125 | "token": "meta.diff.range" 126 | }, 127 | { 128 | "foreground": "000000", 129 | "background": "ff7880", 130 | "token": "markup.deleted.diff" 131 | }, 132 | { 133 | "foreground": "000000", 134 | "background": "98ff9a", 135 | "token": "markup.inserted.diff" 136 | }, 137 | { 138 | "foreground": "5e5e5e", 139 | "token": "source.diff" 140 | } 141 | ], 142 | "colors": { 143 | "editor.foreground": "#3B3B3B", 144 | "editor.background": "#FFFFFF", 145 | "editor.selectionBackground": "#BAD6FD", 146 | "editor.lineHighlightBackground": "#00000012", 147 | "editorCursor.foreground": "#000000", 148 | "editorWhitespace.foreground": "#BFBFBF" 149 | } 150 | } 151 | -------------------------------------------------------------------------------- /themes/All Hallows Eve.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "ffffff", 7 | "background": "434242", 8 | "token": "text" 9 | }, 10 | { 11 | "foreground": "ffffff", 12 | "background": "000000", 13 | "token": "source" 14 | }, 15 | { 16 | "foreground": "9933cc", 17 | "token": "comment" 18 | }, 19 | { 20 | "foreground": "3387cc", 21 | "token": "constant" 22 | }, 23 | { 24 | "foreground": "cc7833", 25 | "token": "keyword" 26 | }, 27 | { 28 | "foreground": "d0d0ff", 29 | "token": "meta.preprocessor.c" 30 | }, 31 | { 32 | "fontStyle": "italic", 33 | "token": "variable.parameter" 34 | }, 35 | { 36 | "foreground": "ffffff", 37 | "background": "9b9b9b", 38 | "token": "source comment.block" 39 | }, 40 | { 41 | "foreground": "66cc33", 42 | "token": "string" 43 | }, 44 | { 45 | "foreground": "aaaaaa", 46 | "token": "string constant.character.escape" 47 | }, 48 | { 49 | "foreground": "000000", 50 | "background": "cccc33", 51 | "token": "string.interpolated" 52 | }, 53 | { 54 | "foreground": "cccc33", 55 | "token": "string.regexp" 56 | }, 57 | { 58 | "foreground": "cccc33", 59 | "token": "string.literal" 60 | }, 61 | { 62 | "foreground": "555555", 63 | "token": "string.interpolated constant.character.escape" 64 | }, 65 | { 66 | "fontStyle": "underline", 67 | "token": "entity.name.type" 68 | }, 69 | { 70 | "fontStyle": "italic underline", 71 | "token": "entity.other.inherited-class" 72 | }, 73 | { 74 | "fontStyle": "underline", 75 | "token": "entity.name.tag" 76 | }, 77 | { 78 | "foreground": "c83730", 79 | "token": "support.function" 80 | } 81 | ], 82 | "colors": { 83 | "editor.foreground": "#FFFFFF", 84 | "editor.background": "#000000", 85 | "editor.selectionBackground": "#73597EE0", 86 | "editor.lineHighlightBackground": "#333300", 87 | "editorCursor.foreground": "#FFFFFF", 88 | "editorWhitespace.foreground": "#404040" 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /themes/Amy.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "404080", 7 | "background": "200020", 8 | "fontStyle": "italic", 9 | "token": "comment.block" 10 | }, 11 | { 12 | "foreground": "999999", 13 | "token": "string" 14 | }, 15 | { 16 | "foreground": "707090", 17 | "token": "constant.language" 18 | }, 19 | { 20 | "foreground": "7090b0", 21 | "token": "constant.numeric" 22 | }, 23 | { 24 | "fontStyle": "bold", 25 | "token": "constant.numeric.integer.int32" 26 | }, 27 | { 28 | "fontStyle": "italic", 29 | "token": "constant.numeric.integer.int64" 30 | }, 31 | { 32 | "fontStyle": "bold italic", 33 | "token": "constant.numeric.integer.nativeint" 34 | }, 35 | { 36 | "fontStyle": "underline", 37 | "token": "constant.numeric.floating-point.ocaml" 38 | }, 39 | { 40 | "foreground": "666666", 41 | "token": "constant.character" 42 | }, 43 | { 44 | "foreground": "8080a0", 45 | "token": "constant.language.boolean" 46 | }, 47 | { 48 | "foreground": "008080", 49 | "token": "variable.language" 50 | }, 51 | { 52 | "foreground": "008080", 53 | "token": "variable.other" 54 | }, 55 | { 56 | "foreground": "a080ff", 57 | "token": "keyword" 58 | }, 59 | { 60 | "foreground": "a0a0ff", 61 | "token": "keyword.operator" 62 | }, 63 | { 64 | "foreground": "d0d0ff", 65 | "token": "keyword.other.decorator" 66 | }, 67 | { 68 | "fontStyle": "underline", 69 | "token": "keyword.operator.infix.floating-point.ocaml" 70 | }, 71 | { 72 | "fontStyle": "underline", 73 | "token": "keyword.operator.prefix.floating-point.ocaml" 74 | }, 75 | { 76 | "foreground": "c080c0", 77 | "token": "keyword.other.directive" 78 | }, 79 | { 80 | "foreground": "c080c0", 81 | "fontStyle": "underline", 82 | "token": "keyword.other.directive.line-number" 83 | }, 84 | { 85 | "foreground": "80a0ff", 86 | "token": "keyword.control" 87 | }, 88 | { 89 | "foreground": "b0fff0", 90 | "token": "storage" 91 | }, 92 | { 93 | "foreground": "60b0ff", 94 | "token": "entity.name.type.variant" 95 | }, 96 | { 97 | "foreground": "60b0ff", 98 | "fontStyle": "italic", 99 | "token": "storage.type.variant.polymorphic" 100 | }, 101 | { 102 | "foreground": "60b0ff", 103 | "fontStyle": "italic", 104 | "token": "entity.name.type.variant.polymorphic" 105 | }, 106 | { 107 | "foreground": "b000b0", 108 | "token": "entity.name.type.module" 109 | }, 110 | { 111 | "foreground": "b000b0", 112 | "fontStyle": "underline", 113 | "token": "entity.name.type.module-type.ocaml" 114 | }, 115 | { 116 | "foreground": "a00050", 117 | "token": "support.other" 118 | }, 119 | { 120 | "foreground": "70e080", 121 | "token": "entity.name.type.class" 122 | }, 123 | { 124 | "foreground": "70e0a0", 125 | "token": "entity.name.type.class-type" 126 | }, 127 | { 128 | "foreground": "50a0a0", 129 | "token": "entity.name.function" 130 | }, 131 | { 132 | "foreground": "80b0b0", 133 | "token": "variable.parameter" 134 | }, 135 | { 136 | "foreground": "3080a0", 137 | "token": "entity.name.type.token" 138 | }, 139 | { 140 | "foreground": "3cb0d0", 141 | "token": "entity.name.type.token.reference" 142 | }, 143 | { 144 | "foreground": "90e0e0", 145 | "token": "entity.name.function.non-terminal" 146 | }, 147 | { 148 | "foreground": "c0f0f0", 149 | "token": "entity.name.function.non-terminal.reference" 150 | }, 151 | { 152 | "foreground": "009090", 153 | "token": "entity.name.tag" 154 | }, 155 | { 156 | "background": "200020", 157 | "token": "support.constant" 158 | }, 159 | { 160 | "foreground": "400080", 161 | "background": "ffff00", 162 | "fontStyle": "bold", 163 | "token": "invalid.illegal" 164 | }, 165 | { 166 | "foreground": "200020", 167 | "background": "cc66ff", 168 | "token": "invalid.deprecated" 169 | }, 170 | { 171 | "background": "40008054", 172 | "token": "source.camlp4.embedded" 173 | }, 174 | { 175 | "foreground": "805080", 176 | "token": "punctuation" 177 | } 178 | ], 179 | "colors": { 180 | "editor.foreground": "#D0D0FF", 181 | "editor.background": "#200020", 182 | "editor.selectionBackground": "#80000080", 183 | "editor.lineHighlightBackground": "#80000040", 184 | "editorCursor.foreground": "#7070FF", 185 | "editorWhitespace.foreground": "#BFBFBF" 186 | } 187 | } 188 | -------------------------------------------------------------------------------- /themes/Birds of Paradise.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "e6e1c4", 7 | "background": "322323", 8 | "token": "source" 9 | }, 10 | { 11 | "foreground": "6b4e32", 12 | "fontStyle": "italic", 13 | "token": "comment" 14 | }, 15 | { 16 | "foreground": "ef5d32", 17 | "token": "keyword" 18 | }, 19 | { 20 | "foreground": "ef5d32", 21 | "token": "storage" 22 | }, 23 | { 24 | "foreground": "efac32", 25 | "token": "entity.name.function" 26 | }, 27 | { 28 | "foreground": "efac32", 29 | "token": "keyword.other.name-of-parameter.objc" 30 | }, 31 | { 32 | "foreground": "efac32", 33 | "fontStyle": "bold", 34 | "token": "entity.name" 35 | }, 36 | { 37 | "foreground": "6c99bb", 38 | "token": "constant.numeric" 39 | }, 40 | { 41 | "foreground": "7daf9c", 42 | "token": "variable.language" 43 | }, 44 | { 45 | "foreground": "7daf9c", 46 | "token": "variable.other" 47 | }, 48 | { 49 | "foreground": "6c99bb", 50 | "token": "constant" 51 | }, 52 | { 53 | "foreground": "efac32", 54 | "token": "variable.other.constant" 55 | }, 56 | { 57 | "foreground": "6c99bb", 58 | "token": "constant.language" 59 | }, 60 | { 61 | "foreground": "d9d762", 62 | "token": "string" 63 | }, 64 | { 65 | "foreground": "efac32", 66 | "token": "support.function" 67 | }, 68 | { 69 | "foreground": "efac32", 70 | "token": "support.type" 71 | }, 72 | { 73 | "foreground": "6c99bb", 74 | "token": "support.constant" 75 | }, 76 | { 77 | "foreground": "efcb43", 78 | "token": "meta.tag" 79 | }, 80 | { 81 | "foreground": "efcb43", 82 | "token": "declaration.tag" 83 | }, 84 | { 85 | "foreground": "efcb43", 86 | "token": "entity.name.tag" 87 | }, 88 | { 89 | "foreground": "efcb43", 90 | "token": "entity.other.attribute-name" 91 | }, 92 | { 93 | "foreground": "ffffff", 94 | "background": "990000", 95 | "token": "invalid" 96 | }, 97 | { 98 | "foreground": "7daf9c", 99 | "token": "constant.character.escaped" 100 | }, 101 | { 102 | "foreground": "7daf9c", 103 | "token": "constant.character.escape" 104 | }, 105 | { 106 | "foreground": "7daf9c", 107 | "token": "string source" 108 | }, 109 | { 110 | "foreground": "7daf9c", 111 | "token": "string source.ruby" 112 | }, 113 | { 114 | "foreground": "e6e1dc", 115 | "background": "144212", 116 | "token": "markup.inserted" 117 | }, 118 | { 119 | "foreground": "e6e1dc", 120 | "background": "660000", 121 | "token": "markup.deleted" 122 | }, 123 | { 124 | "background": "2f33ab", 125 | "token": "meta.diff.header" 126 | }, 127 | { 128 | "background": "2f33ab", 129 | "token": "meta.separator.diff" 130 | }, 131 | { 132 | "background": "2f33ab", 133 | "token": "meta.diff.index" 134 | }, 135 | { 136 | "background": "2f33ab", 137 | "token": "meta.diff.range" 138 | } 139 | ], 140 | "colors": { 141 | "editor.foreground": "#E6E1C4", 142 | "editor.background": "#372725", 143 | "editor.selectionBackground": "#16120E", 144 | "editor.lineHighlightBackground": "#1F1611", 145 | "editorCursor.foreground": "#E6E1C4", 146 | "editorWhitespace.foreground": "#42302D" 147 | } 148 | } 149 | -------------------------------------------------------------------------------- /themes/Blackboard.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "aeaeae", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "d8fa3c", 11 | "token": "constant" 12 | }, 13 | { 14 | "foreground": "ff6400", 15 | "token": "entity" 16 | }, 17 | { 18 | "foreground": "fbde2d", 19 | "token": "keyword" 20 | }, 21 | { 22 | "foreground": "fbde2d", 23 | "token": "storage" 24 | }, 25 | { 26 | "foreground": "61ce3c", 27 | "token": "string" 28 | }, 29 | { 30 | "foreground": "61ce3c", 31 | "token": "meta.verbatim" 32 | }, 33 | { 34 | "foreground": "8da6ce", 35 | "token": "support" 36 | }, 37 | { 38 | "foreground": "ab2a1d", 39 | "fontStyle": "italic", 40 | "token": "invalid.deprecated" 41 | }, 42 | { 43 | "foreground": "f8f8f8", 44 | "background": "9d1e15", 45 | "token": "invalid.illegal" 46 | }, 47 | { 48 | "foreground": "ff6400", 49 | "fontStyle": "italic", 50 | "token": "entity.other.inherited-class" 51 | }, 52 | { 53 | "foreground": "ff6400", 54 | "token": "string constant.other.placeholder" 55 | }, 56 | { 57 | "foreground": "becde6", 58 | "token": "meta.function-call.py" 59 | }, 60 | { 61 | "foreground": "7f90aa", 62 | "token": "meta.tag" 63 | }, 64 | { 65 | "foreground": "7f90aa", 66 | "token": "meta.tag entity" 67 | }, 68 | { 69 | "foreground": "ffffff", 70 | "token": "entity.name.section" 71 | }, 72 | { 73 | "foreground": "d5e0f3", 74 | "token": "keyword.type.variant" 75 | }, 76 | { 77 | "foreground": "f8f8f8", 78 | "token": "source.ocaml keyword.operator.symbol" 79 | }, 80 | { 81 | "foreground": "8da6ce", 82 | "token": "source.ocaml keyword.operator.symbol.infix" 83 | }, 84 | { 85 | "foreground": "8da6ce", 86 | "token": "source.ocaml keyword.operator.symbol.prefix" 87 | }, 88 | { 89 | "fontStyle": "underline", 90 | "token": "source.ocaml keyword.operator.symbol.infix.floating-point" 91 | }, 92 | { 93 | "fontStyle": "underline", 94 | "token": "source.ocaml keyword.operator.symbol.prefix.floating-point" 95 | }, 96 | { 97 | "fontStyle": "underline", 98 | "token": "source.ocaml constant.numeric.floating-point" 99 | }, 100 | { 101 | "background": "ffffff08", 102 | "token": "text.tex.latex meta.function.environment" 103 | }, 104 | { 105 | "background": "7a96fa08", 106 | "token": "text.tex.latex meta.function.environment meta.function.environment" 107 | }, 108 | { 109 | "foreground": "fbde2d", 110 | "token": "text.tex.latex support.function" 111 | }, 112 | { 113 | "foreground": "ffffff", 114 | "token": "source.plist string.unquoted" 115 | }, 116 | { 117 | "foreground": "ffffff", 118 | "token": "source.plist keyword.operator" 119 | } 120 | ], 121 | "colors": { 122 | "editor.foreground": "#F8F8F8", 123 | "editor.background": "#0C1021", 124 | "editor.selectionBackground": "#253B76", 125 | "editor.lineHighlightBackground": "#FFFFFF0F", 126 | "editorCursor.foreground": "#FFFFFFA6", 127 | "editorWhitespace.foreground": "#FFFFFF40" 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /themes/Chrome DevTools.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "c41a16", 7 | "token": "string" 8 | }, 9 | { 10 | "foreground": "1c00cf", 11 | "token": "constant.numeric" 12 | }, 13 | { 14 | "foreground": "aa0d91", 15 | "token": "keyword" 16 | }, 17 | { 18 | "foreground": "000000", 19 | "token": "keyword.operator" 20 | }, 21 | { 22 | "foreground": "aa0d91", 23 | "token": "constant.language" 24 | }, 25 | { 26 | "foreground": "990000", 27 | "token": "support.class.exception" 28 | }, 29 | { 30 | "foreground": "000000", 31 | "token": "entity.name.function" 32 | }, 33 | { 34 | "fontStyle": "bold underline", 35 | "token": "entity.name.type" 36 | }, 37 | { 38 | "fontStyle": "italic", 39 | "token": "variable.parameter" 40 | }, 41 | { 42 | "foreground": "007400", 43 | "token": "comment" 44 | }, 45 | { 46 | "foreground": "ff0000", 47 | "token": "invalid" 48 | }, 49 | { 50 | "background": "e71a1100", 51 | "token": "invalid.deprecated.trailing-whitespace" 52 | }, 53 | { 54 | "foreground": "000000", 55 | "background": "fafafafc", 56 | "token": "text source" 57 | }, 58 | { 59 | "foreground": "aa0d91", 60 | "token": "meta.tag" 61 | }, 62 | { 63 | "foreground": "aa0d91", 64 | "token": "declaration.tag" 65 | }, 66 | { 67 | "foreground": "000000", 68 | "fontStyle": "bold", 69 | "token": "support" 70 | }, 71 | { 72 | "foreground": "aa0d91", 73 | "token": "storage" 74 | }, 75 | { 76 | "fontStyle": "bold underline", 77 | "token": "entity.name.section" 78 | }, 79 | { 80 | "foreground": "000000", 81 | "fontStyle": "bold", 82 | "token": "entity.name.function.frame" 83 | }, 84 | { 85 | "foreground": "333333", 86 | "token": "meta.tag.preprocessor.xml" 87 | }, 88 | { 89 | "foreground": "994500", 90 | "fontStyle": "italic", 91 | "token": "entity.other.attribute-name" 92 | }, 93 | { 94 | "foreground": "881280", 95 | "token": "entity.name.tag" 96 | } 97 | ], 98 | "colors": { 99 | "editor.foreground": "#000000", 100 | "editor.background": "#FFFFFF", 101 | "editor.selectionBackground": "#BAD6FD", 102 | "editor.lineHighlightBackground": "#0000001A", 103 | "editorCursor.foreground": "#000000", 104 | "editorWhitespace.foreground": "#B3B3B3F4" 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /themes/Clouds Midnight.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "3c403b", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "5d90cd", 11 | "token": "string" 12 | }, 13 | { 14 | "foreground": "46a609", 15 | "token": "constant.numeric" 16 | }, 17 | { 18 | "foreground": "39946a", 19 | "token": "constant.language" 20 | }, 21 | { 22 | "foreground": "927c5d", 23 | "token": "keyword" 24 | }, 25 | { 26 | "foreground": "927c5d", 27 | "token": "support.constant.property-value" 28 | }, 29 | { 30 | "foreground": "927c5d", 31 | "token": "constant.other.color" 32 | }, 33 | { 34 | "foreground": "366f1a", 35 | "token": "keyword.other.unit" 36 | }, 37 | { 38 | "foreground": "a46763", 39 | "token": "entity.other.attribute-name.html" 40 | }, 41 | { 42 | "foreground": "4b4b4b", 43 | "token": "keyword.operator" 44 | }, 45 | { 46 | "foreground": "e92e2e", 47 | "token": "storage" 48 | }, 49 | { 50 | "foreground": "858585", 51 | "token": "entity.other.inherited-class" 52 | }, 53 | { 54 | "foreground": "606060", 55 | "token": "entity.name.tag" 56 | }, 57 | { 58 | "foreground": "a165ac", 59 | "token": "constant.character.entity" 60 | }, 61 | { 62 | "foreground": "a165ac", 63 | "token": "support.class.js" 64 | }, 65 | { 66 | "foreground": "606060", 67 | "token": "entity.other.attribute-name" 68 | }, 69 | { 70 | "foreground": "e92e2e", 71 | "token": "meta.selector.css" 72 | }, 73 | { 74 | "foreground": "e92e2e", 75 | "token": "entity.name.tag.css" 76 | }, 77 | { 78 | "foreground": "e92e2e", 79 | "token": "entity.other.attribute-name.id.css" 80 | }, 81 | { 82 | "foreground": "e92e2e", 83 | "token": "entity.other.attribute-name.class.css" 84 | }, 85 | { 86 | "foreground": "616161", 87 | "token": "meta.property-name.css" 88 | }, 89 | { 90 | "foreground": "e92e2e", 91 | "token": "support.function" 92 | }, 93 | { 94 | "foreground": "ffffff", 95 | "background": "e92e2e", 96 | "token": "invalid" 97 | }, 98 | { 99 | "foreground": "e92e2e", 100 | "token": "punctuation.section.embedded" 101 | }, 102 | { 103 | "foreground": "606060", 104 | "token": "punctuation.definition.tag" 105 | }, 106 | { 107 | "foreground": "a165ac", 108 | "token": "constant.other.color.rgb-value.css" 109 | }, 110 | { 111 | "foreground": "a165ac", 112 | "token": "support.constant.property-value.css" 113 | } 114 | ], 115 | "colors": { 116 | "editor.foreground": "#929292", 117 | "editor.background": "#191919", 118 | "editor.selectionBackground": "#000000", 119 | "editor.lineHighlightBackground": "#D7D7D708", 120 | "editorCursor.foreground": "#7DA5DC", 121 | "editorWhitespace.foreground": "#BFBFBF" 122 | } 123 | } 124 | -------------------------------------------------------------------------------- /themes/Clouds.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "bcc8ba", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "5d90cd", 11 | "token": "string" 12 | }, 13 | { 14 | "foreground": "46a609", 15 | "token": "constant.numeric" 16 | }, 17 | { 18 | "foreground": "39946a", 19 | "token": "constant.language" 20 | }, 21 | { 22 | "foreground": "af956f", 23 | "token": "keyword" 24 | }, 25 | { 26 | "foreground": "af956f", 27 | "token": "support.constant.property-value" 28 | }, 29 | { 30 | "foreground": "af956f", 31 | "token": "constant.other.color" 32 | }, 33 | { 34 | "foreground": "96dc5f", 35 | "token": "keyword.other.unit" 36 | }, 37 | { 38 | "foreground": "484848", 39 | "token": "keyword.operator" 40 | }, 41 | { 42 | "foreground": "c52727", 43 | "token": "storage" 44 | }, 45 | { 46 | "foreground": "858585", 47 | "token": "entity.other.inherited-class" 48 | }, 49 | { 50 | "foreground": "606060", 51 | "token": "entity.name.tag" 52 | }, 53 | { 54 | "foreground": "bf78cc", 55 | "token": "constant.character.entity" 56 | }, 57 | { 58 | "foreground": "bf78cc", 59 | "token": "support.class.js" 60 | }, 61 | { 62 | "foreground": "606060", 63 | "token": "entity.other.attribute-name" 64 | }, 65 | { 66 | "foreground": "c52727", 67 | "token": "meta.selector.css" 68 | }, 69 | { 70 | "foreground": "c52727", 71 | "token": "entity.name.tag.css" 72 | }, 73 | { 74 | "foreground": "c52727", 75 | "token": "entity.other.attribute-name.id.css" 76 | }, 77 | { 78 | "foreground": "c52727", 79 | "token": "entity.other.attribute-name.class.css" 80 | }, 81 | { 82 | "foreground": "484848", 83 | "token": "meta.property-name.css" 84 | }, 85 | { 86 | "foreground": "c52727", 87 | "token": "support.function" 88 | }, 89 | { 90 | "background": "ff002a", 91 | "token": "invalid" 92 | }, 93 | { 94 | "foreground": "c52727", 95 | "token": "punctuation.section.embedded" 96 | }, 97 | { 98 | "foreground": "606060", 99 | "token": "punctuation.definition.tag" 100 | }, 101 | { 102 | "foreground": "bf78cc", 103 | "token": "constant.other.color.rgb-value.css" 104 | }, 105 | { 106 | "foreground": "bf78cc", 107 | "token": "support.constant.property-value.css" 108 | } 109 | ], 110 | "colors": { 111 | "editor.foreground": "#000000", 112 | "editor.background": "#FFFFFF", 113 | "editor.selectionBackground": "#BDD5FC", 114 | "editor.lineHighlightBackground": "#FFFBD1", 115 | "editorCursor.foreground": "#000000", 116 | "editorWhitespace.foreground": "#BFBFBF" 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /themes/Dawn.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "5a525f", 7 | "fontStyle": "italic", 8 | "token": "comment" 9 | }, 10 | { 11 | "foreground": "811f24", 12 | "fontStyle": "bold", 13 | "token": "constant" 14 | }, 15 | { 16 | "foreground": "bf4f24", 17 | "token": "entity" 18 | }, 19 | { 20 | "foreground": "794938", 21 | "token": "keyword" 22 | }, 23 | { 24 | "foreground": "a71d5d", 25 | "fontStyle": "italic", 26 | "token": "storage" 27 | }, 28 | { 29 | "foreground": "0b6125", 30 | "token": "string | punctuation.definition.string" 31 | }, 32 | { 33 | "foreground": "691c97", 34 | "token": "support" 35 | }, 36 | { 37 | "foreground": "234a97", 38 | "token": "variable" 39 | }, 40 | { 41 | "foreground": "794938", 42 | "token": "punctuation.separator" 43 | }, 44 | { 45 | "foreground": "b52a1d", 46 | "fontStyle": "bold italic underline", 47 | "token": "invalid.deprecated" 48 | }, 49 | { 50 | "foreground": "f8f8f8", 51 | "background": "b52a1d", 52 | "fontStyle": "italic underline", 53 | "token": "invalid.illegal" 54 | }, 55 | { 56 | "foreground": "080808", 57 | "background": "6f8bba26", 58 | "token": "string source" 59 | }, 60 | { 61 | "foreground": "696969", 62 | "fontStyle": "bold", 63 | "token": "string constant" 64 | }, 65 | { 66 | "foreground": "234a97", 67 | "token": "string variable" 68 | }, 69 | { 70 | "foreground": "cf5628", 71 | "token": "string.regexp" 72 | }, 73 | { 74 | "foreground": "cf5628", 75 | "fontStyle": "bold italic", 76 | "token": "string.regexp.character-class" 77 | }, 78 | { 79 | "foreground": "cf5628", 80 | "fontStyle": "bold italic", 81 | "token": "string.regexp constant.character.escaped" 82 | }, 83 | { 84 | "foreground": "cf5628", 85 | "fontStyle": "bold italic", 86 | "token": "string.regexp source.ruby.embedded" 87 | }, 88 | { 89 | "foreground": "cf5628", 90 | "fontStyle": "bold italic", 91 | "token": "string.regexp string.regexp.arbitrary-repitition" 92 | }, 93 | { 94 | "foreground": "811f24", 95 | "fontStyle": "bold", 96 | "token": "string.regexp constant.character.escape" 97 | }, 98 | { 99 | "background": "6f8bba26", 100 | "token": "text source" 101 | }, 102 | { 103 | "foreground": "693a17", 104 | "token": "support.function" 105 | }, 106 | { 107 | "foreground": "b4371f", 108 | "token": "support.constant" 109 | }, 110 | { 111 | "foreground": "234a97", 112 | "token": "support.variable" 113 | }, 114 | { 115 | "foreground": "693a17", 116 | "token": "markup.list" 117 | }, 118 | { 119 | "foreground": "19356d", 120 | "fontStyle": "bold", 121 | "token": "markup.heading | markup.heading entity.name" 122 | }, 123 | { 124 | "foreground": "0b6125", 125 | "background": "bbbbbb30", 126 | "fontStyle": "italic", 127 | "token": "markup.quote" 128 | }, 129 | { 130 | "foreground": "080808", 131 | "fontStyle": "italic", 132 | "token": "markup.italic" 133 | }, 134 | { 135 | "foreground": "080808", 136 | "fontStyle": "bold", 137 | "token": "markup.bold" 138 | }, 139 | { 140 | "foreground": "080808", 141 | "fontStyle": "underline", 142 | "token": "markup.underline" 143 | }, 144 | { 145 | "foreground": "234a97", 146 | "fontStyle": "italic underline", 147 | "token": "markup.link" 148 | }, 149 | { 150 | "foreground": "234a97", 151 | "background": "bbbbbb30", 152 | "token": "markup.raw" 153 | }, 154 | { 155 | "foreground": "b52a1d", 156 | "token": "markup.deleted" 157 | }, 158 | { 159 | "foreground": "19356d", 160 | "background": "dcdcdc", 161 | "fontStyle": "bold", 162 | "token": "meta.separator" 163 | } 164 | ], 165 | "colors": { 166 | "editor.foreground": "#080808", 167 | "editor.background": "#F9F9F9", 168 | "editor.selectionBackground": "#275FFF4D", 169 | "editor.lineHighlightBackground": "#2463B41F", 170 | "editorCursor.foreground": "#000000", 171 | "editorWhitespace.foreground": "#4B4B7E80" 172 | } 173 | } 174 | -------------------------------------------------------------------------------- /themes/Dominion Day.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "e6e1c4", 7 | "background": "322323", 8 | "token": "source" 9 | }, 10 | { 11 | "foreground": "6b4e32", 12 | "fontStyle": "italic", 13 | "token": "comment" 14 | }, 15 | { 16 | "foreground": "ef5d32", 17 | "token": "keyword" 18 | }, 19 | { 20 | "foreground": "ef5d32", 21 | "token": "storage" 22 | }, 23 | { 24 | "foreground": "efac32", 25 | "token": "entity.name.function" 26 | }, 27 | { 28 | "foreground": "efac32", 29 | "token": "keyword.other.name-of-parameter.objc" 30 | }, 31 | { 32 | "foreground": "efac32", 33 | "fontStyle": "bold", 34 | "token": "entity.name" 35 | }, 36 | { 37 | "foreground": "6c99bb", 38 | "token": "constant.numeric" 39 | }, 40 | { 41 | "foreground": "7daf9c", 42 | "token": "variable.language" 43 | }, 44 | { 45 | "foreground": "7daf9c", 46 | "token": "variable.other" 47 | }, 48 | { 49 | "foreground": "6c99bb", 50 | "token": "constant" 51 | }, 52 | { 53 | "foreground": "efac32", 54 | "token": "variable.other.constant" 55 | }, 56 | { 57 | "foreground": "6c99bb", 58 | "token": "constant.language" 59 | }, 60 | { 61 | "foreground": "d9d762", 62 | "token": "string" 63 | }, 64 | { 65 | "foreground": "efac32", 66 | "token": "support.function" 67 | }, 68 | { 69 | "foreground": "efac32", 70 | "token": "support.type" 71 | }, 72 | { 73 | "foreground": "6c99bb", 74 | "token": "support.constant" 75 | }, 76 | { 77 | "foreground": "efcb43", 78 | "token": "meta.tag" 79 | }, 80 | { 81 | "foreground": "efcb43", 82 | "token": "declaration.tag" 83 | }, 84 | { 85 | "foreground": "efcb43", 86 | "token": "entity.name.tag" 87 | }, 88 | { 89 | "foreground": "efcb43", 90 | "token": "entity.other.attribute-name" 91 | }, 92 | { 93 | "foreground": "ffffff", 94 | "background": "990000", 95 | "token": "invalid" 96 | }, 97 | { 98 | "foreground": "7daf9c", 99 | "token": "constant.character.escaped" 100 | }, 101 | { 102 | "foreground": "7daf9c", 103 | "token": "constant.character.escape" 104 | }, 105 | { 106 | "foreground": "7daf9c", 107 | "token": "string source" 108 | }, 109 | { 110 | "foreground": "7daf9c", 111 | "token": "string source.ruby" 112 | }, 113 | { 114 | "foreground": "e6e1dc", 115 | "background": "144212", 116 | "token": "markup.inserted" 117 | }, 118 | { 119 | "foreground": "e6e1dc", 120 | "background": "660000", 121 | "token": "markup.deleted" 122 | }, 123 | { 124 | "background": "2f33ab", 125 | "token": "meta.diff.header" 126 | }, 127 | { 128 | "background": "2f33ab", 129 | "token": "meta.separator.diff" 130 | }, 131 | { 132 | "background": "2f33ab", 133 | "token": "meta.diff.index" 134 | }, 135 | { 136 | "background": "2f33ab", 137 | "token": "meta.diff.range" 138 | } 139 | ], 140 | "colors": { 141 | "editor.foreground": "#E6E1C4", 142 | "editor.background": "#372725", 143 | "editor.selectionBackground": "#16120E", 144 | "editor.lineHighlightBackground": "#1F1611", 145 | "editorCursor.foreground": "#E6E1C4", 146 | "editorWhitespace.foreground": "#42302D" 147 | } 148 | } 149 | -------------------------------------------------------------------------------- /themes/Eiffel.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "00b418", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "0206ff", 11 | "fontStyle": "italic", 12 | "token": "variable" 13 | }, 14 | { 15 | "foreground": "0100b6", 16 | "fontStyle": "bold", 17 | "token": "keyword" 18 | }, 19 | { 20 | "foreground": "cd0000", 21 | "fontStyle": "italic", 22 | "token": "constant.numeric" 23 | }, 24 | { 25 | "foreground": "c5060b", 26 | "fontStyle": "italic", 27 | "token": "constant" 28 | }, 29 | { 30 | "foreground": "585cf6", 31 | "fontStyle": "italic", 32 | "token": "constant.language" 33 | }, 34 | { 35 | "foreground": "d80800", 36 | "token": "string" 37 | }, 38 | { 39 | "foreground": "26b31a", 40 | "token": "constant.character.escape" 41 | }, 42 | { 43 | "foreground": "26b31a", 44 | "token": "string source" 45 | }, 46 | { 47 | "foreground": "1a921c", 48 | "token": "meta.preprocessor" 49 | }, 50 | { 51 | "foreground": "0c450d", 52 | "fontStyle": "bold", 53 | "token": "keyword.control.import" 54 | }, 55 | { 56 | "foreground": "0000a2", 57 | "fontStyle": "bold", 58 | "token": "entity.name.function" 59 | }, 60 | { 61 | "foreground": "0000a2", 62 | "fontStyle": "bold", 63 | "token": "keyword.other.name-of-parameter.objc" 64 | }, 65 | { 66 | "fontStyle": "italic", 67 | "token": "entity.name.type" 68 | }, 69 | { 70 | "fontStyle": "italic", 71 | "token": "entity.other.inherited-class" 72 | }, 73 | { 74 | "fontStyle": "italic", 75 | "token": "variable.parameter" 76 | }, 77 | { 78 | "foreground": "70727e", 79 | "token": "storage.type.method" 80 | }, 81 | { 82 | "fontStyle": "italic", 83 | "token": "meta.section entity.name.section" 84 | }, 85 | { 86 | "fontStyle": "italic", 87 | "token": "declaration.section entity.name.section" 88 | }, 89 | { 90 | "foreground": "3c4c72", 91 | "fontStyle": "bold", 92 | "token": "support.function" 93 | }, 94 | { 95 | "foreground": "6d79de", 96 | "fontStyle": "bold", 97 | "token": "support.class" 98 | }, 99 | { 100 | "foreground": "6d79de", 101 | "fontStyle": "bold", 102 | "token": "support.type" 103 | }, 104 | { 105 | "foreground": "06960e", 106 | "fontStyle": "bold", 107 | "token": "support.constant" 108 | }, 109 | { 110 | "foreground": "21439c", 111 | "fontStyle": "bold", 112 | "token": "support.variable" 113 | }, 114 | { 115 | "foreground": "687687", 116 | "token": "keyword.operator.js" 117 | }, 118 | { 119 | "foreground": "ffffff", 120 | "background": "990000", 121 | "token": "invalid" 122 | }, 123 | { 124 | "background": "ffd0d0", 125 | "token": "invalid.deprecated.trailing-whitespace" 126 | }, 127 | { 128 | "background": "427ff530", 129 | "token": "text source" 130 | }, 131 | { 132 | "background": "427ff530", 133 | "token": "string.unquoted" 134 | }, 135 | { 136 | "foreground": "68685b", 137 | "token": "meta.xml-processing" 138 | }, 139 | { 140 | "foreground": "68685b", 141 | "token": "declaration.xml-processing" 142 | }, 143 | { 144 | "foreground": "888888", 145 | "token": "meta.doctype" 146 | }, 147 | { 148 | "foreground": "888888", 149 | "token": "declaration.doctype" 150 | }, 151 | { 152 | "fontStyle": "italic", 153 | "token": "meta.doctype.DTD" 154 | }, 155 | { 156 | "fontStyle": "italic", 157 | "token": "declaration.doctype.DTD" 158 | }, 159 | { 160 | "foreground": "1c02ff", 161 | "token": "meta.tag" 162 | }, 163 | { 164 | "foreground": "1c02ff", 165 | "token": "declaration.tag" 166 | }, 167 | { 168 | "fontStyle": "bold", 169 | "token": "entity.name.tag" 170 | }, 171 | { 172 | "fontStyle": "italic", 173 | "token": "entity.other.attribute-name" 174 | }, 175 | { 176 | "foreground": "0c07ff", 177 | "fontStyle": "bold", 178 | "token": "markup.heading" 179 | }, 180 | { 181 | "foreground": "000000", 182 | "fontStyle": "italic", 183 | "token": "markup.quote" 184 | }, 185 | { 186 | "foreground": "b90690", 187 | "token": "markup.list" 188 | } 189 | ], 190 | "colors": { 191 | "editor.foreground": "#000000", 192 | "editor.background": "#FFFFFF", 193 | "editor.selectionBackground": "#C3DCFF", 194 | "editor.lineHighlightBackground": "#00000012", 195 | "editorCursor.foreground": "#000000", 196 | "editorWhitespace.foreground": "#BFBFBF" 197 | } 198 | } 199 | -------------------------------------------------------------------------------- /themes/Espresso Libre.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "0066ff", 7 | "fontStyle": "italic", 8 | "token": "comment" 9 | }, 10 | { 11 | "foreground": "43a8ed", 12 | "fontStyle": "bold", 13 | "token": "keyword" 14 | }, 15 | { 16 | "foreground": "43a8ed", 17 | "fontStyle": "bold", 18 | "token": "storage" 19 | }, 20 | { 21 | "foreground": "44aa43", 22 | "token": "constant.numeric" 23 | }, 24 | { 25 | "foreground": "c5656b", 26 | "fontStyle": "bold", 27 | "token": "constant" 28 | }, 29 | { 30 | "foreground": "585cf6", 31 | "fontStyle": "bold", 32 | "token": "constant.language" 33 | }, 34 | { 35 | "foreground": "318495", 36 | "token": "variable.language" 37 | }, 38 | { 39 | "foreground": "318495", 40 | "token": "variable.other" 41 | }, 42 | { 43 | "foreground": "049b0a", 44 | "token": "string" 45 | }, 46 | { 47 | "foreground": "2fe420", 48 | "token": "constant.character.escape" 49 | }, 50 | { 51 | "foreground": "2fe420", 52 | "token": "string source" 53 | }, 54 | { 55 | "foreground": "1a921c", 56 | "token": "meta.preprocessor" 57 | }, 58 | { 59 | "foreground": "9aff87", 60 | "fontStyle": "bold", 61 | "token": "keyword.control.import" 62 | }, 63 | { 64 | "foreground": "ff9358", 65 | "fontStyle": "bold", 66 | "token": "entity.name.function" 67 | }, 68 | { 69 | "foreground": "ff9358", 70 | "fontStyle": "bold", 71 | "token": "keyword.other.name-of-parameter.objc" 72 | }, 73 | { 74 | "fontStyle": "underline", 75 | "token": "entity.name.type" 76 | }, 77 | { 78 | "fontStyle": "italic", 79 | "token": "entity.other.inherited-class" 80 | }, 81 | { 82 | "fontStyle": "italic", 83 | "token": "variable.parameter" 84 | }, 85 | { 86 | "foreground": "8b8e9c", 87 | "token": "storage.type.method" 88 | }, 89 | { 90 | "fontStyle": "italic", 91 | "token": "meta.section entity.name.section" 92 | }, 93 | { 94 | "fontStyle": "italic", 95 | "token": "declaration.section entity.name.section" 96 | }, 97 | { 98 | "foreground": "7290d9", 99 | "fontStyle": "bold", 100 | "token": "support.function" 101 | }, 102 | { 103 | "foreground": "6d79de", 104 | "fontStyle": "bold", 105 | "token": "support.class" 106 | }, 107 | { 108 | "foreground": "6d79de", 109 | "fontStyle": "bold", 110 | "token": "support.type" 111 | }, 112 | { 113 | "foreground": "00af0e", 114 | "fontStyle": "bold", 115 | "token": "support.constant" 116 | }, 117 | { 118 | "foreground": "2f5fe0", 119 | "fontStyle": "bold", 120 | "token": "support.variable" 121 | }, 122 | { 123 | "foreground": "687687", 124 | "token": "keyword.operator.js" 125 | }, 126 | { 127 | "foreground": "ffffff", 128 | "background": "990000", 129 | "token": "invalid" 130 | }, 131 | { 132 | "background": "ffd0d0", 133 | "token": "invalid.deprecated.trailing-whitespace" 134 | }, 135 | { 136 | "background": "f5aa7730", 137 | "token": "text source" 138 | }, 139 | { 140 | "background": "f5aa7730", 141 | "token": "string.unquoted" 142 | }, 143 | { 144 | "foreground": "8f7e65", 145 | "token": "meta.tag.preprocessor.xml" 146 | }, 147 | { 148 | "foreground": "888888", 149 | "token": "meta.tag.sgml.doctype" 150 | }, 151 | { 152 | "fontStyle": "italic", 153 | "token": "string.quoted.docinfo.doctype.DTD" 154 | }, 155 | { 156 | "foreground": "43a8ed", 157 | "token": "meta.tag" 158 | }, 159 | { 160 | "foreground": "43a8ed", 161 | "token": "declaration.tag" 162 | }, 163 | { 164 | "fontStyle": "bold", 165 | "token": "entity.name.tag" 166 | }, 167 | { 168 | "fontStyle": "italic", 169 | "token": "entity.other.attribute-name" 170 | } 171 | ], 172 | "colors": { 173 | "editor.foreground": "#BDAE9D", 174 | "editor.background": "#2A211C", 175 | "editor.selectionBackground": "#C3DCFF", 176 | "editor.lineHighlightBackground": "#3A312C", 177 | "editorCursor.foreground": "#889AFF", 178 | "editorWhitespace.foreground": "#BFBFBF" 179 | } 180 | } 181 | -------------------------------------------------------------------------------- /themes/GitHub.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "999988", 7 | "fontStyle": "italic", 8 | "token": "comment" 9 | }, 10 | { 11 | "foreground": "999999", 12 | "fontStyle": "bold", 13 | "token": "comment.block.preprocessor" 14 | }, 15 | { 16 | "foreground": "999999", 17 | "fontStyle": "bold italic", 18 | "token": "comment.documentation" 19 | }, 20 | { 21 | "foreground": "999999", 22 | "fontStyle": "bold italic", 23 | "token": "comment.block.documentation" 24 | }, 25 | { 26 | "foreground": "a61717", 27 | "background": "e3d2d2", 28 | "token": "invalid.illegal" 29 | }, 30 | { 31 | "fontStyle": "bold", 32 | "token": "keyword" 33 | }, 34 | { 35 | "fontStyle": "bold", 36 | "token": "storage" 37 | }, 38 | { 39 | "fontStyle": "bold", 40 | "token": "keyword.operator" 41 | }, 42 | { 43 | "fontStyle": "bold", 44 | "token": "constant.language" 45 | }, 46 | { 47 | "fontStyle": "bold", 48 | "token": "support.constant" 49 | }, 50 | { 51 | "foreground": "445588", 52 | "fontStyle": "bold", 53 | "token": "storage.type" 54 | }, 55 | { 56 | "foreground": "445588", 57 | "fontStyle": "bold", 58 | "token": "support.type" 59 | }, 60 | { 61 | "foreground": "008080", 62 | "token": "entity.other.attribute-name" 63 | }, 64 | { 65 | "foreground": "0086b3", 66 | "token": "variable.other" 67 | }, 68 | { 69 | "foreground": "999999", 70 | "token": "variable.language" 71 | }, 72 | { 73 | "foreground": "445588", 74 | "fontStyle": "bold", 75 | "token": "entity.name.type" 76 | }, 77 | { 78 | "foreground": "445588", 79 | "fontStyle": "bold", 80 | "token": "entity.other.inherited-class" 81 | }, 82 | { 83 | "foreground": "445588", 84 | "fontStyle": "bold", 85 | "token": "support.class" 86 | }, 87 | { 88 | "foreground": "008080", 89 | "token": "variable.other.constant" 90 | }, 91 | { 92 | "foreground": "800080", 93 | "token": "constant.character.entity" 94 | }, 95 | { 96 | "foreground": "990000", 97 | "token": "entity.name.exception" 98 | }, 99 | { 100 | "foreground": "990000", 101 | "token": "entity.name.function" 102 | }, 103 | { 104 | "foreground": "990000", 105 | "token": "support.function" 106 | }, 107 | { 108 | "foreground": "990000", 109 | "token": "keyword.other.name-of-parameter" 110 | }, 111 | { 112 | "foreground": "555555", 113 | "token": "entity.name.section" 114 | }, 115 | { 116 | "foreground": "000080", 117 | "token": "entity.name.tag" 118 | }, 119 | { 120 | "foreground": "008080", 121 | "token": "variable.parameter" 122 | }, 123 | { 124 | "foreground": "008080", 125 | "token": "support.variable" 126 | }, 127 | { 128 | "foreground": "009999", 129 | "token": "constant.numeric" 130 | }, 131 | { 132 | "foreground": "009999", 133 | "token": "constant.other" 134 | }, 135 | { 136 | "foreground": "dd1144", 137 | "token": "string - string source" 138 | }, 139 | { 140 | "foreground": "dd1144", 141 | "token": "constant.character" 142 | }, 143 | { 144 | "foreground": "009926", 145 | "token": "string.regexp" 146 | }, 147 | { 148 | "foreground": "990073", 149 | "token": "constant.other.symbol" 150 | }, 151 | { 152 | "fontStyle": "bold", 153 | "token": "punctuation" 154 | }, 155 | { 156 | "foreground": "000000", 157 | "background": "ffdddd", 158 | "token": "markup.deleted" 159 | }, 160 | { 161 | "fontStyle": "italic", 162 | "token": "markup.italic" 163 | }, 164 | { 165 | "foreground": "aa0000", 166 | "token": "markup.error" 167 | }, 168 | { 169 | "foreground": "999999", 170 | "token": "markup.heading.1" 171 | }, 172 | { 173 | "foreground": "000000", 174 | "background": "ddffdd", 175 | "token": "markup.inserted" 176 | }, 177 | { 178 | "foreground": "888888", 179 | "token": "markup.output" 180 | }, 181 | { 182 | "foreground": "888888", 183 | "token": "markup.raw" 184 | }, 185 | { 186 | "foreground": "555555", 187 | "token": "markup.prompt" 188 | }, 189 | { 190 | "fontStyle": "bold", 191 | "token": "markup.bold" 192 | }, 193 | { 194 | "foreground": "aaaaaa", 195 | "token": "markup.heading" 196 | }, 197 | { 198 | "foreground": "aa0000", 199 | "token": "markup.traceback" 200 | }, 201 | { 202 | "fontStyle": "underline", 203 | "token": "markup.underline" 204 | }, 205 | { 206 | "foreground": "999999", 207 | "background": "eaf2f5", 208 | "token": "meta.diff.range" 209 | }, 210 | { 211 | "foreground": "999999", 212 | "background": "eaf2f5", 213 | "token": "meta.diff.index" 214 | }, 215 | { 216 | "foreground": "999999", 217 | "background": "eaf2f5", 218 | "token": "meta.separator" 219 | }, 220 | { 221 | "foreground": "999999", 222 | "background": "ffdddd", 223 | "token": "meta.diff.header.from-file" 224 | }, 225 | { 226 | "foreground": "999999", 227 | "background": "ddffdd", 228 | "token": "meta.diff.header.to-file" 229 | }, 230 | { 231 | "foreground": "4183c4", 232 | "token": "meta.link" 233 | } 234 | ], 235 | "colors": { 236 | "editor.foreground": "#000000", 237 | "editor.background": "#F8F8FF", 238 | "editor.selectionBackground": "#B4D5FE", 239 | "editor.lineHighlightBackground": "#FFFEEB", 240 | "editorCursor.foreground": "#666666", 241 | "editorWhitespace.foreground": "#BBBBBB" 242 | } 243 | } 244 | -------------------------------------------------------------------------------- /themes/IDLE.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "919191", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "00a33f", 11 | "token": "string" 12 | }, 13 | { 14 | "foreground": "a535ae", 15 | "token": "constant.language" 16 | }, 17 | { 18 | "foreground": "ff5600", 19 | "token": "keyword" 20 | }, 21 | { 22 | "foreground": "ff5600", 23 | "token": "storage" 24 | }, 25 | { 26 | "foreground": "21439c", 27 | "token": "entity.name.type" 28 | }, 29 | { 30 | "foreground": "21439c", 31 | "token": "entity.name.function" 32 | }, 33 | { 34 | "foreground": "a535ae", 35 | "token": "support.function" 36 | }, 37 | { 38 | "foreground": "a535ae", 39 | "token": "support.constant" 40 | }, 41 | { 42 | "foreground": "a535ae", 43 | "token": "support.type" 44 | }, 45 | { 46 | "foreground": "a535ae", 47 | "token": "support.class" 48 | }, 49 | { 50 | "foreground": "a535ae", 51 | "token": "support.variable" 52 | }, 53 | { 54 | "foreground": "ffffff", 55 | "background": "990000", 56 | "token": "invalid" 57 | }, 58 | { 59 | "foreground": "990000", 60 | "token": "constant.other.placeholder.py" 61 | } 62 | ], 63 | "colors": { 64 | "editor.foreground": "#000000", 65 | "editor.background": "#FFFFFF", 66 | "editor.selectionBackground": "#BAD6FD", 67 | "editor.lineHighlightBackground": "#00000012", 68 | "editorCursor.foreground": "#000000", 69 | "editorWhitespace.foreground": "#BFBFBF" 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /themes/LAZY.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "8c868f", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "3b5bb5", 11 | "token": "constant" 12 | }, 13 | { 14 | "foreground": "3b5bb5", 15 | "token": "entity" 16 | }, 17 | { 18 | "foreground": "d62a28", 19 | "token": "text.tex.latex entity" 20 | }, 21 | { 22 | "foreground": "ff7800", 23 | "token": "keyword" 24 | }, 25 | { 26 | "foreground": "ff7800", 27 | "token": "storage" 28 | }, 29 | { 30 | "foreground": "409b1c", 31 | "token": "string" 32 | }, 33 | { 34 | "foreground": "409b1c", 35 | "token": "meta.verbatim" 36 | }, 37 | { 38 | "foreground": "3b5bb5", 39 | "token": "support" 40 | }, 41 | { 42 | "foreground": "990000", 43 | "fontStyle": "italic", 44 | "token": "invalid.deprecated" 45 | }, 46 | { 47 | "foreground": "f8f8f8", 48 | "background": "9d1e15", 49 | "token": "invalid.illegal" 50 | }, 51 | { 52 | "foreground": "3b5bb5", 53 | "fontStyle": "italic", 54 | "token": "entity.other.inherited-class" 55 | }, 56 | { 57 | "foreground": "671ebb", 58 | "token": "string constant.other.placeholder" 59 | }, 60 | { 61 | "foreground": "3e4558", 62 | "token": "meta.function-call.py" 63 | }, 64 | { 65 | "foreground": "3a4a64", 66 | "token": "meta.tag" 67 | }, 68 | { 69 | "foreground": "3a4a64", 70 | "token": "meta.tag entity" 71 | }, 72 | { 73 | "foreground": "7f90aa", 74 | "token": "keyword.type.variant" 75 | }, 76 | { 77 | "foreground": "000000", 78 | "token": "source.ocaml keyword.operator" 79 | }, 80 | { 81 | "foreground": "3b5bb5", 82 | "token": "source.ocaml keyword.operator.symbol.infix" 83 | }, 84 | { 85 | "foreground": "3b5bb5", 86 | "token": "source.ocaml keyword.operator.symbol.prefix" 87 | }, 88 | { 89 | "fontStyle": "underline", 90 | "token": "source.ocaml keyword.operator.symbol.infix.floating-point" 91 | }, 92 | { 93 | "fontStyle": "underline", 94 | "token": "source.ocaml keyword.operator.symbol.prefix.floating-point" 95 | }, 96 | { 97 | "fontStyle": "underline", 98 | "token": "source.ocaml constant.numeric.floating-point" 99 | } 100 | ], 101 | "colors": { 102 | "editor.foreground": "#000000", 103 | "editor.background": "#FFFFFF", 104 | "editor.selectionBackground": "#E3FC8D", 105 | "editor.lineHighlightBackground": "#EFFCA68F", 106 | "editorCursor.foreground": "#7C7C7C", 107 | "editorWhitespace.foreground": "#B6B6B6" 108 | } 109 | } 110 | -------------------------------------------------------------------------------- /themes/MagicWB (Amiga).json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "8d2e75", 7 | "fontStyle": "italic", 8 | "token": "comment" 9 | }, 10 | { 11 | "foreground": "ffffff", 12 | "background": "ff000033", 13 | "token": "string" 14 | }, 15 | { 16 | "foreground": "ffffff", 17 | "token": "constant.numeric" 18 | }, 19 | { 20 | "foreground": "ffa995", 21 | "fontStyle": "bold", 22 | "token": "constant.language" 23 | }, 24 | { 25 | "foreground": "ffa995", 26 | "background": "0000ff33", 27 | "token": "constant.character" 28 | }, 29 | { 30 | "foreground": "ffa995", 31 | "background": "0000ff33", 32 | "token": "constant.other" 33 | }, 34 | { 35 | "foreground": "ffa995", 36 | "token": "variable.language" 37 | }, 38 | { 39 | "foreground": "ffa995", 40 | "token": "variable.other" 41 | }, 42 | { 43 | "fontStyle": "bold", 44 | "token": "keyword" 45 | }, 46 | { 47 | "foreground": "3a68a3", 48 | "fontStyle": "bold", 49 | "token": "storage" 50 | }, 51 | { 52 | "fontStyle": "underline", 53 | "token": "entity.name.type" 54 | }, 55 | { 56 | "fontStyle": "italic", 57 | "token": "entity.other.inherited-class" 58 | }, 59 | { 60 | "foreground": "ffa995", 61 | "token": "entity.name.function" 62 | }, 63 | { 64 | "fontStyle": "italic", 65 | "token": "variable.parameter" 66 | }, 67 | { 68 | "foreground": "0000ff", 69 | "fontStyle": "bold", 70 | "token": "entity.name" 71 | }, 72 | { 73 | "foreground": "3a68a3", 74 | "fontStyle": "italic", 75 | "token": "entity.other.attribute-name" 76 | }, 77 | { 78 | "foreground": "e5b3ff", 79 | "token": "support.function" 80 | }, 81 | { 82 | "foreground": "000000", 83 | "token": "support.function.any-method" 84 | }, 85 | { 86 | "fontStyle": "italic", 87 | "token": "support.function.any-method - punctuation" 88 | }, 89 | { 90 | "foreground": "ffffff", 91 | "token": "support.constant" 92 | }, 93 | { 94 | "foreground": "ffa995", 95 | "token": "support.type" 96 | }, 97 | { 98 | "foreground": "ffa995", 99 | "token": "support.class" 100 | }, 101 | { 102 | "foreground": "3a68a3", 103 | "token": "support.variable" 104 | }, 105 | { 106 | "foreground": "ffffff", 107 | "background": "797979", 108 | "token": "invalid" 109 | }, 110 | { 111 | "foreground": "ffa995", 112 | "background": "969696", 113 | "fontStyle": "italic", 114 | "token": "string.quoted.other.lt-gt.include" 115 | }, 116 | { 117 | "foreground": "ffa995", 118 | "background": "969696", 119 | "token": "string.quoted.double.include" 120 | }, 121 | { 122 | "foreground": "4d4e60", 123 | "token": "markup.list" 124 | }, 125 | { 126 | "foreground": "ffffff", 127 | "background": "0000ff", 128 | "token": "markup.raw" 129 | }, 130 | { 131 | "foreground": "00f0c9", 132 | "token": "markup.quote" 133 | }, 134 | { 135 | "foreground": "4c457e", 136 | "token": "markup.quote markup.quote" 137 | }, 138 | { 139 | "background": "8a9ecb", 140 | "token": "text.html source" 141 | } 142 | ], 143 | "colors": { 144 | "editor.foreground": "#000000", 145 | "editor.background": "#969696", 146 | "editor.selectionBackground": "#B1B1B1", 147 | "editor.lineHighlightBackground": "#00000012", 148 | "editorCursor.foreground": "#FFFFFF", 149 | "editorWhitespace.foreground": "#FF38FF" 150 | } 151 | } 152 | -------------------------------------------------------------------------------- /themes/Merbivore Soft.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "ad2ea4", 7 | "fontStyle": "italic", 8 | "token": "comment" 9 | }, 10 | { 11 | "foreground": "fc6f09", 12 | "token": "keyword" 13 | }, 14 | { 15 | "foreground": "fc6f09", 16 | "token": "storage" 17 | }, 18 | { 19 | "foreground": "fc83ff", 20 | "token": "entity.other.inherited-class" 21 | }, 22 | { 23 | "foreground": "58c554", 24 | "token": "constant.numeric" 25 | }, 26 | { 27 | "foreground": "1edafb", 28 | "token": "constant" 29 | }, 30 | { 31 | "foreground": "8dff0a", 32 | "token": "constant.library" 33 | }, 34 | { 35 | "foreground": "fc6f09", 36 | "token": "support.function" 37 | }, 38 | { 39 | "foreground": "fdc251", 40 | "token": "constant.language" 41 | }, 42 | { 43 | "foreground": "8dff0a", 44 | "token": "string" 45 | }, 46 | { 47 | "foreground": "1edafb", 48 | "token": "support.type" 49 | }, 50 | { 51 | "foreground": "8dff0a", 52 | "token": "support.constant" 53 | }, 54 | { 55 | "foreground": "fc6f09", 56 | "token": "meta.tag" 57 | }, 58 | { 59 | "foreground": "fc6f09", 60 | "token": "declaration.tag" 61 | }, 62 | { 63 | "foreground": "fc6f09", 64 | "token": "entity.name.tag" 65 | }, 66 | { 67 | "foreground": "ffff89", 68 | "token": "entity.other.attribute-name" 69 | }, 70 | { 71 | "foreground": "ffffff", 72 | "background": "990000", 73 | "token": "invalid" 74 | }, 75 | { 76 | "foreground": "519f50", 77 | "token": "constant.character.escaped" 78 | }, 79 | { 80 | "foreground": "519f50", 81 | "token": "constant.character.escape" 82 | }, 83 | { 84 | "foreground": "519f50", 85 | "token": "string source" 86 | }, 87 | { 88 | "foreground": "519f50", 89 | "token": "string source.ruby" 90 | }, 91 | { 92 | "foreground": "e6e1dc", 93 | "background": "144212", 94 | "token": "markup.inserted" 95 | }, 96 | { 97 | "foreground": "e6e1dc", 98 | "background": "660000", 99 | "token": "markup.deleted" 100 | }, 101 | { 102 | "background": "2f33ab", 103 | "token": "meta.diff.header" 104 | }, 105 | { 106 | "background": "2f33ab", 107 | "token": "meta.separator.diff" 108 | }, 109 | { 110 | "background": "2f33ab", 111 | "token": "meta.diff.index" 112 | }, 113 | { 114 | "background": "2f33ab", 115 | "token": "meta.diff.range" 116 | } 117 | ], 118 | "colors": { 119 | "editor.foreground": "#E6E1DC", 120 | "editor.background": "#161616", 121 | "editor.selectionBackground": "#454545", 122 | "editor.lineHighlightBackground": "#333435", 123 | "editorCursor.foreground": "#FFFFFF", 124 | "editorWhitespace.foreground": "#404040" 125 | } 126 | } 127 | -------------------------------------------------------------------------------- /themes/Merbivore.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "ad2ea4", 7 | "fontStyle": "italic", 8 | "token": "comment" 9 | }, 10 | { 11 | "foreground": "fc6f09", 12 | "token": "keyword" 13 | }, 14 | { 15 | "foreground": "fc6f09", 16 | "token": "storage" 17 | }, 18 | { 19 | "foreground": "fc83ff", 20 | "token": "entity.other.inherited-class" 21 | }, 22 | { 23 | "foreground": "58c554", 24 | "token": "constant.numeric" 25 | }, 26 | { 27 | "foreground": "1edafb", 28 | "token": "constant" 29 | }, 30 | { 31 | "foreground": "8dff0a", 32 | "token": "constant.library" 33 | }, 34 | { 35 | "foreground": "fc6f09", 36 | "token": "support.function" 37 | }, 38 | { 39 | "foreground": "fdc251", 40 | "token": "constant.language" 41 | }, 42 | { 43 | "foreground": "8dff0a", 44 | "token": "string" 45 | }, 46 | { 47 | "foreground": "1edafb", 48 | "token": "support.type" 49 | }, 50 | { 51 | "foreground": "8dff0a", 52 | "token": "support.constant" 53 | }, 54 | { 55 | "foreground": "fc6f09", 56 | "token": "meta.tag" 57 | }, 58 | { 59 | "foreground": "fc6f09", 60 | "token": "declaration.tag" 61 | }, 62 | { 63 | "foreground": "fc6f09", 64 | "token": "entity.name.tag" 65 | }, 66 | { 67 | "foreground": "ffff89", 68 | "token": "entity.other.attribute-name" 69 | }, 70 | { 71 | "foreground": "ffffff", 72 | "background": "990000", 73 | "token": "invalid" 74 | }, 75 | { 76 | "foreground": "519f50", 77 | "token": "constant.character.escaped" 78 | }, 79 | { 80 | "foreground": "519f50", 81 | "token": "constant.character.escape" 82 | }, 83 | { 84 | "foreground": "519f50", 85 | "token": "string source" 86 | }, 87 | { 88 | "foreground": "519f50", 89 | "token": "string source.ruby" 90 | }, 91 | { 92 | "foreground": "e6e1dc", 93 | "background": "144212", 94 | "token": "markup.inserted" 95 | }, 96 | { 97 | "foreground": "e6e1dc", 98 | "background": "660000", 99 | "token": "markup.deleted" 100 | }, 101 | { 102 | "background": "2f33ab", 103 | "token": "meta.diff.header" 104 | }, 105 | { 106 | "background": "2f33ab", 107 | "token": "meta.separator.diff" 108 | }, 109 | { 110 | "background": "2f33ab", 111 | "token": "meta.diff.index" 112 | }, 113 | { 114 | "background": "2f33ab", 115 | "token": "meta.diff.range" 116 | } 117 | ], 118 | "colors": { 119 | "editor.foreground": "#E6E1DC", 120 | "editor.background": "#161616", 121 | "editor.selectionBackground": "#454545", 122 | "editor.lineHighlightBackground": "#333435", 123 | "editorCursor.foreground": "#FFFFFF", 124 | "editorWhitespace.foreground": "#404040" 125 | } 126 | } 127 | -------------------------------------------------------------------------------- /themes/Monokai Bright.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "75715e", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "e6db74", 11 | "token": "string" 12 | }, 13 | { 14 | "foreground": "ae81ff", 15 | "token": "constant.numeric" 16 | }, 17 | { 18 | "foreground": "ae81ff", 19 | "token": "constant.language" 20 | }, 21 | { 22 | "foreground": "ae81ff", 23 | "token": "constant.character" 24 | }, 25 | { 26 | "foreground": "ae81ff", 27 | "token": "constant.other" 28 | }, 29 | { 30 | "foreground": "f92672", 31 | "token": "keyword" 32 | }, 33 | { 34 | "foreground": "f92672", 35 | "token": "variable.other.dollar.only.js" 36 | }, 37 | { 38 | "foreground": "f92672", 39 | "token": "storage" 40 | }, 41 | { 42 | "foreground": "66d9ef", 43 | "fontStyle": "italic", 44 | "token": "storage.type" 45 | }, 46 | { 47 | "foreground": "a6e22e", 48 | "fontStyle": "underline", 49 | "token": "entity.name.class" 50 | }, 51 | { 52 | "foreground": "a6e22e", 53 | "fontStyle": "italic underline", 54 | "token": "entity.other.inherited-class" 55 | }, 56 | { 57 | "foreground": "a6e22e", 58 | "token": "entity.name.function" 59 | }, 60 | { 61 | "foreground": "fd971f", 62 | "fontStyle": "italic", 63 | "token": "variable.parameter" 64 | }, 65 | { 66 | "foreground": "f92672", 67 | "token": "entity.name.tag" 68 | }, 69 | { 70 | "foreground": "a6e22e", 71 | "token": "entity.other.attribute-name" 72 | }, 73 | { 74 | "foreground": "66d9ef", 75 | "token": "support.function" 76 | }, 77 | { 78 | "foreground": "66d9ef", 79 | "token": "support.constant" 80 | }, 81 | { 82 | "foreground": "66d9ef", 83 | "fontStyle": "italic", 84 | "token": "support.type" 85 | }, 86 | { 87 | "foreground": "66d9ef", 88 | "fontStyle": "italic", 89 | "token": "support.class" 90 | }, 91 | { 92 | "foreground": "f8f8f0", 93 | "background": "f92672", 94 | "token": "invalid" 95 | }, 96 | { 97 | "foreground": "f8f8f0", 98 | "background": "ae81ff", 99 | "token": "invalid.deprecated" 100 | }, 101 | { 102 | "foreground": "cfcfc2", 103 | "token": "meta.structure.dictionary.json string.quoted.double.json" 104 | }, 105 | { 106 | "foreground": "75715e", 107 | "token": "meta.diff" 108 | }, 109 | { 110 | "foreground": "75715e", 111 | "token": "meta.diff.header" 112 | }, 113 | { 114 | "foreground": "f92672", 115 | "token": "markup.deleted" 116 | }, 117 | { 118 | "foreground": "a6e22e", 119 | "token": "markup.inserted" 120 | }, 121 | { 122 | "foreground": "e6db74", 123 | "token": "markup.changed" 124 | }, 125 | { 126 | "foreground": "ae81ffa0", 127 | "token": "constant.numeric.line-number.find-in-files - match" 128 | }, 129 | { 130 | "foreground": "e6db74", 131 | "token": "entity.name.filename.find-in-files" 132 | } 133 | ], 134 | "colors": { 135 | "editor.foreground": "#F8F8F2", 136 | "editor.background": "#272822", 137 | "editor.selectionBackground": "#9D550F", 138 | "editor.inactiveSelectionBackground": "#bbbbbb", 139 | "editor.lineHighlightBackground": "#3E3D32", 140 | "editorCursor.foreground": "#F8F8F0", 141 | "editorWhitespace.foreground": "#3B3A32", 142 | "editorIndentGuide.activeBackground": "#9D550FB0" 143 | } 144 | } 145 | -------------------------------------------------------------------------------- /themes/Monokai.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "75715e", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "e6db74", 11 | "token": "string" 12 | }, 13 | { 14 | "foreground": "ae81ff", 15 | "token": "constant.numeric" 16 | }, 17 | { 18 | "foreground": "ae81ff", 19 | "token": "constant.language" 20 | }, 21 | { 22 | "foreground": "ae81ff", 23 | "token": "constant.character" 24 | }, 25 | { 26 | "foreground": "ae81ff", 27 | "token": "constant.other" 28 | }, 29 | { 30 | "foreground": "f92672", 31 | "token": "keyword" 32 | }, 33 | { 34 | "foreground": "f92672", 35 | "token": "storage" 36 | }, 37 | { 38 | "foreground": "66d9ef", 39 | "fontStyle": "italic", 40 | "token": "storage.type" 41 | }, 42 | { 43 | "foreground": "a6e22e", 44 | "fontStyle": "underline", 45 | "token": "entity.name.class" 46 | }, 47 | { 48 | "foreground": "a6e22e", 49 | "fontStyle": "italic underline", 50 | "token": "entity.other.inherited-class" 51 | }, 52 | { 53 | "foreground": "a6e22e", 54 | "token": "entity.name.function" 55 | }, 56 | { 57 | "foreground": "fd971f", 58 | "fontStyle": "italic", 59 | "token": "variable.parameter" 60 | }, 61 | { 62 | "foreground": "f92672", 63 | "token": "entity.name.tag" 64 | }, 65 | { 66 | "foreground": "a6e22e", 67 | "token": "entity.other.attribute-name" 68 | }, 69 | { 70 | "foreground": "66d9ef", 71 | "token": "support.function" 72 | }, 73 | { 74 | "foreground": "66d9ef", 75 | "token": "support.constant" 76 | }, 77 | { 78 | "foreground": "66d9ef", 79 | "fontStyle": "italic", 80 | "token": "support.type" 81 | }, 82 | { 83 | "foreground": "66d9ef", 84 | "fontStyle": "italic", 85 | "token": "support.class" 86 | }, 87 | { 88 | "foreground": "f8f8f0", 89 | "background": "f92672", 90 | "token": "invalid" 91 | }, 92 | { 93 | "foreground": "f8f8f0", 94 | "background": "ae81ff", 95 | "token": "invalid.deprecated" 96 | }, 97 | { 98 | "foreground": "cfcfc2", 99 | "token": "meta.structure.dictionary.json string.quoted.double.json" 100 | }, 101 | { 102 | "foreground": "75715e", 103 | "token": "meta.diff" 104 | }, 105 | { 106 | "foreground": "75715e", 107 | "token": "meta.diff.header" 108 | }, 109 | { 110 | "foreground": "f92672", 111 | "token": "markup.deleted" 112 | }, 113 | { 114 | "foreground": "a6e22e", 115 | "token": "markup.inserted" 116 | }, 117 | { 118 | "foreground": "e6db74", 119 | "token": "markup.changed" 120 | }, 121 | { 122 | "foreground": "ae81ffa0", 123 | "token": "constant.numeric.line-number.find-in-files - match" 124 | }, 125 | { 126 | "foreground": "e6db74", 127 | "token": "entity.name.filename.find-in-files" 128 | } 129 | ], 130 | "colors": { 131 | "editor.foreground": "#F8F8F2", 132 | "editor.background": "#272822", 133 | "editor.selectionBackground": "#49483E", 134 | "editor.lineHighlightBackground": "#3E3D32", 135 | "editorCursor.foreground": "#F8F8F0", 136 | "editorWhitespace.foreground": "#3B3A32", 137 | "editorIndentGuide.activeBackground": "#9D550FB0", 138 | "editor.selectionHighlightBorder": "#222218" 139 | } 140 | } 141 | -------------------------------------------------------------------------------- /themes/Slush and Poppies.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "406040", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "c03030", 11 | "token": "string" 12 | }, 13 | { 14 | "foreground": "0080a0", 15 | "token": "constant.numeric" 16 | }, 17 | { 18 | "fontStyle": "underline", 19 | "token": "source.ocaml constant.numeric.floating-point" 20 | }, 21 | { 22 | "foreground": "800000", 23 | "token": "constant.character" 24 | }, 25 | { 26 | "foreground": "2060a0", 27 | "token": "keyword" 28 | }, 29 | { 30 | "foreground": "2060a0", 31 | "token": "keyword.operator" 32 | }, 33 | { 34 | "fontStyle": "underline", 35 | "token": "source.ocaml keyword.operator.symbol.prefix.floating-point" 36 | }, 37 | { 38 | "fontStyle": "underline", 39 | "token": "source.ocaml keyword.operator.symbol.infix.floating-point" 40 | }, 41 | { 42 | "foreground": "0080ff", 43 | "token": "entity.name.module" 44 | }, 45 | { 46 | "foreground": "0080ff", 47 | "token": "support.other.module" 48 | }, 49 | { 50 | "foreground": "a08000", 51 | "token": "storage.type" 52 | }, 53 | { 54 | "foreground": "008080", 55 | "token": "storage" 56 | }, 57 | { 58 | "foreground": "c08060", 59 | "token": "entity.name.class.variant" 60 | }, 61 | { 62 | "fontStyle": "bold", 63 | "token": "keyword.other.directive" 64 | }, 65 | { 66 | "foreground": "800000", 67 | "token": "entity.name.function" 68 | }, 69 | { 70 | "foreground": "800080", 71 | "token": "storage.type.user-defined" 72 | }, 73 | { 74 | "foreground": "8000c0", 75 | "token": "entity.name.type.class.type" 76 | } 77 | ], 78 | "colors": { 79 | "editor.foreground": "#000000", 80 | "editor.background": "#F1F1F1", 81 | "editor.selectionBackground": "#B0B0FF", 82 | "editor.lineHighlightBackground": "#00000026", 83 | "editorCursor.foreground": "#000000", 84 | "editorWhitespace.foreground": "#BFBFBF" 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /themes/SpaceCadet.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "473c45", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "805978", 11 | "token": "string" 12 | }, 13 | { 14 | "foreground": "a8885a", 15 | "token": "constant" 16 | }, 17 | { 18 | "foreground": "596380", 19 | "token": "variable.parameter" 20 | }, 21 | { 22 | "foreground": "596380", 23 | "token": "variable.other" 24 | }, 25 | { 26 | "foreground": "728059", 27 | "token": "keyword - keyword.operator" 28 | }, 29 | { 30 | "foreground": "728059", 31 | "token": "keyword.operator.logical" 32 | }, 33 | { 34 | "foreground": "9ebf60", 35 | "token": "storage" 36 | }, 37 | { 38 | "foreground": "6078bf", 39 | "token": "entity" 40 | }, 41 | { 42 | "fontStyle": "italic", 43 | "token": "entity.other.inherited-class" 44 | }, 45 | { 46 | "foreground": "8a4b66", 47 | "token": "support" 48 | }, 49 | { 50 | "foreground": "893062", 51 | "token": "support.type.exception" 52 | }, 53 | { 54 | "background": "5f0047", 55 | "token": "invalid" 56 | }, 57 | { 58 | "background": "371d28", 59 | "token": "meta.function.section" 60 | } 61 | ], 62 | "colors": { 63 | "editor.foreground": "#DDE6CF", 64 | "editor.background": "#0D0D0D", 65 | "editor.selectionBackground": "#40002F", 66 | "editor.lineHighlightBackground": "#00000012", 67 | "editorCursor.foreground": "#7F005D", 68 | "editorWhitespace.foreground": "#BFBFBF" 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /themes/Textmate (Mac Classic).json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "0066ff", 7 | "fontStyle": "italic", 8 | "token": "comment" 9 | }, 10 | { 11 | "foreground": "bfbfbf", 12 | "token": "deco.folding" 13 | }, 14 | { 15 | "foreground": "0000ff", 16 | "fontStyle": "bold", 17 | "token": "keyword" 18 | }, 19 | { 20 | "foreground": "0000ff", 21 | "fontStyle": "bold", 22 | "token": "storage" 23 | }, 24 | { 25 | "foreground": "0000cd", 26 | "token": "constant.numeric" 27 | }, 28 | { 29 | "foreground": "c5060b", 30 | "fontStyle": "bold", 31 | "token": "constant" 32 | }, 33 | { 34 | "foreground": "585cf6", 35 | "fontStyle": "bold", 36 | "token": "constant.language" 37 | }, 38 | { 39 | "foreground": "318495", 40 | "token": "variable.language" 41 | }, 42 | { 43 | "foreground": "318495", 44 | "token": "variable.other" 45 | }, 46 | { 47 | "foreground": "036a07", 48 | "token": "string" 49 | }, 50 | { 51 | "foreground": "26b31a", 52 | "token": "constant.character.escape" 53 | }, 54 | { 55 | "foreground": "26b31a", 56 | "token": "string meta.embedded" 57 | }, 58 | { 59 | "foreground": "1a921c", 60 | "token": "meta.preprocessor" 61 | }, 62 | { 63 | "foreground": "0c450d", 64 | "fontStyle": "bold", 65 | "token": "keyword.control.import" 66 | }, 67 | { 68 | "foreground": "0000a2", 69 | "fontStyle": "bold", 70 | "token": "entity.name.function" 71 | }, 72 | { 73 | "foreground": "0000a2", 74 | "fontStyle": "bold", 75 | "token": "support.function.any-method" 76 | }, 77 | { 78 | "fontStyle": "underline", 79 | "token": "entity.name.type" 80 | }, 81 | { 82 | "fontStyle": "italic", 83 | "token": "entity.other.inherited-class" 84 | }, 85 | { 86 | "fontStyle": "italic", 87 | "token": "variable.parameter" 88 | }, 89 | { 90 | "foreground": "70727e", 91 | "token": "storage.type.method" 92 | }, 93 | { 94 | "fontStyle": "italic", 95 | "token": "meta.section entity.name.section" 96 | }, 97 | { 98 | "fontStyle": "italic", 99 | "token": "declaration.section entity.name.section" 100 | }, 101 | { 102 | "foreground": "3c4c72", 103 | "fontStyle": "bold", 104 | "token": "support.function" 105 | }, 106 | { 107 | "foreground": "6d79de", 108 | "fontStyle": "bold", 109 | "token": "support.class" 110 | }, 111 | { 112 | "foreground": "6d79de", 113 | "fontStyle": "bold", 114 | "token": "support.type" 115 | }, 116 | { 117 | "foreground": "06960e", 118 | "fontStyle": "bold", 119 | "token": "support.constant" 120 | }, 121 | { 122 | "foreground": "21439c", 123 | "fontStyle": "bold", 124 | "token": "support.variable" 125 | }, 126 | { 127 | "foreground": "687687", 128 | "token": "keyword.operator.js" 129 | }, 130 | { 131 | "foreground": "ffffff", 132 | "background": "990000", 133 | "token": "invalid" 134 | }, 135 | { 136 | "background": "ffd0d0", 137 | "token": "invalid.deprecated.trailing-whitespace" 138 | }, 139 | { 140 | "background": "0000000d", 141 | "token": "text source" 142 | }, 143 | { 144 | "background": "0000000d", 145 | "token": "string.unquoted" 146 | }, 147 | { 148 | "background": "0000000d", 149 | "token": "meta.embedded" 150 | }, 151 | { 152 | "background": "0000000f", 153 | "token": "text source string.unquoted" 154 | }, 155 | { 156 | "background": "0000000f", 157 | "token": "text source text source" 158 | }, 159 | { 160 | "foreground": "68685b", 161 | "token": "meta.tag.preprocessor.xml" 162 | }, 163 | { 164 | "foreground": "888888", 165 | "token": "meta.tag.metadata.doctype" 166 | }, 167 | { 168 | "foreground": "888888", 169 | "token": "meta.tag.metadata.doctype entity" 170 | }, 171 | { 172 | "foreground": "888888", 173 | "token": "meta.tag.metadata.doctype string" 174 | }, 175 | { 176 | "foreground": "888888", 177 | "token": "meta.tag.metadata.processing.xml" 178 | }, 179 | { 180 | "foreground": "888888", 181 | "token": "meta.tag.metadata.processing.xml entity" 182 | }, 183 | { 184 | "foreground": "888888", 185 | "token": "meta.tag.metadata.processing.xml string" 186 | }, 187 | { 188 | "fontStyle": "italic", 189 | "token": "meta.tag.metadata.doctype string.quoted" 190 | }, 191 | { 192 | "foreground": "1c02ff", 193 | "token": "meta.tag" 194 | }, 195 | { 196 | "foreground": "1c02ff", 197 | "token": "declaration.tag" 198 | }, 199 | { 200 | "fontStyle": "bold", 201 | "token": "entity.name.tag" 202 | }, 203 | { 204 | "fontStyle": "italic", 205 | "token": "entity.other.attribute-name" 206 | }, 207 | { 208 | "foreground": "0c07ff", 209 | "fontStyle": "bold", 210 | "token": "markup.heading" 211 | }, 212 | { 213 | "foreground": "000000", 214 | "fontStyle": "italic", 215 | "token": "markup.quote" 216 | }, 217 | { 218 | "foreground": "b90690", 219 | "token": "markup.list" 220 | } 221 | ], 222 | "colors": { 223 | "editor.foreground": "#000000", 224 | "editor.background": "#FFFFFF", 225 | "editor.selectionBackground": "#4D97FF54", 226 | "editor.lineHighlightBackground": "#00000012", 227 | "editorCursor.foreground": "#000000", 228 | "editorWhitespace.foreground": "#BFBFBF" 229 | } 230 | } 231 | -------------------------------------------------------------------------------- /themes/Tomorrow-Night-Blue.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "7285b7", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "ffffff", 11 | "token": "keyword.operator.class" 12 | }, 13 | { 14 | "foreground": "ffffff", 15 | "token": "keyword.operator" 16 | }, 17 | { 18 | "foreground": "ffffff", 19 | "token": "constant.other" 20 | }, 21 | { 22 | "foreground": "ffffff", 23 | "token": "source.php.embedded.line" 24 | }, 25 | { 26 | "foreground": "ff9da4", 27 | "token": "variable" 28 | }, 29 | { 30 | "foreground": "ff9da4", 31 | "token": "support.other.variable" 32 | }, 33 | { 34 | "foreground": "ff9da4", 35 | "token": "string.other.link" 36 | }, 37 | { 38 | "foreground": "ff9da4", 39 | "token": "string.regexp" 40 | }, 41 | { 42 | "foreground": "ff9da4", 43 | "token": "entity.name.tag" 44 | }, 45 | { 46 | "foreground": "ff9da4", 47 | "token": "entity.other.attribute-name" 48 | }, 49 | { 50 | "foreground": "ff9da4", 51 | "token": "meta.tag" 52 | }, 53 | { 54 | "foreground": "ff9da4", 55 | "token": "declaration.tag" 56 | }, 57 | { 58 | "foreground": "ff9da4", 59 | "token": "markup.deleted.git_gutter" 60 | }, 61 | { 62 | "foreground": "ffc58f", 63 | "token": "constant.numeric" 64 | }, 65 | { 66 | "foreground": "ffc58f", 67 | "token": "constant.language" 68 | }, 69 | { 70 | "foreground": "ffc58f", 71 | "token": "support.constant" 72 | }, 73 | { 74 | "foreground": "ffc58f", 75 | "token": "constant.character" 76 | }, 77 | { 78 | "foreground": "ffc58f", 79 | "token": "variable.parameter" 80 | }, 81 | { 82 | "foreground": "ffc58f", 83 | "token": "punctuation.section.embedded" 84 | }, 85 | { 86 | "foreground": "ffc58f", 87 | "token": "keyword.other.unit" 88 | }, 89 | { 90 | "foreground": "ffeead", 91 | "token": "entity.name.class" 92 | }, 93 | { 94 | "foreground": "ffeead", 95 | "token": "entity.name.type.class" 96 | }, 97 | { 98 | "foreground": "ffeead", 99 | "token": "support.type" 100 | }, 101 | { 102 | "foreground": "ffeead", 103 | "token": "support.class" 104 | }, 105 | { 106 | "foreground": "d1f1a9", 107 | "token": "string" 108 | }, 109 | { 110 | "foreground": "d1f1a9", 111 | "token": "constant.other.symbol" 112 | }, 113 | { 114 | "foreground": "d1f1a9", 115 | "token": "entity.other.inherited-class" 116 | }, 117 | { 118 | "foreground": "d1f1a9", 119 | "token": "markup.heading" 120 | }, 121 | { 122 | "foreground": "d1f1a9", 123 | "token": "markup.inserted.git_gutter" 124 | }, 125 | { 126 | "foreground": "99ffff", 127 | "token": "keyword.operator" 128 | }, 129 | { 130 | "foreground": "99ffff", 131 | "token": "constant.other.color" 132 | }, 133 | { 134 | "foreground": "bbdaff", 135 | "token": "entity.name.function" 136 | }, 137 | { 138 | "foreground": "bbdaff", 139 | "token": "meta.function-call" 140 | }, 141 | { 142 | "foreground": "bbdaff", 143 | "token": "support.function" 144 | }, 145 | { 146 | "foreground": "bbdaff", 147 | "token": "keyword.other.special-method" 148 | }, 149 | { 150 | "foreground": "bbdaff", 151 | "token": "meta.block-level" 152 | }, 153 | { 154 | "foreground": "bbdaff", 155 | "token": "markup.changed.git_gutter" 156 | }, 157 | { 158 | "foreground": "ebbbff", 159 | "token": "keyword" 160 | }, 161 | { 162 | "foreground": "ebbbff", 163 | "token": "storage" 164 | }, 165 | { 166 | "foreground": "ebbbff", 167 | "token": "storage.type" 168 | }, 169 | { 170 | "foreground": "ebbbff", 171 | "token": "entity.name.tag.css" 172 | }, 173 | { 174 | "foreground": "ffffff", 175 | "background": "f99da5", 176 | "token": "invalid" 177 | }, 178 | { 179 | "foreground": "ffffff", 180 | "background": "bbdafe", 181 | "token": "meta.separator" 182 | }, 183 | { 184 | "foreground": "ffffff", 185 | "background": "ebbbff", 186 | "token": "invalid.deprecated" 187 | }, 188 | { 189 | "foreground": "ffffff", 190 | "token": "markup.inserted.diff" 191 | }, 192 | { 193 | "foreground": "ffffff", 194 | "token": "markup.deleted.diff" 195 | }, 196 | { 197 | "foreground": "ffffff", 198 | "token": "meta.diff.header.to-file" 199 | }, 200 | { 201 | "foreground": "ffffff", 202 | "token": "meta.diff.header.from-file" 203 | }, 204 | { 205 | "foreground": "718c00", 206 | "token": "markup.inserted.diff" 207 | }, 208 | { 209 | "foreground": "718c00", 210 | "token": "meta.diff.header.to-file" 211 | }, 212 | { 213 | "foreground": "c82829", 214 | "token": "markup.deleted.diff" 215 | }, 216 | { 217 | "foreground": "c82829", 218 | "token": "meta.diff.header.from-file" 219 | }, 220 | { 221 | "foreground": "ffffff", 222 | "background": "4271ae", 223 | "token": "meta.diff.header.from-file" 224 | }, 225 | { 226 | "foreground": "ffffff", 227 | "background": "4271ae", 228 | "token": "meta.diff.header.to-file" 229 | }, 230 | { 231 | "foreground": "3e999f", 232 | "fontStyle": "italic", 233 | "token": "meta.diff.range" 234 | } 235 | ], 236 | "colors": { 237 | "editor.foreground": "#FFFFFF", 238 | "editor.background": "#002451", 239 | "editor.selectionBackground": "#003F8E", 240 | "editor.lineHighlightBackground": "#00346E", 241 | "editorCursor.foreground": "#FFFFFF", 242 | "editorWhitespace.foreground": "#404F7D" 243 | } 244 | } 245 | -------------------------------------------------------------------------------- /themes/Tomorrow-Night-Bright.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "969896", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "eeeeee", 11 | "token": "keyword.operator.class" 12 | }, 13 | { 14 | "foreground": "eeeeee", 15 | "token": "constant.other" 16 | }, 17 | { 18 | "foreground": "eeeeee", 19 | "token": "source.php.embedded.line" 20 | }, 21 | { 22 | "foreground": "d54e53", 23 | "token": "variable" 24 | }, 25 | { 26 | "foreground": "d54e53", 27 | "token": "support.other.variable" 28 | }, 29 | { 30 | "foreground": "d54e53", 31 | "token": "string.other.link" 32 | }, 33 | { 34 | "foreground": "d54e53", 35 | "token": "string.regexp" 36 | }, 37 | { 38 | "foreground": "d54e53", 39 | "token": "entity.name.tag" 40 | }, 41 | { 42 | "foreground": "d54e53", 43 | "token": "entity.other.attribute-name" 44 | }, 45 | { 46 | "foreground": "d54e53", 47 | "token": "meta.tag" 48 | }, 49 | { 50 | "foreground": "d54e53", 51 | "token": "declaration.tag" 52 | }, 53 | { 54 | "foreground": "d54e53", 55 | "token": "markup.deleted.git_gutter" 56 | }, 57 | { 58 | "foreground": "e78c45", 59 | "token": "constant.numeric" 60 | }, 61 | { 62 | "foreground": "e78c45", 63 | "token": "constant.language" 64 | }, 65 | { 66 | "foreground": "e78c45", 67 | "token": "support.constant" 68 | }, 69 | { 70 | "foreground": "e78c45", 71 | "token": "constant.character" 72 | }, 73 | { 74 | "foreground": "e78c45", 75 | "token": "variable.parameter" 76 | }, 77 | { 78 | "foreground": "e78c45", 79 | "token": "punctuation.section.embedded" 80 | }, 81 | { 82 | "foreground": "e78c45", 83 | "token": "keyword.other.unit" 84 | }, 85 | { 86 | "foreground": "e7c547", 87 | "token": "entity.name.class" 88 | }, 89 | { 90 | "foreground": "e7c547", 91 | "token": "entity.name.type.class" 92 | }, 93 | { 94 | "foreground": "e7c547", 95 | "token": "support.type" 96 | }, 97 | { 98 | "foreground": "e7c547", 99 | "token": "support.class" 100 | }, 101 | { 102 | "foreground": "b9ca4a", 103 | "token": "string" 104 | }, 105 | { 106 | "foreground": "b9ca4a", 107 | "token": "constant.other.symbol" 108 | }, 109 | { 110 | "foreground": "b9ca4a", 111 | "token": "entity.other.inherited-class" 112 | }, 113 | { 114 | "foreground": "b9ca4a", 115 | "token": "markup.heading" 116 | }, 117 | { 118 | "foreground": "b9ca4a", 119 | "token": "markup.inserted.git_gutter" 120 | }, 121 | { 122 | "foreground": "70c0b1", 123 | "token": "keyword.operator" 124 | }, 125 | { 126 | "foreground": "70c0b1", 127 | "token": "constant.other.color" 128 | }, 129 | { 130 | "foreground": "7aa6da", 131 | "token": "entity.name.function" 132 | }, 133 | { 134 | "foreground": "7aa6da", 135 | "token": "meta.function-call" 136 | }, 137 | { 138 | "foreground": "7aa6da", 139 | "token": "support.function" 140 | }, 141 | { 142 | "foreground": "7aa6da", 143 | "token": "keyword.other.special-method" 144 | }, 145 | { 146 | "foreground": "7aa6da", 147 | "token": "meta.block-level" 148 | }, 149 | { 150 | "foreground": "7aa6da", 151 | "token": "markup.changed.git_gutter" 152 | }, 153 | { 154 | "foreground": "c397d8", 155 | "token": "keyword" 156 | }, 157 | { 158 | "foreground": "c397d8", 159 | "token": "storage" 160 | }, 161 | { 162 | "foreground": "c397d8", 163 | "token": "storage.type" 164 | }, 165 | { 166 | "foreground": "c397d8", 167 | "token": "entity.name.tag.css" 168 | }, 169 | { 170 | "foreground": "ced2cf", 171 | "background": "df5f5f", 172 | "token": "invalid" 173 | }, 174 | { 175 | "foreground": "ced2cf", 176 | "background": "82a3bf", 177 | "token": "meta.separator" 178 | }, 179 | { 180 | "foreground": "ced2cf", 181 | "background": "b798bf", 182 | "token": "invalid.deprecated" 183 | }, 184 | { 185 | "foreground": "ffffff", 186 | "token": "markup.inserted.diff" 187 | }, 188 | { 189 | "foreground": "ffffff", 190 | "token": "markup.deleted.diff" 191 | }, 192 | { 193 | "foreground": "ffffff", 194 | "token": "meta.diff.header.to-file" 195 | }, 196 | { 197 | "foreground": "ffffff", 198 | "token": "meta.diff.header.from-file" 199 | }, 200 | { 201 | "foreground": "718c00", 202 | "token": "markup.inserted.diff" 203 | }, 204 | { 205 | "foreground": "718c00", 206 | "token": "meta.diff.header.to-file" 207 | }, 208 | { 209 | "foreground": "c82829", 210 | "token": "markup.deleted.diff" 211 | }, 212 | { 213 | "foreground": "c82829", 214 | "token": "meta.diff.header.from-file" 215 | }, 216 | { 217 | "foreground": "ffffff", 218 | "background": "4271ae", 219 | "token": "meta.diff.header.from-file" 220 | }, 221 | { 222 | "foreground": "ffffff", 223 | "background": "4271ae", 224 | "token": "meta.diff.header.to-file" 225 | }, 226 | { 227 | "foreground": "3e999f", 228 | "fontStyle": "italic", 229 | "token": "meta.diff.range" 230 | } 231 | ], 232 | "colors": { 233 | "editor.foreground": "#DEDEDE", 234 | "editor.background": "#000000", 235 | "editor.selectionBackground": "#424242", 236 | "editor.lineHighlightBackground": "#2A2A2A", 237 | "editorCursor.foreground": "#9F9F9F", 238 | "editorWhitespace.foreground": "#343434" 239 | } 240 | } 241 | -------------------------------------------------------------------------------- /themes/Tomorrow-Night-Eighties.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "999999", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "cccccc", 11 | "token": "keyword.operator.class" 12 | }, 13 | { 14 | "foreground": "cccccc", 15 | "token": "constant.other" 16 | }, 17 | { 18 | "foreground": "cccccc", 19 | "token": "source.php.embedded.line" 20 | }, 21 | { 22 | "foreground": "f2777a", 23 | "token": "variable" 24 | }, 25 | { 26 | "foreground": "f2777a", 27 | "token": "support.other.variable" 28 | }, 29 | { 30 | "foreground": "f2777a", 31 | "token": "string.other.link" 32 | }, 33 | { 34 | "foreground": "f2777a", 35 | "token": "entity.name.tag" 36 | }, 37 | { 38 | "foreground": "f2777a", 39 | "token": "entity.other.attribute-name" 40 | }, 41 | { 42 | "foreground": "f2777a", 43 | "token": "meta.tag" 44 | }, 45 | { 46 | "foreground": "f2777a", 47 | "token": "declaration.tag" 48 | }, 49 | { 50 | "foreground": "f2777a", 51 | "token": "markup.deleted.git_gutter" 52 | }, 53 | { 54 | "foreground": "f99157", 55 | "token": "constant.numeric" 56 | }, 57 | { 58 | "foreground": "f99157", 59 | "token": "constant.language" 60 | }, 61 | { 62 | "foreground": "f99157", 63 | "token": "support.constant" 64 | }, 65 | { 66 | "foreground": "f99157", 67 | "token": "constant.character" 68 | }, 69 | { 70 | "foreground": "f99157", 71 | "token": "variable.parameter" 72 | }, 73 | { 74 | "foreground": "f99157", 75 | "token": "punctuation.section.embedded" 76 | }, 77 | { 78 | "foreground": "f99157", 79 | "token": "keyword.other.unit" 80 | }, 81 | { 82 | "foreground": "ffcc66", 83 | "token": "entity.name.class" 84 | }, 85 | { 86 | "foreground": "ffcc66", 87 | "token": "entity.name.type.class" 88 | }, 89 | { 90 | "foreground": "ffcc66", 91 | "token": "support.type" 92 | }, 93 | { 94 | "foreground": "ffcc66", 95 | "token": "support.class" 96 | }, 97 | { 98 | "foreground": "99cc99", 99 | "token": "string" 100 | }, 101 | { 102 | "foreground": "99cc99", 103 | "token": "constant.other.symbol" 104 | }, 105 | { 106 | "foreground": "99cc99", 107 | "token": "entity.other.inherited-class" 108 | }, 109 | { 110 | "foreground": "99cc99", 111 | "token": "markup.heading" 112 | }, 113 | { 114 | "foreground": "99cc99", 115 | "token": "markup.inserted.git_gutter" 116 | }, 117 | { 118 | "foreground": "66cccc", 119 | "token": "keyword.operator" 120 | }, 121 | { 122 | "foreground": "66cccc", 123 | "token": "constant.other.color" 124 | }, 125 | { 126 | "foreground": "6699cc", 127 | "token": "entity.name.function" 128 | }, 129 | { 130 | "foreground": "6699cc", 131 | "token": "meta.function-call" 132 | }, 133 | { 134 | "foreground": "6699cc", 135 | "token": "support.function" 136 | }, 137 | { 138 | "foreground": "6699cc", 139 | "token": "keyword.other.special-method" 140 | }, 141 | { 142 | "foreground": "6699cc", 143 | "token": "meta.block-level" 144 | }, 145 | { 146 | "foreground": "6699cc", 147 | "token": "markup.changed.git_gutter" 148 | }, 149 | { 150 | "foreground": "cc99cc", 151 | "token": "keyword" 152 | }, 153 | { 154 | "foreground": "cc99cc", 155 | "token": "storage" 156 | }, 157 | { 158 | "foreground": "cc99cc", 159 | "token": "storage.type" 160 | }, 161 | { 162 | "foreground": "cc99cc", 163 | "token": "entity.name.tag.css" 164 | }, 165 | { 166 | "foreground": "cdcdcd", 167 | "background": "f2777a", 168 | "token": "invalid" 169 | }, 170 | { 171 | "foreground": "cdcdcd", 172 | "background": "99cccc", 173 | "token": "meta.separator" 174 | }, 175 | { 176 | "foreground": "cdcdcd", 177 | "background": "cc99cc", 178 | "token": "invalid.deprecated" 179 | }, 180 | { 181 | "foreground": "ffffff", 182 | "token": "markup.inserted.diff" 183 | }, 184 | { 185 | "foreground": "ffffff", 186 | "token": "markup.deleted.diff" 187 | }, 188 | { 189 | "foreground": "ffffff", 190 | "token": "meta.diff.header.to-file" 191 | }, 192 | { 193 | "foreground": "ffffff", 194 | "token": "meta.diff.header.from-file" 195 | }, 196 | { 197 | "foreground": "718c00", 198 | "token": "markup.inserted.diff" 199 | }, 200 | { 201 | "foreground": "718c00", 202 | "token": "meta.diff.header.to-file" 203 | }, 204 | { 205 | "foreground": "c82829", 206 | "token": "markup.deleted.diff" 207 | }, 208 | { 209 | "foreground": "c82829", 210 | "token": "meta.diff.header.from-file" 211 | }, 212 | { 213 | "foreground": "ffffff", 214 | "background": "4271ae", 215 | "token": "meta.diff.header.from-file" 216 | }, 217 | { 218 | "foreground": "ffffff", 219 | "background": "4271ae", 220 | "token": "meta.diff.header.to-file" 221 | }, 222 | { 223 | "foreground": "3e999f", 224 | "fontStyle": "italic", 225 | "token": "meta.diff.range" 226 | } 227 | ], 228 | "colors": { 229 | "editor.foreground": "#CCCCCC", 230 | "editor.background": "#2D2D2D", 231 | "editor.selectionBackground": "#515151", 232 | "editor.lineHighlightBackground": "#393939", 233 | "editorCursor.foreground": "#CCCCCC", 234 | "editorWhitespace.foreground": "#6A6A6A" 235 | } 236 | } 237 | -------------------------------------------------------------------------------- /themes/Tomorrow-Night.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "969896", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "ced1cf", 11 | "token": "keyword.operator.class" 12 | }, 13 | { 14 | "foreground": "ced1cf", 15 | "token": "constant.other" 16 | }, 17 | { 18 | "foreground": "ced1cf", 19 | "token": "source.php.embedded.line" 20 | }, 21 | { 22 | "foreground": "cc6666", 23 | "token": "variable" 24 | }, 25 | { 26 | "foreground": "cc6666", 27 | "token": "support.other.variable" 28 | }, 29 | { 30 | "foreground": "cc6666", 31 | "token": "string.other.link" 32 | }, 33 | { 34 | "foreground": "cc6666", 35 | "token": "string.regexp" 36 | }, 37 | { 38 | "foreground": "cc6666", 39 | "token": "entity.name.tag" 40 | }, 41 | { 42 | "foreground": "cc6666", 43 | "token": "entity.other.attribute-name" 44 | }, 45 | { 46 | "foreground": "cc6666", 47 | "token": "meta.tag" 48 | }, 49 | { 50 | "foreground": "cc6666", 51 | "token": "declaration.tag" 52 | }, 53 | { 54 | "foreground": "cc6666", 55 | "token": "markup.deleted.git_gutter" 56 | }, 57 | { 58 | "foreground": "de935f", 59 | "token": "constant.numeric" 60 | }, 61 | { 62 | "foreground": "de935f", 63 | "token": "constant.language" 64 | }, 65 | { 66 | "foreground": "de935f", 67 | "token": "support.constant" 68 | }, 69 | { 70 | "foreground": "de935f", 71 | "token": "constant.character" 72 | }, 73 | { 74 | "foreground": "de935f", 75 | "token": "variable.parameter" 76 | }, 77 | { 78 | "foreground": "de935f", 79 | "token": "punctuation.section.embedded" 80 | }, 81 | { 82 | "foreground": "de935f", 83 | "token": "keyword.other.unit" 84 | }, 85 | { 86 | "foreground": "f0c674", 87 | "token": "entity.name.class" 88 | }, 89 | { 90 | "foreground": "f0c674", 91 | "token": "entity.name.type.class" 92 | }, 93 | { 94 | "foreground": "f0c674", 95 | "token": "support.type" 96 | }, 97 | { 98 | "foreground": "f0c674", 99 | "token": "support.class" 100 | }, 101 | { 102 | "foreground": "b5bd68", 103 | "token": "string" 104 | }, 105 | { 106 | "foreground": "b5bd68", 107 | "token": "constant.other.symbol" 108 | }, 109 | { 110 | "foreground": "b5bd68", 111 | "token": "entity.other.inherited-class" 112 | }, 113 | { 114 | "foreground": "b5bd68", 115 | "token": "markup.heading" 116 | }, 117 | { 118 | "foreground": "b5bd68", 119 | "token": "markup.inserted.git_gutter" 120 | }, 121 | { 122 | "foreground": "8abeb7", 123 | "token": "keyword.operator" 124 | }, 125 | { 126 | "foreground": "8abeb7", 127 | "token": "constant.other.color" 128 | }, 129 | { 130 | "foreground": "81a2be", 131 | "token": "entity.name.function" 132 | }, 133 | { 134 | "foreground": "81a2be", 135 | "token": "meta.function-call" 136 | }, 137 | { 138 | "foreground": "81a2be", 139 | "token": "support.function" 140 | }, 141 | { 142 | "foreground": "81a2be", 143 | "token": "keyword.other.special-method" 144 | }, 145 | { 146 | "foreground": "81a2be", 147 | "token": "meta.block-level" 148 | }, 149 | { 150 | "foreground": "81a2be", 151 | "token": "markup.changed.git_gutter" 152 | }, 153 | { 154 | "foreground": "b294bb", 155 | "token": "keyword" 156 | }, 157 | { 158 | "foreground": "b294bb", 159 | "token": "storage" 160 | }, 161 | { 162 | "foreground": "b294bb", 163 | "token": "storage.type" 164 | }, 165 | { 166 | "foreground": "b294bb", 167 | "token": "entity.name.tag.css" 168 | }, 169 | { 170 | "foreground": "ced2cf", 171 | "background": "df5f5f", 172 | "token": "invalid" 173 | }, 174 | { 175 | "foreground": "ced2cf", 176 | "background": "82a3bf", 177 | "token": "meta.separator" 178 | }, 179 | { 180 | "foreground": "ced2cf", 181 | "background": "b798bf", 182 | "token": "invalid.deprecated" 183 | }, 184 | { 185 | "foreground": "ffffff", 186 | "token": "markup.inserted.diff" 187 | }, 188 | { 189 | "foreground": "ffffff", 190 | "token": "markup.deleted.diff" 191 | }, 192 | { 193 | "foreground": "ffffff", 194 | "token": "meta.diff.header.to-file" 195 | }, 196 | { 197 | "foreground": "ffffff", 198 | "token": "meta.diff.header.from-file" 199 | }, 200 | { 201 | "foreground": "718c00", 202 | "token": "markup.inserted.diff" 203 | }, 204 | { 205 | "foreground": "718c00", 206 | "token": "meta.diff.header.to-file" 207 | }, 208 | { 209 | "foreground": "c82829", 210 | "token": "markup.deleted.diff" 211 | }, 212 | { 213 | "foreground": "c82829", 214 | "token": "meta.diff.header.from-file" 215 | }, 216 | { 217 | "foreground": "ffffff", 218 | "background": "4271ae", 219 | "token": "meta.diff.header.from-file" 220 | }, 221 | { 222 | "foreground": "ffffff", 223 | "background": "4271ae", 224 | "token": "meta.diff.header.to-file" 225 | }, 226 | { 227 | "foreground": "3e999f", 228 | "fontStyle": "italic", 229 | "token": "meta.diff.range" 230 | } 231 | ], 232 | "colors": { 233 | "editor.foreground": "#C5C8C6", 234 | "editor.background": "#1D1F21", 235 | "editor.selectionBackground": "#373B41", 236 | "editor.lineHighlightBackground": "#282A2E", 237 | "editorCursor.foreground": "#AEAFAD", 238 | "editorWhitespace.foreground": "#4B4E55" 239 | } 240 | } 241 | -------------------------------------------------------------------------------- /themes/Tomorrow.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "8e908c", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "666969", 11 | "token": "keyword.operator.class" 12 | }, 13 | { 14 | "foreground": "666969", 15 | "token": "constant.other" 16 | }, 17 | { 18 | "foreground": "666969", 19 | "token": "source.php.embedded.line" 20 | }, 21 | { 22 | "foreground": "c82829", 23 | "token": "variable" 24 | }, 25 | { 26 | "foreground": "c82829", 27 | "token": "support.other.variable" 28 | }, 29 | { 30 | "foreground": "c82829", 31 | "token": "string.other.link" 32 | }, 33 | { 34 | "foreground": "c82829", 35 | "token": "string.regexp" 36 | }, 37 | { 38 | "foreground": "c82829", 39 | "token": "entity.name.tag" 40 | }, 41 | { 42 | "foreground": "c82829", 43 | "token": "entity.other.attribute-name" 44 | }, 45 | { 46 | "foreground": "c82829", 47 | "token": "meta.tag" 48 | }, 49 | { 50 | "foreground": "c82829", 51 | "token": "declaration.tag" 52 | }, 53 | { 54 | "foreground": "c82829", 55 | "token": "markup.deleted.git_gutter" 56 | }, 57 | { 58 | "foreground": "f5871f", 59 | "token": "constant.numeric" 60 | }, 61 | { 62 | "foreground": "f5871f", 63 | "token": "constant.language" 64 | }, 65 | { 66 | "foreground": "f5871f", 67 | "token": "support.constant" 68 | }, 69 | { 70 | "foreground": "f5871f", 71 | "token": "constant.character" 72 | }, 73 | { 74 | "foreground": "f5871f", 75 | "token": "variable.parameter" 76 | }, 77 | { 78 | "foreground": "f5871f", 79 | "token": "punctuation.section.embedded" 80 | }, 81 | { 82 | "foreground": "f5871f", 83 | "token": "keyword.other.unit" 84 | }, 85 | { 86 | "foreground": "c99e00", 87 | "token": "entity.name.class" 88 | }, 89 | { 90 | "foreground": "c99e00", 91 | "token": "entity.name.type.class" 92 | }, 93 | { 94 | "foreground": "c99e00", 95 | "token": "support.type" 96 | }, 97 | { 98 | "foreground": "c99e00", 99 | "token": "support.class" 100 | }, 101 | { 102 | "foreground": "718c00", 103 | "token": "string" 104 | }, 105 | { 106 | "foreground": "718c00", 107 | "token": "constant.other.symbol" 108 | }, 109 | { 110 | "foreground": "718c00", 111 | "token": "entity.other.inherited-class" 112 | }, 113 | { 114 | "foreground": "718c00", 115 | "token": "markup.heading" 116 | }, 117 | { 118 | "foreground": "718c00", 119 | "token": "markup.inserted.git_gutter" 120 | }, 121 | { 122 | "foreground": "3e999f", 123 | "token": "keyword.operator" 124 | }, 125 | { 126 | "foreground": "3e999f", 127 | "token": "constant.other.color" 128 | }, 129 | { 130 | "foreground": "4271ae", 131 | "token": "entity.name.function" 132 | }, 133 | { 134 | "foreground": "4271ae", 135 | "token": "meta.function-call" 136 | }, 137 | { 138 | "foreground": "4271ae", 139 | "token": "support.function" 140 | }, 141 | { 142 | "foreground": "4271ae", 143 | "token": "keyword.other.special-method" 144 | }, 145 | { 146 | "foreground": "4271ae", 147 | "token": "meta.block-level" 148 | }, 149 | { 150 | "foreground": "4271ae", 151 | "token": "markup.changed.git_gutter" 152 | }, 153 | { 154 | "foreground": "8959a8", 155 | "token": "keyword" 156 | }, 157 | { 158 | "foreground": "8959a8", 159 | "token": "storage" 160 | }, 161 | { 162 | "foreground": "8959a8", 163 | "token": "storage.type" 164 | }, 165 | { 166 | "foreground": "ffffff", 167 | "background": "c82829", 168 | "token": "invalid" 169 | }, 170 | { 171 | "foreground": "ffffff", 172 | "background": "4271ae", 173 | "token": "meta.separator" 174 | }, 175 | { 176 | "foreground": "ffffff", 177 | "background": "8959a8", 178 | "token": "invalid.deprecated" 179 | }, 180 | { 181 | "foreground": "ffffff", 182 | "token": "markup.inserted.diff" 183 | }, 184 | { 185 | "foreground": "ffffff", 186 | "token": "markup.deleted.diff" 187 | }, 188 | { 189 | "foreground": "ffffff", 190 | "token": "meta.diff.header.to-file" 191 | }, 192 | { 193 | "foreground": "ffffff", 194 | "token": "meta.diff.header.from-file" 195 | }, 196 | { 197 | "background": "718c00", 198 | "token": "markup.inserted.diff" 199 | }, 200 | { 201 | "background": "718c00", 202 | "token": "meta.diff.header.to-file" 203 | }, 204 | { 205 | "background": "c82829", 206 | "token": "markup.deleted.diff" 207 | }, 208 | { 209 | "background": "c82829", 210 | "token": "meta.diff.header.from-file" 211 | }, 212 | { 213 | "foreground": "ffffff", 214 | "background": "4271ae", 215 | "token": "meta.diff.header.from-file" 216 | }, 217 | { 218 | "foreground": "ffffff", 219 | "background": "4271ae", 220 | "token": "meta.diff.header.to-file" 221 | }, 222 | { 223 | "foreground": "3e999f", 224 | "fontStyle": "italic", 225 | "token": "meta.diff.range" 226 | } 227 | ], 228 | "colors": { 229 | "editor.foreground": "#4D4D4C", 230 | "editor.background": "#FFFFFF", 231 | "editor.selectionBackground": "#D6D6D6", 232 | "editor.lineHighlightBackground": "#EFEFEF", 233 | "editorCursor.foreground": "#AEAFAD", 234 | "editorWhitespace.foreground": "#D1D1D1" 235 | } 236 | } 237 | -------------------------------------------------------------------------------- /themes/Vibrant Ink.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "ffffff", 7 | "background": "0f0f0f", 8 | "token": "text" 9 | }, 10 | { 11 | "background": "000000", 12 | "token": "source.ruby.rails.embedded.html" 13 | }, 14 | { 15 | "foreground": "ffffff", 16 | "background": "101010", 17 | "token": "text.html.ruby" 18 | }, 19 | { 20 | "foreground": "ccff33", 21 | "token": "constant.numeric.ruby" 22 | }, 23 | { 24 | "foreground": "ffffff", 25 | "background": "000000", 26 | "token": "source" 27 | }, 28 | { 29 | "foreground": "9933cc", 30 | "token": "comment" 31 | }, 32 | { 33 | "foreground": "339999", 34 | "token": "constant" 35 | }, 36 | { 37 | "foreground": "ff6600", 38 | "token": "keyword" 39 | }, 40 | { 41 | "foreground": "edf8f9", 42 | "token": "keyword.preprocessor" 43 | }, 44 | { 45 | "foreground": "ffffff", 46 | "token": "keyword.preprocessor directive" 47 | }, 48 | { 49 | "foreground": "ffcc00", 50 | "token": "entity.name.function" 51 | }, 52 | { 53 | "foreground": "ffcc00", 54 | "token": "storage.type.function.js" 55 | }, 56 | { 57 | "fontStyle": "italic", 58 | "token": "variable.parameter" 59 | }, 60 | { 61 | "foreground": "772cb7", 62 | "background": "070707", 63 | "token": "source comment.block" 64 | }, 65 | { 66 | "foreground": "ffffff", 67 | "token": "variable.other" 68 | }, 69 | { 70 | "foreground": "999966", 71 | "token": "support.function.activerecord.rails" 72 | }, 73 | { 74 | "foreground": "66ff00", 75 | "token": "string" 76 | }, 77 | { 78 | "foreground": "aaaaaa", 79 | "token": "string constant.character.escape" 80 | }, 81 | { 82 | "foreground": "000000", 83 | "background": "cccc33", 84 | "token": "string.interpolated" 85 | }, 86 | { 87 | "foreground": "44b4cc", 88 | "token": "string.regexp" 89 | }, 90 | { 91 | "foreground": "cccc33", 92 | "token": "string.literal" 93 | }, 94 | { 95 | "foreground": "555555", 96 | "token": "string.interpolated constant.character.escape" 97 | }, 98 | { 99 | "fontStyle": "underline", 100 | "token": "entity.name.class" 101 | }, 102 | { 103 | "fontStyle": "underline", 104 | "token": "support.class.js" 105 | }, 106 | { 107 | "fontStyle": "italic underline", 108 | "token": "entity.other.inherited-class" 109 | }, 110 | { 111 | "foreground": "ff6600", 112 | "token": "meta.tag.inline.any.html" 113 | }, 114 | { 115 | "foreground": "ff6600", 116 | "token": "meta.tag.block.any.html" 117 | }, 118 | { 119 | "foreground": "99cc99", 120 | "fontStyle": "italic", 121 | "token": "entity.other.attribute-name" 122 | }, 123 | { 124 | "foreground": "dde93d", 125 | "token": "keyword.other" 126 | }, 127 | { 128 | "foreground": "ff6600", 129 | "token": "meta.selector.css" 130 | }, 131 | { 132 | "foreground": "ff6600", 133 | "token": "entity.other.attribute-name.pseudo-class.css" 134 | }, 135 | { 136 | "foreground": "ff6600", 137 | "token": "entity.name.tag.wildcard.css" 138 | }, 139 | { 140 | "foreground": "ff6600", 141 | "token": "entity.other.attribute-name.id.css" 142 | }, 143 | { 144 | "foreground": "ff6600", 145 | "token": "entity.other.attribute-name.class.css" 146 | }, 147 | { 148 | "foreground": "999966", 149 | "token": "support.type.property-name.css" 150 | }, 151 | { 152 | "foreground": "ffffff", 153 | "token": "keyword.other.unit.css" 154 | }, 155 | { 156 | "foreground": "ffffff", 157 | "token": "constant.other.rgb-value.css" 158 | }, 159 | { 160 | "foreground": "ffffff", 161 | "token": "constant.numeric.css" 162 | }, 163 | { 164 | "foreground": "ffffff", 165 | "token": "support.function.event-handler.js" 166 | }, 167 | { 168 | "foreground": "ffffff", 169 | "token": "keyword.operator.js" 170 | }, 171 | { 172 | "foreground": "cccc66", 173 | "token": "keyword.control.js" 174 | }, 175 | { 176 | "foreground": "ffffff", 177 | "token": "support.class.prototype.js" 178 | }, 179 | { 180 | "foreground": "ff6600", 181 | "token": "object.property.function.prototype.js" 182 | } 183 | ], 184 | "colors": { 185 | "editor.foreground": "#FFFFFF", 186 | "editor.background": "#000000", 187 | "editor.selectionBackground": "#35493CE0", 188 | "editor.lineHighlightBackground": "#333300", 189 | "editorCursor.foreground": "#FFFFFF", 190 | "editorWhitespace.foreground": "#404040" 191 | } 192 | } 193 | -------------------------------------------------------------------------------- /themes/Xcode_default.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "008e00", 7 | "token": "comment" 8 | }, 9 | { 10 | "foreground": "7d4726", 11 | "token": "meta.preprocessor" 12 | }, 13 | { 14 | "foreground": "7d4726", 15 | "token": "keyword.control.import" 16 | }, 17 | { 18 | "foreground": "df0002", 19 | "token": "string" 20 | }, 21 | { 22 | "foreground": "3a00dc", 23 | "token": "constant.numeric" 24 | }, 25 | { 26 | "foreground": "c800a4", 27 | "token": "constant.language" 28 | }, 29 | { 30 | "foreground": "275a5e", 31 | "token": "constant.character" 32 | }, 33 | { 34 | "foreground": "275a5e", 35 | "token": "constant.other" 36 | }, 37 | { 38 | "foreground": "c800a4", 39 | "token": "variable.language" 40 | }, 41 | { 42 | "foreground": "c800a4", 43 | "token": "variable.other" 44 | }, 45 | { 46 | "foreground": "c800a4", 47 | "token": "keyword" 48 | }, 49 | { 50 | "foreground": "c900a4", 51 | "token": "storage" 52 | }, 53 | { 54 | "foreground": "438288", 55 | "token": "entity.name.class" 56 | }, 57 | { 58 | "foreground": "790ead", 59 | "token": "entity.name.tag" 60 | }, 61 | { 62 | "foreground": "450084", 63 | "token": "entity.other.attribute-name" 64 | }, 65 | { 66 | "foreground": "450084", 67 | "token": "support.function" 68 | }, 69 | { 70 | "foreground": "450084", 71 | "token": "support.constant" 72 | }, 73 | { 74 | "foreground": "790ead", 75 | "token": "support.type" 76 | }, 77 | { 78 | "foreground": "790ead", 79 | "token": "support.class" 80 | }, 81 | { 82 | "foreground": "790ead", 83 | "token": "support.other.variable" 84 | } 85 | ], 86 | "colors": { 87 | "editor.foreground": "#000000", 88 | "editor.background": "#FFFFFF", 89 | "editor.selectionBackground": "#B5D5FF", 90 | "editor.lineHighlightBackground": "#00000012", 91 | "editorCursor.foreground": "#000000", 92 | "editorWhitespace.foreground": "#BFBFBF" 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /themes/Zenburnesque.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "709070", 7 | "fontStyle": "italic", 8 | "token": "comment" 9 | }, 10 | { 11 | "fontStyle": "bold", 12 | "token": "keyword.other.directive" 13 | }, 14 | { 15 | "fontStyle": "underline", 16 | "token": "keyword.other.directive.line-number" 17 | }, 18 | { 19 | "foreground": "ff8080", 20 | "token": "constant.character" 21 | }, 22 | { 23 | "foreground": "ff2020", 24 | "token": "string" 25 | }, 26 | { 27 | "foreground": "22c0ff", 28 | "token": "constant.numeric" 29 | }, 30 | { 31 | "fontStyle": "underline", 32 | "token": "constant.numeric.floating-point" 33 | }, 34 | { 35 | "foreground": "ffffa0", 36 | "token": "keyword" 37 | }, 38 | { 39 | "foreground": "ff8000", 40 | "fontStyle": "bold", 41 | "token": "entity.name.module" 42 | }, 43 | { 44 | "foreground": "ff8000", 45 | "fontStyle": "bold", 46 | "token": "support.other.module" 47 | }, 48 | { 49 | "foreground": "ffffa0", 50 | "token": "keyword.operator" 51 | }, 52 | { 53 | "fontStyle": "underline", 54 | "token": "source.ocaml keyword.operator.symbol.infix.floating-point" 55 | }, 56 | { 57 | "fontStyle": "underline", 58 | "token": "source.ocaml keyword.operator.symbol.prefix.floating-point" 59 | }, 60 | { 61 | "foreground": "6080ff", 62 | "token": "storage.type" 63 | }, 64 | { 65 | "foreground": "4080a0", 66 | "token": "entity.name.class.variant" 67 | }, 68 | { 69 | "foreground": "f09040", 70 | "token": "entity.name.type" 71 | }, 72 | { 73 | "foreground": "ffcc66", 74 | "fontStyle": "bold", 75 | "token": "entity.name.function" 76 | }, 77 | { 78 | "foreground": "ffe000", 79 | "token": "storage.type.user-defined" 80 | }, 81 | { 82 | "foreground": "f4a020", 83 | "token": "entity.name.type.class.type" 84 | } 85 | ], 86 | "colors": { 87 | "editor.foreground": "#DEDEDE", 88 | "editor.background": "#404040", 89 | "editor.selectionBackground": "#A0A0C0", 90 | "editor.lineHighlightBackground": "#A0804026", 91 | "editorCursor.foreground": "#FFFF66", 92 | "editorWhitespace.foreground": "#A8A8A8" 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /themes/iPlastic.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "009933", 7 | "token": "string" 8 | }, 9 | { 10 | "foreground": "0066ff", 11 | "token": "constant.numeric" 12 | }, 13 | { 14 | "foreground": "ff0080", 15 | "token": "string.regexp" 16 | }, 17 | { 18 | "foreground": "0000ff", 19 | "token": "keyword" 20 | }, 21 | { 22 | "foreground": "9700cc", 23 | "token": "constant.language" 24 | }, 25 | { 26 | "foreground": "990000", 27 | "token": "support.class.exception" 28 | }, 29 | { 30 | "foreground": "ff8000", 31 | "token": "entity.name.function" 32 | }, 33 | { 34 | "fontStyle": "bold underline", 35 | "token": "entity.name.type" 36 | }, 37 | { 38 | "fontStyle": "italic", 39 | "token": "variable.parameter" 40 | }, 41 | { 42 | "foreground": "0066ff", 43 | "fontStyle": "italic", 44 | "token": "comment" 45 | }, 46 | { 47 | "foreground": "ff0000", 48 | "background": "e71a114d", 49 | "token": "invalid" 50 | }, 51 | { 52 | "background": "e71a1100", 53 | "token": "invalid.deprecated.trailing-whitespace" 54 | }, 55 | { 56 | "foreground": "000000", 57 | "background": "fafafafc", 58 | "token": "text source" 59 | }, 60 | { 61 | "foreground": "0033cc", 62 | "token": "meta.tag" 63 | }, 64 | { 65 | "foreground": "0033cc", 66 | "token": "declaration.tag" 67 | }, 68 | { 69 | "foreground": "6782d3", 70 | "token": "constant" 71 | }, 72 | { 73 | "foreground": "6782d3", 74 | "token": "support.constant" 75 | }, 76 | { 77 | "foreground": "3333ff", 78 | "fontStyle": "bold", 79 | "token": "support" 80 | }, 81 | { 82 | "fontStyle": "bold", 83 | "token": "storage" 84 | }, 85 | { 86 | "fontStyle": "bold underline", 87 | "token": "entity.name.section" 88 | }, 89 | { 90 | "foreground": "000000", 91 | "fontStyle": "bold", 92 | "token": "entity.name.function.frame" 93 | }, 94 | { 95 | "foreground": "333333", 96 | "token": "meta.tag.preprocessor.xml" 97 | }, 98 | { 99 | "foreground": "3366cc", 100 | "fontStyle": "italic", 101 | "token": "entity.other.attribute-name" 102 | }, 103 | { 104 | "fontStyle": "bold", 105 | "token": "entity.name.tag" 106 | } 107 | ], 108 | "colors": { 109 | "editor.foreground": "#000000", 110 | "editor.background": "#EEEEEEEB", 111 | "editor.selectionBackground": "#BAD6FD", 112 | "editor.lineHighlightBackground": "#0000001A", 113 | "editorCursor.foreground": "#000000", 114 | "editorWhitespace.foreground": "#B3B3B3F4" 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /themes/idleFingers.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "ffffff", 7 | "token": "text" 8 | }, 9 | { 10 | "foreground": "cdcdcd", 11 | "background": "282828", 12 | "token": "source" 13 | }, 14 | { 15 | "foreground": "bc9458", 16 | "fontStyle": "italic", 17 | "token": "comment" 18 | }, 19 | { 20 | "foreground": "ffe5bb", 21 | "token": "meta.tag" 22 | }, 23 | { 24 | "foreground": "ffe5bb", 25 | "token": "declaration.tag" 26 | }, 27 | { 28 | "foreground": "ffe5bb", 29 | "token": "meta.doctype" 30 | }, 31 | { 32 | "foreground": "ffc66d", 33 | "token": "entity.name" 34 | }, 35 | { 36 | "foreground": "fff980", 37 | "token": "source.ruby entity.name" 38 | }, 39 | { 40 | "foreground": "b7dff8", 41 | "token": "variable.other" 42 | }, 43 | { 44 | "foreground": "cccc33", 45 | "token": "support.class.ruby" 46 | }, 47 | { 48 | "foreground": "6c99bb", 49 | "token": "constant" 50 | }, 51 | { 52 | "foreground": "6c99bb", 53 | "token": "support.constant" 54 | }, 55 | { 56 | "foreground": "cc7833", 57 | "token": "keyword" 58 | }, 59 | { 60 | "foreground": "d0d0ff", 61 | "token": "other.preprocessor.c" 62 | }, 63 | { 64 | "fontStyle": "italic", 65 | "token": "variable.parameter" 66 | }, 67 | { 68 | "foreground": "ffffff", 69 | "background": "575757", 70 | "token": "source comment.block" 71 | }, 72 | { 73 | "foreground": "a5c261", 74 | "token": "string" 75 | }, 76 | { 77 | "foreground": "aaaaaa", 78 | "token": "string constant.character.escape" 79 | }, 80 | { 81 | "foreground": "000000", 82 | "background": "cccc33", 83 | "token": "string.interpolated" 84 | }, 85 | { 86 | "foreground": "cccc33", 87 | "token": "string.regexp" 88 | }, 89 | { 90 | "foreground": "cccc33", 91 | "token": "string.literal" 92 | }, 93 | { 94 | "foreground": "787878", 95 | "token": "string.interpolated constant.character.escape" 96 | }, 97 | { 98 | "fontStyle": "underline", 99 | "token": "entity.name.class" 100 | }, 101 | { 102 | "fontStyle": "italic underline", 103 | "token": "entity.other.inherited-class" 104 | }, 105 | { 106 | "foreground": "b83426", 107 | "token": "support.function" 108 | }, 109 | { 110 | "foreground": "6ea533", 111 | "token": "markup.list.unnumbered.textile" 112 | }, 113 | { 114 | "foreground": "6ea533", 115 | "token": "markup.list.numbered.textile" 116 | }, 117 | { 118 | "foreground": "c2c2c2", 119 | "fontStyle": "bold", 120 | "token": "markup.bold.textile" 121 | }, 122 | { 123 | "foreground": "ffffff", 124 | "background": "ff0000", 125 | "token": "invalid" 126 | }, 127 | { 128 | "foreground": "323232", 129 | "background": "fff980", 130 | "token": "collab.user1" 131 | } 132 | ], 133 | "colors": { 134 | "editor.foreground": "#FFFFFF", 135 | "editor.background": "#323232", 136 | "editor.selectionBackground": "#5A647EE0", 137 | "editor.lineHighlightBackground": "#353637", 138 | "editorCursor.foreground": "#91FF00", 139 | "editorWhitespace.foreground": "#404040" 140 | } 141 | } 142 | -------------------------------------------------------------------------------- /themes/krTheme.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "d27518c2", 7 | "token": "constant" 8 | }, 9 | { 10 | "foreground": "a89100b5", 11 | "token": "entity" 12 | }, 13 | { 14 | "foreground": "ba6912", 15 | "token": "entity.other" 16 | }, 17 | { 18 | "foreground": "949c8b", 19 | "token": "keyword" 20 | }, 21 | { 22 | "foreground": "ffee80", 23 | "token": "storage" 24 | }, 25 | { 26 | "foreground": "c7a4a1b5", 27 | "token": "string -string.unquoted.old-plist -string.unquoted.heredoc" 28 | }, 29 | { 30 | "foreground": "c7a4a1b5", 31 | "token": "string.unquoted.heredoc string" 32 | }, 33 | { 34 | "foreground": "706d5b", 35 | "fontStyle": "italic", 36 | "token": "comment" 37 | }, 38 | { 39 | "foreground": "9fc28a", 40 | "token": "support" 41 | }, 42 | { 43 | "foreground": "d1a796", 44 | "token": "variable" 45 | }, 46 | { 47 | "foreground": "ff80e1", 48 | "token": "variable.language" 49 | }, 50 | { 51 | "foreground": "ffee80", 52 | "token": "meta.function-call" 53 | }, 54 | { 55 | "foreground": "f8f8f8", 56 | "background": "a41300", 57 | "token": "invalid" 58 | }, 59 | { 60 | "foreground": "d9d59f", 61 | "background": "24231d4d", 62 | "token": "text source" 63 | }, 64 | { 65 | "foreground": "d9d59f", 66 | "background": "24231d4d", 67 | "token": "string.unquoted.heredoc" 68 | }, 69 | { 70 | "foreground": "d9d59f", 71 | "background": "24231d4d", 72 | "token": "source source" 73 | }, 74 | { 75 | "foreground": "7efcff", 76 | "token": "entity.other.inherited-class" 77 | }, 78 | { 79 | "foreground": "439740ba", 80 | "token": "string.quoted source" 81 | }, 82 | { 83 | "foreground": "60db5dba", 84 | "token": "string constant" 85 | }, 86 | { 87 | "foreground": "7dffc0a6", 88 | "token": "string.regexp" 89 | }, 90 | { 91 | "foreground": "b8b960", 92 | "token": "string variable" 93 | }, 94 | { 95 | "foreground": "85873a", 96 | "token": "support.function" 97 | }, 98 | { 99 | "foreground": "c27e66", 100 | "token": "support.constant" 101 | }, 102 | { 103 | "foreground": "ff1e00", 104 | "token": "support.class.exception" 105 | }, 106 | { 107 | "foreground": "8996a8", 108 | "token": "meta.preprocessor.c" 109 | }, 110 | { 111 | "foreground": "afc4db", 112 | "token": "meta.preprocessor.c keyword" 113 | }, 114 | { 115 | "foreground": "73817d", 116 | "token": "meta.sgml.html meta.doctype" 117 | }, 118 | { 119 | "foreground": "73817d", 120 | "token": "meta.sgml.html meta.doctype entity" 121 | }, 122 | { 123 | "foreground": "73817d", 124 | "token": "meta.sgml.html meta.doctype string" 125 | }, 126 | { 127 | "foreground": "73817d", 128 | "token": "meta.xml-processing" 129 | }, 130 | { 131 | "foreground": "73817d", 132 | "token": "meta.xml-processing entity" 133 | }, 134 | { 135 | "foreground": "73817d", 136 | "token": "meta.xml-processing string" 137 | }, 138 | { 139 | "foreground": "babd9c", 140 | "token": "meta.tag" 141 | }, 142 | { 143 | "foreground": "babd9c", 144 | "token": "meta.tag entity" 145 | }, 146 | { 147 | "foreground": "99a190", 148 | "token": "meta.selector.css entity.name.tag" 149 | }, 150 | { 151 | "foreground": "cc8844", 152 | "token": "meta.selector.css entity.other.attribute-name.id" 153 | }, 154 | { 155 | "foreground": "cfb958", 156 | "token": "meta.selector.css entity.other.attribute-name.class" 157 | }, 158 | { 159 | "foreground": "e0ddad", 160 | "token": "support.type.property-name.css" 161 | }, 162 | { 163 | "foreground": "aeb14b", 164 | "token": "meta.property-group support.constant.property-value.css" 165 | }, 166 | { 167 | "foreground": "aeb14b", 168 | "token": "meta.property-value support.constant.property-value.css" 169 | }, 170 | { 171 | "foreground": "ffb010", 172 | "token": "meta.preprocessor.at-rule keyword.control.at-rule" 173 | }, 174 | { 175 | "foreground": "999179", 176 | "token": "meta.property-value support.constant.named-color.css" 177 | }, 178 | { 179 | "foreground": "999179", 180 | "token": "meta.property-value constant" 181 | }, 182 | { 183 | "foreground": "eb939a", 184 | "token": "meta.constructor.argument.css" 185 | }, 186 | { 187 | "foreground": "f8f8f8", 188 | "background": "000e1a", 189 | "token": "meta.diff" 190 | }, 191 | { 192 | "foreground": "f8f8f8", 193 | "background": "000e1a", 194 | "token": "meta.diff.header" 195 | }, 196 | { 197 | "foreground": "f8f8f8", 198 | "background": "800f00", 199 | "token": "markup.deleted" 200 | }, 201 | { 202 | "foreground": "f8f8f8", 203 | "background": "806f00", 204 | "token": "markup.changed" 205 | }, 206 | { 207 | "foreground": "f8f8f8", 208 | "background": "228000", 209 | "token": "markup.inserted" 210 | }, 211 | { 212 | "background": "8fddf630", 213 | "token": "markup.raw" 214 | }, 215 | { 216 | "background": "005baa", 217 | "token": "markup.quote" 218 | }, 219 | { 220 | "background": "0f0040", 221 | "token": "markup.list" 222 | }, 223 | { 224 | "foreground": "9d80ff", 225 | "fontStyle": "bold", 226 | "token": "markup.bold" 227 | }, 228 | { 229 | "foreground": "80ffbb", 230 | "fontStyle": "italic", 231 | "token": "markup.italic" 232 | }, 233 | { 234 | "fontStyle": "bold", 235 | "token": "markup.heading" 236 | } 237 | ], 238 | "colors": { 239 | "editor.foreground": "#FCFFE0", 240 | "editor.background": "#0B0A09", 241 | "editor.selectionBackground": "#AA00FF73", 242 | "editor.lineHighlightBackground": "#38403D", 243 | "editorCursor.foreground": "#FF9900", 244 | "editorWhitespace.foreground": "#FFB16F52" 245 | } 246 | } 247 | -------------------------------------------------------------------------------- /themes/monoindustrial.json: -------------------------------------------------------------------------------- 1 | { 2 | "base": "vs-dark", 3 | "inherit": true, 4 | "rules": [ 5 | { 6 | "foreground": "666c68", 7 | "background": "151c19", 8 | "token": "comment" 9 | }, 10 | { 11 | "foreground": "c23b00", 12 | "token": "storage" 13 | }, 14 | { 15 | "foreground": "c23b00", 16 | "token": "support.type" 17 | }, 18 | { 19 | "foreground": "ffffff", 20 | "background": "151c19", 21 | "token": "string.unquoted.embedded" 22 | }, 23 | { 24 | "foreground": "ffffff", 25 | "background": "151c19", 26 | "token": "text source" 27 | }, 28 | { 29 | "foreground": "ffffff", 30 | "background": "151c19", 31 | "token": "string.unquoted" 32 | }, 33 | { 34 | "foreground": "e9470000", 35 | "background": "1a0700", 36 | "token": "constant.character.escaped" 37 | }, 38 | { 39 | "foreground": "e9470000", 40 | "background": "1a0700", 41 | "token": "string source - string.unquoted.embedded" 42 | }, 43 | { 44 | "foreground": "e9470000", 45 | "background": "1a0700", 46 | "token": "string string source" 47 | }, 48 | { 49 | "foreground": "c23800", 50 | "background": "1a0700", 51 | "token": "string - string source" 52 | }, 53 | { 54 | "foreground": "c23800", 55 | "background": "1a0700", 56 | "token": "string source string" 57 | }, 58 | { 59 | "foreground": "c23800", 60 | "background": "1a0700", 61 | "token": "meta.scope.heredoc" 62 | }, 63 | { 64 | "foreground": "e98800", 65 | "token": "constant.numeric" 66 | }, 67 | { 68 | "foreground": "648bd2", 69 | "token": "variable.language" 70 | }, 71 | { 72 | "foreground": "648bd2", 73 | "token": "variable.other" 74 | }, 75 | { 76 | "foreground": "e98800", 77 | "token": "constant" 78 | }, 79 | { 80 | "foreground": "a8b3ab", 81 | "background": "161d1a", 82 | "token": "other.preprocessor" 83 | }, 84 | { 85 | "foreground": "a8b3ab", 86 | "background": "161d1a", 87 | "token": "entity.name.preprocessor" 88 | }, 89 | { 90 | "foreground": "a8b3ab", 91 | "token": "entity.name.function" 92 | }, 93 | { 94 | "foreground": "a8b3ab", 95 | "token": "keyword.operator" 96 | }, 97 | { 98 | "foreground": "a8b3ab", 99 | "token": "keyword.other.name-of-parameter" 100 | }, 101 | { 102 | "foreground": "9a2f00", 103 | "token": "entity.name.class" 104 | }, 105 | { 106 | "foreground": "648bd2", 107 | "token": "variable.parameter" 108 | }, 109 | { 110 | "foreground": "666c68", 111 | "token": "storage.type.method" 112 | }, 113 | { 114 | "foreground": "a39e64", 115 | "token": "keyword" 116 | }, 117 | { 118 | "foreground": "a39e64", 119 | "token": "storage.type.function.php" 120 | }, 121 | { 122 | "foreground": "ffffff", 123 | "background": "990000ad", 124 | "token": "invalid" 125 | }, 126 | { 127 | "foreground": "000000", 128 | "background": "ffd0d0", 129 | "token": "invalid.trailing-whitespace" 130 | }, 131 | { 132 | "foreground": "588e60", 133 | "token": "support.function" 134 | }, 135 | { 136 | "foreground": "5778b6", 137 | "token": "support.class" 138 | }, 139 | { 140 | "foreground": "5778b6", 141 | "token": "support.type" 142 | }, 143 | { 144 | "foreground": "5778b6", 145 | "token": "entity.name" 146 | }, 147 | { 148 | "foreground": "c87500", 149 | "token": "support.constant" 150 | }, 151 | { 152 | "foreground": "5879b7", 153 | "token": "support.other.variable" 154 | }, 155 | { 156 | "foreground": "68685b", 157 | "token": "declaration.xml-processing" 158 | }, 159 | { 160 | "foreground": "888888", 161 | "token": "declaration.doctype" 162 | }, 163 | { 164 | "foreground": "888888", 165 | "token": "declaration.doctype.DTD" 166 | }, 167 | { 168 | "foreground": "a65eff", 169 | "token": "declaration.tag" 170 | }, 171 | { 172 | "foreground": "a65eff", 173 | "token": "entity.name.tag" 174 | }, 175 | { 176 | "foreground": "909993", 177 | "token": "entity.other.attribute-name" 178 | }, 179 | { 180 | "foreground": "90999380", 181 | "token": "punctuation" 182 | }, 183 | { 184 | "foreground": "7642b7", 185 | "token": "entity.other.inherited-class" 186 | }, 187 | { 188 | "foreground": "ffffff", 189 | "background": "00000059", 190 | "token": "meta.scope.changed-files.svn" 191 | }, 192 | { 193 | "foreground": "ffffff", 194 | "background": "00000059", 195 | "token": "markup.inserted.svn" 196 | }, 197 | { 198 | "foreground": "ffffff", 199 | "background": "00000059", 200 | "token": "markup.changed.svn" 201 | }, 202 | { 203 | "foreground": "ffffff", 204 | "background": "00000059", 205 | "token": "markup.deleted.svn" 206 | }, 207 | { 208 | "background": "78807b0a", 209 | "token": "meta.section" 210 | }, 211 | { 212 | "background": "78807b0a", 213 | "token": "meta.section meta.section" 214 | }, 215 | { 216 | "background": "78807b0a", 217 | "token": "meta.section meta.section meta.section" 218 | } 219 | ], 220 | "colors": { 221 | "editor.foreground": "#FFFFFF", 222 | "editor.background": "#222C28", 223 | "editor.selectionBackground": "#91999466", 224 | "editor.lineHighlightBackground": "#0C0D0C40", 225 | "editorCursor.foreground": "#FFFFFF", 226 | "editorWhitespace.foreground": "#666C6880" 227 | } 228 | } 229 | -------------------------------------------------------------------------------- /themes/themelist.json: -------------------------------------------------------------------------------- 1 | { 2 | "active4d": "Active4D", 3 | "all-hallows-eve": "All Hallows Eve", 4 | "amy": "Amy", 5 | "birds-of-paradise": "Birds of Paradise", 6 | "blackboard": "Blackboard", 7 | "brilliance-black": "Brilliance Black", 8 | "brilliance-dull": "Brilliance Dull", 9 | "chrome-devtools": "Chrome DevTools", 10 | "clouds-midnight": "Clouds Midnight", 11 | "clouds": "Clouds", 12 | "cobalt": "Cobalt", 13 | "dawn": "Dawn", 14 | "dreamweaver": "Dreamweaver", 15 | "eiffel": "Eiffel", 16 | "espresso-libre": "Espresso Libre", 17 | "github": "GitHub", 18 | "idle": "IDLE", 19 | "katzenmilch": "Katzenmilch", 20 | "kuroir-theme": "Kuroir Theme", 21 | "lazy": "LAZY", 22 | "magicwb--amiga-": "MagicWB (Amiga)", 23 | "merbivore-soft": "Merbivore Soft", 24 | "merbivore": "Merbivore", 25 | "monokai-bright": "Monokai Bright", 26 | "monokai": "Monokai", 27 | "night-owl": "Night Owl", 28 | "oceanic-next": "Oceanic Next", 29 | "pastels-on-dark": "Pastels on Dark", 30 | "slush-and-poppies": "Slush and Poppies", 31 | "solarized-dark": "Solarized-dark", 32 | "solarized-light": "Solarized-light", 33 | "spacecadet": "SpaceCadet", 34 | "sunburst": "Sunburst", 35 | "textmate--mac-classic-": "Textmate (Mac Classic)", 36 | "tomorrow-night-blue": "Tomorrow-Night-Blue", 37 | "tomorrow-night-bright": "Tomorrow-Night-Bright", 38 | "tomorrow-night-eighties": "Tomorrow-Night-Eighties", 39 | "tomorrow-night": "Tomorrow-Night", 40 | "tomorrow": "Tomorrow", 41 | "twilight": "Twilight", 42 | "upstream-sunburst": "Upstream Sunburst", 43 | "vibrant-ink": "Vibrant Ink", 44 | "xcode-default": "Xcode_default", 45 | "zenburnesque": "Zenburnesque", 46 | "iplastic": "iPlastic", 47 | "idlefingers": "idleFingers", 48 | "krtheme": "krTheme", 49 | "monoindustrial": "monoindustrial" 50 | } 51 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Basic Options */ 4 | // "incremental": true, /* Enable incremental compilation */ 5 | "target": "es5" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, 6 | "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, 7 | // "lib": [], /* Specify library files to be included in the compilation. */ 8 | // "allowJs": true, /* Allow javascript files to be compiled. */ 9 | // "checkJs": true, /* Report errors in .js files. */ 10 | // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ 11 | // "declaration": true, /* Generates corresponding '.d.ts' file. */ 12 | // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ 13 | // "sourceMap": true, /* Generates corresponding '.map' file. */ 14 | // "outFile": "./", /* Concatenate and emit output to single file. */ 15 | // "outDir": "./", /* Redirect output structure to the directory. */ 16 | // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ 17 | // "composite": true, /* Enable project compilation */ 18 | // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ 19 | // "removeComments": true, /* Do not emit comments to output. */ 20 | // "noEmit": true, /* Do not emit outputs. */ 21 | // "importHelpers": true, /* Import emit helpers from 'tslib'. */ 22 | // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ 23 | // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ 24 | 25 | /* Strict Type-Checking Options */ 26 | "strict": true /* Enable all strict type-checking options. */, 27 | // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ 28 | // "strictNullChecks": true, /* Enable strict null checks. */ 29 | // "strictFunctionTypes": true, /* Enable strict checking of function types. */ 30 | // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ 31 | // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ 32 | // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ 33 | // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ 34 | 35 | /* Additional Checks */ 36 | // "noUnusedLocals": true, /* Report errors on unused locals. */ 37 | // "noUnusedParameters": true, /* Report errors on unused parameters. */ 38 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ 39 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ 40 | 41 | /* Module Resolution Options */ 42 | // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ 43 | // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ 44 | // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ 45 | // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ 46 | // "typeRoots": [], /* List of folders to include type definitions from. */ 47 | // "types": [], /* Type declaration files to be included in compilation. */ 48 | // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ 49 | "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, 50 | // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ 51 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 52 | "resolveJsonModule": true, 53 | 54 | /* Source Map Options */ 55 | // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ 56 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 57 | // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ 58 | // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ 59 | 60 | /* Experimental Options */ 61 | // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ 62 | // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ 63 | 64 | /* Advanced Options */ 65 | "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /views/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | -------------------------------------------------------------------------------- /views/repl.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 24 | 25 | 26 |
27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const MonacoWebpackPlugin = require("monaco-editor-webpack-plugin"); 2 | const HtmlWebpackPlugin = require("html-webpack-plugin"); 3 | const webpack = require("webpack"); 4 | const path = require("path"); 5 | 6 | module.exports = { 7 | mode: "production", 8 | entry: { 9 | index: "./src/index.ts", 10 | repl: "./src/repl.ts", 11 | }, 12 | resolve: { 13 | extensions: [".ts", ".js"], 14 | }, 15 | output: { 16 | globalObject: "self", 17 | filename: "[name].bundle.js", 18 | path: path.resolve(__dirname, "dist"), 19 | }, 20 | module: { 21 | rules: [ 22 | { 23 | test: /\.ts?$/, 24 | use: "ts-loader", 25 | exclude: /node_modules/, 26 | }, 27 | { 28 | test: /\.css$/, 29 | use: ["style-loader", "css-loader"], 30 | }, 31 | { 32 | test: /\.ttf$/, 33 | use: ["file-loader"], 34 | }, 35 | ], 36 | }, 37 | plugins: [ 38 | new MonacoWebpackPlugin(), 39 | new HtmlWebpackPlugin({ 40 | template: "views/index.html", 41 | chunks: ["index"], 42 | }), 43 | new HtmlWebpackPlugin({ 44 | filename: "repl.html", 45 | template: "views/repl.html", 46 | chunks: ["repl"], 47 | }), 48 | ], 49 | 50 | devtool: "source-map", 51 | 52 | devServer: { 53 | contentBase: path.join(__dirname, "dist"), 54 | port: 8080, 55 | compress: true, 56 | disableHostCheck: true, 57 | }, 58 | }; 59 | --------------------------------------------------------------------------------