vscode new language configuration not changing syntax colors

1.5k views Asked by At

I'm trying to create a new language for syntax highighting in Visual Studio Code for the CPU12 assembly language. When I use the new language in a new .asm file, the editor knows that the comment character is (it adds a semicolon to a line when I type ctrl-k ctrl-c), but the text is white instead of the default comment color green. Do I need to specify to use the default vscode theme? If so, where?

package.json

{
    "name": "cpu12",
    "displayName": "cpu12",
    "description": "cpu12",
    "version": "0.0.1",
    "publisher": "https://github.com/me",
    "engines": {
        "vscode": "^1.15.0"
    },
    "categories": [
        "Languages"
    ],
    "contributes": {
        "languages": [{
            "id": "cpu12",
            "aliases": ["CPU12", "cpu12"],
            "extensions": [".asm",".inc"],
            "configuration": "./language-configuration.json"
        }],
        "grammars": [{
            "language": "cpu12",
            "scopeName": "source.cpu12",
            "path": "./syntaxes/cpu12.tmLanguage.json"
        }]
    }
}

language-configuration.json

{
    "comments": {
        // symbol used for single line comment. Remove this entry if your language does not support line comments
        "lineComment": ";"
    },
    // symbols used as brackets
    "brackets": [
        ["{", "}"],
        ["[", "]"],
        ["(", ")"]
    ],
    // symbols that are auto closed when typing
    "autoClosingPairs": [
        ["{", "}"],
        ["[", "]"],
        ["(", ")"],
        ["\"", "\""],
        ["'", "'"]
    ],
    // symbols that that can be used to surround a selection
    "surroundingPairs": [
        ["{", "}"],
        ["[", "]"],
        ["(", ")"],
        ["\"", "\""],
        ["'", "'"]
    ]
}

(My ./syntaxes/cpu12.tmLanguage.json is empty.)

1

There are 1 answers

0
vahlala On BEST ANSWER

The problem was actually because ./syntaxes/cpu12.tmLanguage.json was empty. You need to specify in the .json file how to color line comments:

./syntaxes/cpu12.tmLanguage.json

{
    "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
    "name": "cpu12",
    "scopeName": "source.cpu12",
    "patterns": [
        {
            "comment": "Line Comments -- Asterisk only works at beginning of line",
            "match": "((;|^\\*).*$)",
            "captures": {
                "1" :{
                    "name": "comment.line.cpu12"
                }
            }
        }
    ]
}