visual-studio-code - 有关如何向 Visual Studio Code 添加语言符号支持的文档在哪里?

标签 visual-studio-code

我想将对 PowerShell 的符号支持添加到 VS Code,但我在 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":[

        ]
    },
]
}

我不确定“符号支持”是什么意思。是不是类似于使用CTRL+Shift+O“跳转到当前文件中的符号”?那么您正在寻找 outlineSupport。 是不是类似于使用 CTRL+P, # “在任何文件中查找符号”?那么您正在寻找 navigateTypesSupport。 将所需的 .js 文件从 vs.langauage.csharp.o 文件夹复制到 vs.langauage.powershell 文件夹并在中注册支持powershellMain.jsomnisharpMain.js 中完成。

如果您只想在 Windows 上注册新支持,那么您可以这样做:

var isWin = /^win/.test(process.platform);
if(isWin)
  monaco.Modes.NavigateTypesSupport.register('powershell', new navigateTypesSupport_1.default(ModelService, server));

我希望这对目前有所帮助。不要忘记将更改的插件保存在不同的文件夹中。 VSCode 通常会在更新时删除插件文件夹中的更改。

关于visual-studio-code - 有关如何向 Visual Studio Code 添加语言符号支持的文档在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32554016/

相关文章:

git - 阅读 github.com/username/kit/go/database/go/database/go.mod 修订版 go/database/v1.0.1 : unknown revision go/database/v1. 0.1

css - 是否可以从 VS Code 中删除阴影

php - PHP 的 VSCode 类方法提示

python-3.x - vscode pytest 测试发现因缺少环境变量而失败

visual-studio-code - 如何在 VS Code 中从命令行打开远程文件夹?

visual-studio-code - 如何更改虚幻引擎以使用 Build Tool 2022 而不是 2019

visual-studio-code - 如何通过 Visual Studio Code 中的键盘快捷键切换 header /cpp 文件?

webpack - 如何设置 webpack 在 VS Code 中复制文件

visual-studio-code - VSCode 中的 Typescript 和 Javascript 语言功能扩展导致我的笔记本电脑过热

azure - 在 vscode 中使用 databricks 扩展时我的 kedro 输出在哪里