我为我的脚本语言创建了 VS Code 的自定义语法突出显示扩展。
我开始从标准文件夹中运行 Yeoman Visual Studio Code Extension Generator。在提供了我的语言的一些通用详细信息(例如名称、文件扩展名等)后,Yeoman 创建了一个以我的语言命名的文件夹,并询问我是否要打开 VS Code 来处理它。
我说是的,并开始修改名为syntaxes/bonal.tmLanguage.json的语法特定文件(bonal是语言,.bnl是文件扩展名)以满足我的需要。
按照名为 vsc-extension-quickstart.md 的文件(在 Yeoman 创建的文件夹内)中的建议:
## Get up and running straight away
* Make sure the language configuration settings in `language-configuration.json`
are accurate.
* Press `F5` to open a new window with your extension loaded.
* Create a new file with a file name suffix matching your language.
* Verify that syntax highlighting works and that the language configuration
settings are working.
我就这样做了,进行更改并通过 F5 启动 VS Code 窗口来测试我的语法调整,直到一切都如我所愿。
之后,“简单”部分应该是将 Yeoman 创建的包含整个内容的“bonal”目录复制到
<user home>/.vscode/extensions
;关闭 VS Code 并在带有扩展名为“.bnl”的源代码文件的地方启动它。
但它无法识别这些文件。它只是将它们视为“Markdown”文件,如果我尝试在编辑器右下角选择文件类型,则“bonal”不存在(这是在前面提到的创建目录中工作时的情况)。我尝试建立文件关联(命令面板 + 更改语言模式),但未列出语言(处于 F5 调试模式)。我还尝试在 '/.vscode/' 中创建一个 settings.json 文件,但这也不起作用。
{
"files.associations": {
"*.bnl": "bonal"
}
}
而且,正如我之前提到的,如果我进入我开发整个东西的目录并运行“code bonal”,加上 F5 等。它可以工作! (如果我在 '/.vscode/extensions/' + F5 中启动 'code bonal' 也有效)
任何关于我做错了什么的想法将不胜感激。
以防万一,我使用 ubuntu 22.04 和 VS Code 1.81.1
这是“package.json”文件:
{
"name": "bonal",
"displayName": "Bonal",
"description": "BONAL Programming Language",
"version": "0.0.1",
"engines": {
"vscode": "^1.81.0"
},
"categories": [
"Programming Languages"
],
"contributes": {
"languages": [{
"id": "bonal",
"aliases": ["Bonal", "bonal"],
"extensions": [".bnl"],
"configuration": "./language-configuration.json"
}],
"grammars": [{
"language": "bonal",
"scopeName": "source.bonal",
"path": "./syntaxes/bonal.tmLanguage.json"
}]
}
}
提前致谢!
请勿将您自己的扩展移动/复制到
.vscode/extensions
来安装它们。相反,请按 Ctrl+Shift+P 并选择 Developer: Install Extension from Location...
。将出现一个目录选择器,您必须选择扩展程序所在的目录。这不会复制文件夹,但会从其位置读取您的扩展(因此您无需在更改后重新安装扩展)。
对扩展进行更改后,要重新启动它,请再次按 Ctrl+Shift+P,然后选择
Developer: Reload Window
刷新 VS Code 窗口。或者,关闭 VS Code 并重新打开它。