How do I get Visual Studio Code to display italic fonts in formatted code?

后端 未结 10 971
旧时难觅i
旧时难觅i 2020-12-22 16:22

How do I configure VS Code to support italic styles, like in this picture?

\"\"

My current settings:

相关标签:
10条回答
  • For anyone wants to change exactly what you want, take the .json structure on the above answer and then take a look at this site at section 12.4 Naming Conventions

    https://macromates.com/manual/en/language_grammars

    You can change literally every element on every code line you wrote.

    0 讨论(0)
  • 2020-12-22 16:41

    The following code is fine

    {
      "editor.fontLigatures": true,
      "editor.fontFamily": "Operator Mono"
    }
    

    You must have Operator Mono installed on your computer for that to work. It can be downloaded here: https://www.typography.com/fonts/operator/styles/ Current price at the time of writing this is $599.00 for one machine.

    If you have the fonts installed and have restarted Visual Studio Code, try changing your theme. Some themes do not support the italic style.

    0 讨论(0)
  • 2020-12-22 16:42

    Reinstate Monica's answer helped me, but I noticed everything wasn't italic in the same way I found on italic specific themes. I found a more comprehensive list of italic settings from https://github.com/wesbos/cobalt2-vscode/issues/116. Thank @bgarrant on github.

    Add this to settings.json (ctrl + , or cmd + ,)

    "editor.fontFamily": "Dank Mono, Menlo, Monaco, 'Courier New', monospace",
    "editor.fontLigatures": true,
    "editor.tokenColorCustomizations": {
        "textMateRules": [
            {
                "scope": [
                  //following will be in italic
                  "comment",
                  "emphasis",
                  "entity.name.method.js",
                  "entity.name.class.js",
                  "entity.name.tag.doctype",
                  "entity.other.attribute-name",
                  "entity.other.attribute-name.tag.jade",
                  "entity.other.attribute-name.tag.pug",
                  "keyword",
                  "keyword.control",
                  "keyword.operator.comparison",
                  "keyword.control.flow.js",
                  "keyword.control.flow.ts",
                  "keyword.control.flow.tsx",
                  "keyword.control.ruby",
                  "keyword.control.module.ruby",
                  "keyword.control.class.ruby",
                  "keyword.control.def.ruby",
                  "keyword.control.loop.js",
                  "keyword.control.loop.ts",
                  "keyword.control.import.js",
                  "keyword.control.import.ts",
                  "keyword.control.import.tsx",
                  "keyword.control.from.js",
                  "keyword.control.from.ts",
                  "keyword.control.from.tsx",
                  "keyword.operator.expression.delete",
                  "keyword.operator.new",
                  "keyword.operator.expression",
                  "keyword.operator.cast",
                  "keyword.operator.relational",
                  "keyword.operator.sizeof",
                  "keyword.operator.logical.python",
                  "italic",
                  "markup.italic",
                  "markup.quote",
                  "markup.changed",
                  "markup.italic.markdown",
                  "markup.quote.markdown",
                  "markup.deleted.diff",
                  "markup.inserted.diff",
                  "meta.delimiter.period",
                  "meta.diff.header.git",
                  "meta.diff.header.from-file",
                  "meta.diff.header.to-file",
                  "meta.tag.sgml.doctype",
                  "meta.var.expr",
                  "meta.class meta.method.declaration meta.var.expr storage.type.js",
                  "meta.decorator punctuation.decorator",
                  "meta.selector",
                  "punctuation.accessor",
                  "punctuation.definition.comment",
                  "punctuation.definition.template-expression.begin",
                  "punctuation.definition.template-expression.end",
                  "punctuation.section.embedded",
                  "quote",
                  "source.js constant.other.object.key.js string.unquoted.label.js",
                  "source.go keyword.package.go",
                  "source.go keyword.import.go",
                  "source.go keyword.function.go",
                  "source.go keyword.type.go",
                  "source.go keyword.struct.go",
                  "source.go keyword.interface.go",
                  "source.go keyword.const.go",
                  "source.go keyword.var.go",
                  "source.go keyword.map.go",
                  "source.go keyword.channel.go",
                  "source.go keyword.control.go",
                  "storage",
                  "storage.type",
                  "storage.modifier",
                  "storage.type.property.js",
                  "storage.type.property.ts",
                  "storage.type.property.tsx",
                  "tag.decorator.js entity.name.tag.js",
                  "tag.decorator.js",
                  "text.html.basic entity.other.attribute-name.html",
                  "text.html.basic entity.other.attribute-name",
                  "variable.language",
                  "variable.other.object.property"
                ],
                "settings": {
                  "fontStyle": "italic"
                }
            }
        ]
    }
    
    0 讨论(0)
  • 2020-12-22 16:45

    First of all I know this thread is over a year old, but I was searching for the same thing without changing the main Dark+ theme, so I've put these in the settings.json of vs code, it might not be the most pretty but it works even on any theme you choose that doesn't have italic, and if you want to remove it just put it in comments, I've put the color in comments if you want to change it later!

         "editor.tokenColorCustomizations": {
        "textMateRules": [{
                "name": "Comment",
                "scope": [
                    "comment",
                    "punctuation.definition.comment"
                ],
                "settings": {
                    "fontStyle": "italic",
                    //"foreground": "#4A4A4A"
                }
            },
    
            {
                "name": "Keyword, Storage",
                "scope": [
                    "Keyword",
                    "Storage"
                ],
                "settings": {
                    "fontStyle": "italic"
                }
            },
    
            {
                "name": "Keyword Control",
                "scope": [
                    "keyword.control"
                ],
                "settings": {
                    "fontStyle": "italic"
                }
            },
    
            {
                "scope": "entity.other.attribute-name",
                "settings": {
                    "fontStyle": "italic",
                    //"foreground": "#78dce8"
                }
            },
    
    
            {
                "name": "entity.name.method.js",
                "scope": [
                    "entity.name.method.js"
                ],
                "settings": {
                    "fontStyle": "italic",
                    //"foreground": "#82AAFF"
                }
            },
    
    
            {
                "name": "Language methods",
                "scope": [
                    "variable.language"
                ],
                "settings": {
                    "fontStyle": "italic",
                    //"foreground": "#FF5370"
                }
            },
    
    
            {
                "name": "HTML Attributes",
                "scope": [
                    "text.html.basic entity.other.attribute-name.html",
                    "text.html.basic entity.other.attribute-name"
                ],
                "settings": {
                    "fontStyle": "italic",
                    //"foreground": "#FFCB6B"
                }
            },
    
    
            {
                "name": "Decorators",
                "scope": [
                    "tag.decorator.js entity.name.tag.js",
                    "tag.decorator.js punctuation.definition.tag.js"
                ],
                "settings": {
                    "fontStyle": "italic",
                    //"foreground": "#82AAFF"
                }
            },
    
    
            {
                "name": "ES7 Bind Operator",
                "scope": [
                    "source.js constant.other.object.key.js string.unquoted.label.js"
                ],
                "settings": {
                    "fontStyle": "italic",
                    //"foreground": "#FF5370"
                }
            },
    
            {
                "name": "Markup - Italic",
                "scope": [
                    "markup.italic"
                ],
                "settings": {
                    "fontStyle": "italic",
                    //"foreground": "#f07178"
                }
            },
    
    
            {
                "name": "Markup - Bold-Italic",
                "scope": [
                    "markup.bold markup.italic",
                    "markup.italic markup.bold",
                    "markup.quote markup.bold",
                    "markup.bold markup.italic string",
                    "markup.italic markup.bold string",
                    "markup.quote markup.bold string"
                ],
                "settings": {
                    "fontStyle": "bold",
                    //"foreground": "#f07178"
                }
            },
    
            {
                "name": "Markup - Quote",
                "scope": [
                    "markup.quote"
                ],
                "settings": {
                    "fontStyle": "italic",
                    //"foreground": ""
                }
            },
            {
                "scope": "variable.other",
                "settings": {
                    "foreground": "#82fbff"
                }
            },
            {
                "scope": "entity.name.function",
                "settings": {
                    "foreground": "#dfd9a8"
                }
            },
            {
                "scope": "support.function",
                "settings": {
                    "fontStyle": "italic",
                    "foreground": "#dfd9a8"
                }
            },
            {
                "scope": "string",
                "settings": {
                    "foreground": "#CE9178"
                }
            },
        ]
    },
    

    Hope this helps anyone, and sorry again for posting on an outdated post.

    0 讨论(0)
  • 2020-12-22 16:46

    First download a zip file from here. Then unzip it and install every file that has the .ttf extention by double clicking on it. After that go to VS Code and open settings with CMD + , or CTRL + , (on Windows machines) and type font. Under font family paste this 'Fira Code iScript' (include single quotations). This will start using fira code as the main font now. Only thing remaining is to add settings and tell VS Code when to actually utilize recursive fonts. For that, still in settings, type token color click on Token Color Customizations - open it in settings.json and paste this sucker in:

    "editor.tokenColorCustomizations": {
            "textMateRules": [
              {
                "scope": [
                  //following will be in italic (=FlottFlott)
                  "comment",
                  "entity.name.type.class", //class names
                  "keyword", //import, export, return…
                  "constant", //String, Number, Boolean…, this, super
                  "storage.modifier", //static keyword
                  "storage.type.class.js", //class keyword
                ],
                "settings": {
                  "fontStyle": "italic"
                }
              },
              {
                "scope": [
                  //following will be excluded from italics (VSCode has some defaults for italics)
                  "invalid",
                  "keyword.operator",
                  "constant.numeric.css",
                  "keyword.other.unit.px.css",
                  "constant.numeric.decimal.js",
                  "constant.numeric.json"
                ],
                "settings": {
                  "fontStyle": ""
                }
              }
            ]
        },
    

    That should do it for you! Remember to save the settings file!

    0 讨论(0)
  • 2020-12-22 16:47

    I know this is somewhat an old question but I found myself on this thread when I was trying to set up operator mono on my Windows machine and had to spend sometime on it to make it work but if anyone else is looking for this it turns out it's as simple as the following on VS Code:

    1. Install Operator Mono Dark Theme
    2. Add the following to your settings.json:
    "workbench.colorTheme": "Operator Mono Dark Theme",
    "editor.fontFamily": "Operator Mono Light"
    

    and that should do it.

    0 讨论(0)
提交回复
热议问题