关于如何向 Visual Studio 代码添加对语言的符号支持的文档在哪里?
Where are the docs on how to add symbol support for a language to Visual Studio Code?
我想为 VS Code 添加对 PowerShell 的符号支持,但我在 code.visualstudio.com/docs 站点上找不到任何文档。
此外,对于像 PowerShell 这样目前只能在 Windows 上运行的语言,是否可以执行此操作?有没有办法仅在 Windows 上点亮符号支持?
顺便说一句,我添加了一堆 PowerShell snippets,我正在尝试将其集成到 VS Code 中。任何有关如何将这些片段添加到产品中的帮助也将不胜感激?我确实提交了关于代码片段的问题,建议团队将它们放入 VS Code。
目前没有插件的文档API。现在还为时过早,因为 API 仍在随着每个次要版本的变化而变化。 VSCode 团队专注于提供稳定的插件 API。完成后会有一个关于它的文档。
尽管如此,已经可以添加新的语言插件或扩展现有的语言插件。看看这个关于如何为新语言添加声明支持的简短描述:Create Custom Language in Visual Studio Code
您可以用类似的方式添加符号支持。您需要的是类似于 powershell 脚本和应用程序的抽象语法树构建器或能够处理 JSON 请求以提供正确符号的 javascript 模块。大纲支持请求示例如下:
{
"seq":442,
"type":"request",
"command":"navbar",
"arguments":
{
"file":"c:/Users/C/Documents/projects/MyProject/MyFile.xxx"
}
}
回复可能如下所示:
{
"seq":442,
"type":"response",
"command":"navbar",
"request_seq":442,
"success":true,
"body":[
{
"text":"TObjA",
"kind":"class",
"kindModifiers":"",
"spans":[
{
"start":{
"line":10,
"offset":3
},
"end":{
"line":16,
"offset":4
}
}
],
"childItems":[
]
},
{
"text":"DoSomething",
"kind":"method",
"kindModifiers":"",
"spans":[
{
"start":{
"line":20,
"offset":1
},
"end":{
"line":27,
"offset":4
}
}
],
"childItems":[
]
},
]
}
我不确定 "symbol support" 是什么意思。是不是像 "jump to symbol inside the current file" 使用 CTRL+Shift+O
?那么你正在寻找outlineSupport
。
是不是像 "find a symbol in any file" 使用 CTRL+P, #
?那么你正在寻找navigateTypesSupport
。
将所需的 .js
文件从 vs.langauage.csharp.o
文件夹复制到 vs.langauage.powershell
文件夹,并像在 omnisharpMain.js
中那样在 powershellMain.js
中注册支持。
如果您只想在 Windows 上注册新支持,那么您可以这样做:
var isWin = /^win/.test(process.platform);
if(isWin)
monaco.Modes.NavigateTypesSupport.register('powershell', new navigateTypesSupport_1.default(ModelService, server));
我希望这对目前有所帮助。不要忘记将更改的插件保存在不同的文件夹中。 VSCode 经常在更新时删除插件文件夹中的更改。
我想为 VS Code 添加对 PowerShell 的符号支持,但我在 code.visualstudio.com/docs 站点上找不到任何文档。
此外,对于像 PowerShell 这样目前只能在 Windows 上运行的语言,是否可以执行此操作?有没有办法仅在 Windows 上点亮符号支持?
顺便说一句,我添加了一堆 PowerShell snippets,我正在尝试将其集成到 VS Code 中。任何有关如何将这些片段添加到产品中的帮助也将不胜感激?我确实提交了关于代码片段的问题,建议团队将它们放入 VS Code。
目前没有插件的文档API。现在还为时过早,因为 API 仍在随着每个次要版本的变化而变化。 VSCode 团队专注于提供稳定的插件 API。完成后会有一个关于它的文档。
尽管如此,已经可以添加新的语言插件或扩展现有的语言插件。看看这个关于如何为新语言添加声明支持的简短描述:Create Custom Language in Visual Studio Code
您可以用类似的方式添加符号支持。您需要的是类似于 powershell 脚本和应用程序的抽象语法树构建器或能够处理 JSON 请求以提供正确符号的 javascript 模块。大纲支持请求示例如下:
{
"seq":442,
"type":"request",
"command":"navbar",
"arguments":
{
"file":"c:/Users/C/Documents/projects/MyProject/MyFile.xxx"
}
}
回复可能如下所示:
{
"seq":442,
"type":"response",
"command":"navbar",
"request_seq":442,
"success":true,
"body":[
{
"text":"TObjA",
"kind":"class",
"kindModifiers":"",
"spans":[
{
"start":{
"line":10,
"offset":3
},
"end":{
"line":16,
"offset":4
}
}
],
"childItems":[
]
},
{
"text":"DoSomething",
"kind":"method",
"kindModifiers":"",
"spans":[
{
"start":{
"line":20,
"offset":1
},
"end":{
"line":27,
"offset":4
}
}
],
"childItems":[
]
},
]
}
我不确定 "symbol support" 是什么意思。是不是像 "jump to symbol inside the current file" 使用 CTRL+Shift+O
?那么你正在寻找outlineSupport
。
是不是像 "find a symbol in any file" 使用 CTRL+P, #
?那么你正在寻找navigateTypesSupport
。
将所需的 .js
文件从 vs.langauage.csharp.o
文件夹复制到 vs.langauage.powershell
文件夹,并像在 omnisharpMain.js
中那样在 powershellMain.js
中注册支持。
如果您只想在 Windows 上注册新支持,那么您可以这样做:
var isWin = /^win/.test(process.platform);
if(isWin)
monaco.Modes.NavigateTypesSupport.register('powershell', new navigateTypesSupport_1.default(ModelService, server));
我希望这对目前有所帮助。不要忘记将更改的插件保存在不同的文件夹中。 VSCode 经常在更新时删除插件文件夹中的更改。