如何在VSCode扩展

时间:2017-09-23 07:26:38

标签: visual-studio-code syntax-highlighting vscode-extensions vscode-settings

TLDR; 如何使用扩展程序对扩展程序定义的语法进行着色,而不是实际上是用户必须启用的颜色主题?

我试图将此Sublime Text plugin (ToDone)移植到VSCode。

它为待办事项列表创建语法,然后使用语法突出显示强调重要任务,静音已完成的任务等。

我通过Customize a Color Theme找到了"editor.tokenColorCustomizations"。当我在用户设置中使用它时,它可以使用新语法,但是当我在扩展清单的package.json#contributes部分使用它时,它会失败。

{
    "contributes": {
        "languages": [
            {
                "id": "todone",
                "aliases": [
                    "ToDone",
                    "To-Done"
                ],
                "extensions": [
                    ".todone",
                    ".todo"
                ]
            }
        ],
        "grammars": [
            {
                "language": "todone",
                "scopeName": "text.todone",
                "path": "./todone.tmLanguage"
            }
        ],
        "configurationDefaults": {
            "[todone]": {
                "editor.insertSpaces": false,
                "editor.tokenColorCustomizations": {
                    "textMateRules": [
                        {
                            "scope": "symbol.definition.task-heading.todone",
                            "settings": {
                                "foreground": "#ff8800"
                            }
                        }
                    ]
                }
            }
        }
    }
}

到目前为止,语法似乎没问题 - 它正是Sublime插件正在使用的内容,并且正确应用了用户设置中的颜色。此外,设置的格式似乎没问题,因为正在应用"editor.insertSpaces"并且当用户设置中存在颜色时这些颜色正在工作。

最后,我在扩展package.json中的'Warning' 'Unknown editor configuration setting'设置上收到了一条非常令人失望的"editor.tokenColorCustomizations"消息。

那么,这个设置听起来没有启用扩展名吗?

我看到的另一条可能的路线是使用装饰器。但是,在检查与文档中的部分文本相关联的语法标记时,我没有看到任何内容,例如某种方式迭代文档的语法标记来应用装饰器。因此,与" editor.tokenColorCustomizations"相比,装饰器路线听起来很艰难。

非常感谢任何有关如何完成这项工作的建议。

修改:到目前为止,该代码位于GitHub上:tiffon/vscode-todone

0 个答案:

没有答案