{
    "$schema": "vscode://schemas/color-theme",
    "name": "Visual Studio 2019 Light",
    "type": "light",
    // https://github.com/microsoft/vscode/blob/master/extensions/theme-defaults/themes/light_defaults.json
    "colors": {
        "editor.background": "#FFFFFF",
        "editor.foreground": "#000000",
        "editor.inactiveSelectionBackground": "#E5EBF1",
        "editorIndentGuide.background": "#D3D3D3",
        "editorIndentGuide.activeBackground": "#939393",
        "editor.selectionHighlightBackground": "#ADD6FF80",
        "editorSuggestWidget.background": "#F3F3F3",
        "activityBarBadge.background": "#007ACC",
        "sideBarTitle.foreground": "#6F6F6F",
        "list.hoverBackground": "#E8E8E8",
        "input.placeholderForeground": "#767676",
        "searchEditor.textInputBorder": "#CECECE",
        "settings.textInputBorder": "#CECECE",
        "settings.numberInputBorder": "#CECECE",
        "statusBarItem.remoteForeground": "#FFF",
        "statusBarItem.remoteBackground": "#16825D",
        "sideBarSectionHeader.background": "#0000",
        "sideBarSectionHeader.border": "#61616130"
    },
    "semanticHighlighting": true,
    "semanticTokenColors": {
        "*.deprecated": {
            "strikethrough": true
        }
    },
    // https://github.com/microsoft/vscode/blob/master/extensions/theme-defaults/themes/light_vs.json
    "tokenColors": [
        {
            "scope": [
                "meta.embedded",
                "source.groovy.embedded"
            ],
            "settings": {
                "foreground": "#000000ff"
            }
        },
        {
            "scope": "emphasis",
            "settings": {
                "fontStyle": "italic"
            }
        },
        {
            "scope": "strong",
            "settings": {
                "fontStyle": "bold"
            }
        },
        {
            "scope": "meta.diff.header",
            "settings": {
                "foreground": "#000080"
            }
        },
        {
            "scope": "comment",
            "settings": {
                "foreground": "#008000"
            }
        },
        {
            "scope": "constant.language",
            "settings": {
                "foreground": "#0000ff"
            }
        },
        {
            "scope": [
                "constant.numeric",
                "entity.name.operator.custom-literal.number",
                "variable.other.enummember",
                "keyword.operator.plus.exponent",
                "keyword.operator.minus.exponent"
            ],
            "settings": {
                "foreground": "#098658"
            }
        },
        {
            "scope": "constant.regexp",
            "settings": {
                "foreground": "#811f3f"
            }
        },
        {
            "name": "css tags in selectors, xml tags",
            "scope": "entity.name.tag",
            "settings": {
                "foreground": "#800000"
            }
        },
        {
            "scope": "entity.name.selector",
            "settings": {
                "foreground": "#800000"
            }
        },
        {
            "scope": "entity.other.attribute-name",
            "settings": {
                "foreground": "#ff0000"
            }
        },
        {
            "scope": [
                "entity.other.attribute-name.class.css",
                "entity.other.attribute-name.class.mixin.css",
                "entity.other.attribute-name.id.css",
                "entity.other.attribute-name.parent-selector.css",
                "entity.other.attribute-name.pseudo-class.css",
                "entity.other.attribute-name.pseudo-element.css",
                "source.css.less entity.other.attribute-name.id",
                "entity.other.attribute-name.attribute.scss",
                "entity.other.attribute-name.scss"
            ],
            "settings": {
                "foreground": "#800000"
            }
        },
        {
            "scope": "invalid",
            "settings": {
                "foreground": "#cd3131"
            }
        },
        {
            "scope": "markup.underline",
            "settings": {
                "fontStyle": "underline"
            }
        },
        {
            "scope": "markup.bold",
            "settings": {
                "fontStyle": "bold",
                "foreground": "#000080"
            }
        },
        {
            "scope": "markup.heading",
            "settings": {
                "fontStyle": "bold",
                "foreground": "#800000"
            }
        },
        {
            "scope": "markup.italic",
            "settings": {
                "fontStyle": "italic"
            }
        },
        {
            "scope": "markup.inserted",
            "settings": {
                "foreground": "#098658"
            }
        },
        {
            "scope": "markup.deleted",
            "settings": {
                "foreground": "#a31515"
            }
        },
        {
            "scope": "markup.changed",
            "settings": {
                "foreground": "#0451a5"
            }
        },
        {
            "scope": [
                "punctuation.definition.quote.begin.markdown",
                "punctuation.definition.list.begin.markdown"
            ],
            "settings": {
                "foreground": "#0451a5"
            }
        },
        {
            "scope": "markup.inline.raw",
            "settings": {
                "foreground": "#800000"
            }
        },
        {
            "name": "brackets of XML/HTML tags",
            "scope": "punctuation.definition.tag",
            "settings": {
                "foreground": "#800000"
            }
        },
        {
            "scope": [
                "meta.preprocessor",
                "entity.name.function.preprocessor"
            ],
            "settings": {
                "foreground": "#0000ff"
            }
        },
        {
            "scope": "meta.preprocessor.string",
            "settings": {
                "foreground": "#a31515"
            }
        },
        {
            "scope": "meta.preprocessor.numeric",
            "settings": {
                "foreground": "#098658"
            }
        },
        {
            "scope": "meta.structure.dictionary.key.python",
            "settings": {
                "foreground": "#0451a5"
            }
        },
        {
            "scope": "storage",
            "settings": {
                "foreground": "#0000ff"
            }
        },
        {
            "scope": "storage.type",
            "settings": {
                "foreground": "#0000ff"
            }
        },
        {
            "scope": [
                "storage.modifier",
                "keyword.operator.noexcept"
            ],
            "settings": {
                "foreground": "#0000ff"
            }
        },
        {
            "scope": [
                "string",
                "entity.name.operator.custom-literal.string",
                "meta.embedded.assembly"
            ],
            "settings": {
                "foreground": "#a31515"
            }
        },
        {
            "scope": [
                "string.comment.buffered.block.pug",
                "string.quoted.pug",
                "string.interpolated.pug",
                "string.unquoted.plain.in.yaml",
                "string.unquoted.plain.out.yaml",
                "string.unquoted.block.yaml",
                "string.quoted.single.yaml",
                "string.quoted.double.xml",
                "string.quoted.single.xml",
                "string.unquoted.cdata.xml",
                "string.quoted.double.html",
                "string.quoted.single.html",
                "string.unquoted.html",
                "string.quoted.single.handlebars",
                "string.quoted.double.handlebars"
            ],
            "settings": {
                "foreground": "#0000ff"
            }
        },
        {
            "scope": "string.regexp",
            "settings": {
                "foreground": "#811f3f"
            }
        },
        {
            "name": "String interpolation",
            "scope": [
                "punctuation.definition.template-expression.begin",
                "punctuation.definition.template-expression.end",
                "punctuation.section.embedded"
            ],
            "settings": {
                "foreground": "#0000ff"
            }
        },
        {
            "name": "Reset JavaScript string interpolation expression",
            "scope": [
                "meta.template.expression"
            ],
            "settings": {
                "foreground": "#000000"
            }
        },
        {
            "scope": [
                "support.constant.property-value",
                "support.constant.font-name",
                "support.constant.media-type",
                "support.constant.media",
                "constant.other.color.rgb-value",
                "constant.other.rgb-value",
                "support.constant.color"
            ],
            "settings": {
                "foreground": "#0451a5"
            }
        },
        {
            "scope": [
                "support.type.vendored.property-name",
                "support.type.property-name",
                "variable.css",
                "variable.scss",
                "variable.other.less",
                "source.coffee.embedded"
            ],
            "settings": {
                "foreground": "#ff0000"
            }
        },
        {
            "scope": [
                "support.type.property-name.json"
            ],
            "settings": {
                "foreground": "#0451a5"
            }
        },
        {
            "scope": "keyword",
            "settings": {
                "foreground": "#0000ff"
            }
        },
        {
            "scope": "keyword.control",
            "settings": {
                "foreground": "#0000ff"
            }
        },
        {
            "scope": "keyword.operator",
            "settings": {
                "foreground": "#000000"
            }
        },
        {
            "scope": [
                "keyword.operator.new",
                "keyword.operator.expression",
                "keyword.operator.cast",
                "keyword.operator.sizeof",
                "keyword.operator.alignof",
                "keyword.operator.typeid",
                "keyword.operator.alignas",
                "keyword.operator.instanceof",
                "keyword.operator.logical.python",
                "keyword.operator.wordlike"
            ],
            "settings": {
                "foreground": "#0000ff"
            }
        },
        {
            "scope": "keyword.other.unit",
            "settings": {
                "foreground": "#098658"
            }
        },
        {
            "scope": [
                "punctuation.section.embedded.begin.php",
                "punctuation.section.embedded.end.php"
            ],
            "settings": {
                "foreground": "#800000"
            }
        },
        {
            "scope": "support.function.git-rebase",
            "settings": {
                "foreground": "#0451a5"
            }
        },
        {
            "scope": "constant.sha.git-rebase",
            "settings": {
                "foreground": "#098658"
            }
        },
        {
            "name": "coloring of the Java import and package identifiers",
            "scope": [
                "storage.modifier.import.java",
                "variable.language.wildcard.java",
                "storage.modifier.package.java"
            ],
            "settings": {
                "foreground": "#000000"
            }
        },
        {
            "name": "this.self",
            "scope": "variable.language",
            "settings": {
                "foreground": "#0000ff"
            }
        },
        // https://github.com/microsoft/vscode/blob/master/extensions/theme-defaults/themes/light_plus.json
        {
            "name": "Function declarations",
            "scope": [
                "entity.name.function",
                "support.function",
                "support.constant.handlebars",
                "source.powershell variable.other.member",
                "entity.name.operator.custom-literal" // See https://en.cppreference.com/w/cpp/language/user_literal
            ],
            "settings": {
                "foreground": "#795E26"
            }
        },
        {
            "name": "Types declaration and references",
            "scope": [
                "meta.return-type",
                "support.class",
                "support.type",
                "entity.name.type",
                "entity.other.attribute",
                "entity.name.scope-resolution",
                "entity.name.class",
                "storage.type.numeric.go",
                "storage.type.byte.go",
                "storage.type.boolean.go",
                "storage.type.string.go",
                "storage.type.uintptr.go",
                "storage.type.error.go",
                "storage.type.rune.go",
                "storage.type.cs",
                "storage.type.generic.cs",
                "storage.type.modifier.cs",
                "storage.type.variable.cs",
                "storage.type.annotation.java",
                "storage.type.generic.java",
                "storage.type.java",
                "storage.type.object.array.java",
                "storage.type.primitive.array.java",
                "storage.type.primitive.java",
                "storage.type.token.java",
                "storage.type.groovy",
                "storage.type.annotation.groovy",
                "storage.type.parameters.groovy",
                "storage.type.generic.groovy",
                "storage.type.object.array.groovy",
                "storage.type.primitive.array.groovy",
                "storage.type.primitive.groovy"
            ],
            "settings": {
                "foreground": "#267f99"
            }
        },
        {
            "name": "Types declaration and references, TS grammar specific",
            "scope": [
                "meta.type.cast.expr",
                "meta.type.new.expr",
                "support.constant.math",
                "support.constant.dom",
                "support.constant.json",
                "entity.other.inherited-class"
            ],
            "settings": {
                "foreground": "#267f99"
            }
        },
        {
            "name": "Control flow / Special keywords",
            "scope": [
                "keyword.control",
                "source.cpp keyword.operator.new",
                "source.cpp keyword.operator.delete",
                "keyword.other.using",
                "keyword.other.operator",
                "entity.name.operator"
            ],
            "settings": {
                "foreground": "#AF00DB"
            }
        },
        {
            "name": "Variable and parameter name",
            "scope": [
                "variable",
                "meta.definition.variable.name",
                "support.variable",
                "entity.name.variable"
            ],
            "settings": {
                "foreground": "#001080"
            }
        },
        {
            "name": "Constants and enums",
            "scope": [
                "variable.other.constant",
                "variable.other.enummember"
            ],
            "settings": {
                "foreground": "#328267",
            }
        },
        {
            "name": "Object keys, TS grammar specific",
            "scope": [
                "meta.object-literal.key"
            ],
            "settings": {
                "foreground": "#001080"
            }
        },
        {
            "name": "CSS property value",
            "scope": [
                "support.constant.property-value",
                "support.constant.font-name",
                "support.constant.media-type",
                "support.constant.media",
                "constant.other.color.rgb-value",
                "constant.other.rgb-value",
                "support.constant.color"
            ],
            "settings": {
                "foreground": "#0451a5"
            }
        },
        {
            "name": "Regular expression groups",
            "scope": [
                "punctuation.definition.group.regexp",
                "punctuation.definition.group.assertion.regexp",
                "punctuation.definition.character-class.regexp",
                "punctuation.character.set.begin.regexp",
                "punctuation.character.set.end.regexp",
                "keyword.operator.negation.regexp",
                "support.other.parenthesis.regexp"
            ],
            "settings": {
                "foreground": "#d16969"
            }
        },
        {
            "scope": [
                "constant.character.character-class.regexp",
                "constant.other.character-class.set.regexp",
                "constant.other.character-class.regexp",
                "constant.character.set.regexp"
            ],
            "settings": {
                "foreground": "#811f3f"
            }
        },
        {
            "scope": "keyword.operator.quantifier.regexp",
            "settings": {
                "foreground": "#000000"
            }
        },
        {
            "scope": [
                "keyword.operator.or.regexp",
                "keyword.control.anchor.regexp"
            ],
            "settings": {
                "foreground": "#ff0000"
            }
        },
        {
            "scope": "constant.character",
            "settings": {
                "foreground": "#0000ff"
            }
        },
        {
            "scope": "constant.character.escape",
            "settings": {
                "foreground": "#ff0000"
            }
        },
        {
            "scope": "entity.name.label",
            "settings": {
                "foreground": "#000000"
            }
        },
        // Visual Studio 2019 Tweaks
        {
            "name": "Excluded Code",
            "scope": "support.other.excluded",
            "settings": {
                "foreground": "#808080"
            }
        },
        {
            "name": "Preprocessor Keyword",
            "scope": "keyword.preprocessor",
            "settings": {
                "foreground": "#808080"
            }
        },
        {
            "name": "Punctuation",
            "scope": "punctuation",
            "settings": {
                "foreground": "#222222"
            }
        },
        {
            "scope": "punctuation.definition.comment",
            "settings": {
                "foreground": "#008000"
            }
        },
        {
            "scope": "punctuation.definition.string",
            "settings": {
                "foreground": "#a31515"
            }
        },
        {
            "name": "Namespace",
            "scope": [
              "entity.name.namespace",
              "entity.name.type.namespace"
            ],
            "settings": {
                "foreground": "#222222"
            }
        },
        {
            "name": "Field",
            "scope": "entity.name.variable.field",
            "settings": {
                "foreground": "#222222"
            }
        },
        {
            "name": "Property",
            "scope": "variable.other.property",
            "settings": {
                "foreground": "#222222"
            }
        },
        {
            "name": "Constant",
            "scope": "variable.other.constant",
            "settings": {
                "foreground": "#222222",
            }
        },
        {
            "name": "Enum Member",
            "scope": "variable.other.enummember",
            "settings": {
                "foreground": "#222222"
            }
        },
        {
            "name": "Interface",
            "scope": "entity.name.type.interface",
            "settings": {
                "foreground": "#267f99"
            }
        },
        {
            "name": "Enum",
            "scope": "entity.name.type.enum",
            "settings": {
                "foreground": "#267f99"
            }
        },
        {
            "name": "Type Parameter",
            "scope": "entity.name.type.type-parameter",
            "settings": {
                "foreground": "#267f99"
            }
        },
        {
            "name": "Struct",
            "scope": "entity.name.type.struct",
            "settings": {
                "foreground": "#267f99",
            }
        },
        {
            "name": "Extension Method",
            "scope": "entity.name.function.extension",
            "settings": {
                "foreground": "#795E26",
            }
        },
        {
            "name": "Xml Documentation Comment",
            "scope": "comment.documentation",
            "settings": {
                "foreground": "#008000",
            }
        },
        {
            "name": "Xml Documentation Comment Attribute",
            "scope": "comment.documentation.attribute",
            "settings": {
                "foreground": "#282828",
            }
        },
        {
            "name": "Xml Documentation Comment CDATA",
            "scope": "comment.documentation.cdata",
            "settings": {
                "foreground": "#808080",
            }
        },
        {
            "name": "Xml Documentation Comment Delimiter",
            "scope": "comment.documentation.delimiter",
            "settings": {
                "foreground": "#808080",
            }
        },
        {
            "name": "Xml Documentation Comment Name",
            "scope": "comment.documentation.name",
            "settings": {
                "foreground": "#808080",
            }
        },
        {
            "name": "RegEx Comment",
            "scope": "string.regexp.comment.cs",
            "settings": {
                "foreground": "#008000",
            }
        },
        {
            "name": "RegEx Character Class",
            "scope": "constant.character.character-class.regexp.cs",
            "settings": {
                "foreground": "#0073FF",
            }
        },
        {
            "name": "RegEx Anchor",
            "scope": "keyword.control.anchor.regexp.cs",
            "settings": {
                "foreground": "#FF00C1",
            }
        },
        {
            "name": "RegEx Quantifier",
            "scope": "keyword.operator.quantifier.regexp.cs",
            "settings": {
                "foreground": "#FF00C1",
            }
        },
        {
            "name": "RegEx Grouping",
            "scope": "string.regexp.self-escaped-character.cs",
            "settings": {
                "foreground": "#05C3BA",
            }
        },
        {
            "name": "RegEx Alternation",
            "scope": "keyword.operator.or.regexp.cs",
            "settings": {
                "foreground": "#05C3BA",
            }
        },
        {
            "name": "RegEx Self-Escaped Character",
            "scope": "punctuation.definition.group.regexp.cs",
            "settings": {
                "foreground": "#800000",
            }
        },
        {
            "name": "RegEx Other Escape",
            "scope": "string.regexp.other-escape.cs",
            "settings": {
                "foreground": "#9E5B71",
            }
        },
        {
            "name": "RegEx Text",
            "scope": "string.regexp",
            "settings": {
                "foreground": "#800000"
            }
        },
    ]
}
