Visual Studio 代码语言扩展继承现有
Visual Studio Code Language Extension Inherit Existing
在 Visual Studio 代码中,只需提供一个语法文件即可相对容易地添加您自己的语言扩展,例如通过 JSON.
我想为我使用的特定脚本语言提供语法文件。脚本语言嵌入在 ARM 汇编源代码中,已经有一个插件。所以我基本上想通过我的脚本语言来扩展 ARM Extension。目前可以吗?
在我看来,这将是 IMO 的方法,因为如果我只是复制现有的扩展(这是 MIT 许可的),我实际上会创建一个硬分叉,但我不打算这样做。
1。注射
您可以通过将以下内容添加到您的 package.json
来将您的语言扩展注入父范围的范围:
"contributes": {
"grammars": [
{
"scopeName": "source.asm.x86_64.your_syntax_extension",
"path": "./syntaxes/your_syntax_extension.json",
"injectTo": [ "source.asm.x86_64" ]
}
]
}
2。包括
如果您的语言扩展使用自定义文件类型,或者您想覆盖某些父范围的语法定义,您可以编写自己的定义并包含父范围。您可以使用以下任一格式:
your_syntax_extension.json
{
"fileTypes": [
"myExtension"
],
"name": "Your Syntax Extension",
"patterns": [
{
"include": "source.asm.x86_64"
}
],
"scopeName": "source.asm.x86_64.your_syntax_extension"
}
your_syntax_extension.tmLanguage
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>myExtension</string>
</array>
<key>name</key>
<string>Your Syntax Extension</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.asm.x86_64</string>
</dict>
</array>
<key>scopeName</key>
<string>source.asm.x86_64.your_syntax_extension</string>
</dict>
</plist>
在这两种情况下,您可能都希望将扩展包作为依赖项包含在内。为此,请将其唯一标识符添加到您的 package.json
:
"extensionDependencies": [
"13xforever.language-x86-64-assembly"
]
在 Visual Studio 代码中,只需提供一个语法文件即可相对容易地添加您自己的语言扩展,例如通过 JSON.
我想为我使用的特定脚本语言提供语法文件。脚本语言嵌入在 ARM 汇编源代码中,已经有一个插件。所以我基本上想通过我的脚本语言来扩展 ARM Extension。目前可以吗?
在我看来,这将是 IMO 的方法,因为如果我只是复制现有的扩展(这是 MIT 许可的),我实际上会创建一个硬分叉,但我不打算这样做。
1。注射
您可以通过将以下内容添加到您的 package.json
来将您的语言扩展注入父范围的范围:
"contributes": {
"grammars": [
{
"scopeName": "source.asm.x86_64.your_syntax_extension",
"path": "./syntaxes/your_syntax_extension.json",
"injectTo": [ "source.asm.x86_64" ]
}
]
}
2。包括
如果您的语言扩展使用自定义文件类型,或者您想覆盖某些父范围的语法定义,您可以编写自己的定义并包含父范围。您可以使用以下任一格式:
your_syntax_extension.json
{
"fileTypes": [
"myExtension"
],
"name": "Your Syntax Extension",
"patterns": [
{
"include": "source.asm.x86_64"
}
],
"scopeName": "source.asm.x86_64.your_syntax_extension"
}
your_syntax_extension.tmLanguage
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>myExtension</string>
</array>
<key>name</key>
<string>Your Syntax Extension</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.asm.x86_64</string>
</dict>
</array>
<key>scopeName</key>
<string>source.asm.x86_64.your_syntax_extension</string>
</dict>
</plist>
在这两种情况下,您可能都希望将扩展包作为依赖项包含在内。为此,请将其唯一标识符添加到您的 package.json
:
"extensionDependencies": [
"13xforever.language-x86-64-assembly"
]