我想将PowerShell的符号支持添加到VS Code,但我没有在code.visualstudio.com/docs网站上找到任何文档。
此外,是否可以针对像PowerShell这样的语言执行此操作,目前只能在Windows上运行?有没有办法在Windows上点亮符号支持?
BTW我已经添加了一堆PowerShell snippets,我试图将其集成到VS Code中。有关如何将这些片段融入产品的任何帮助也会受到赞赏吗?我确实在片段上提交了一个问题,建议团队将这些内容放入VS Code。
答案 0 :(得分:2)
目前没有插件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":[
]
},
]
}
我不确定你的意思是什么"符号支持"。它是否类似"跳转到当前文件中的符号"使用CTRL+Shift+O
?然后你正在寻找outlineSupport
。
它是否类似"在任何文件中找到符号"使用CTRL+P, #
?然后你正在寻找navigateTypesSupport
。
将所需的.js
文件从vs.langauage.csharp.o
文件夹复制到vs.langauage.powershell
文件夹,然后在powershellMain.js
中注册支持,就像在omnisharpMain.js
中一样。
如果您只想在Windows上注册新支持,那么您可以这样做:
var isWin = /^win/.test(process.platform);
if(isWin)
monaco.Modes.NavigateTypesSupport.register('powershell', new navigateTypesSupport_1.default(ModelService, server));
我希望这对目前有帮助。别忘了将更改后的插件保存在其他文件夹中。 VSCode通常会在更新时删除插件文件夹中的更改。