问题标签 [language-server-protocol]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-code - 如何从 vscode 扩展写入日志?
我正在尝试为 VSCode 开发带有语言服务器的扩展。我试图弄清楚如何从扩展的语言服务器部分编写文本以记录日志。console.log 什么也没产生
visual-studio-code - 无法将扩展的服务器部分附加到调试器
我正在遵循有关构建语言服务器扩展的指南(https://code.visualstudio.com/docs/extensions/example-language-server),它说要调试服务器部分,您只需从编辑器中按 F5 即可里面的服务器代码。但是,每当我这样做时,我都会得到:
错误无法连接到运行时进程(5000 毫秒后超时)。
visual-studio-code - 如何从语言服务器提供方法参数信息?
我正在尝试为方法调用类似于 JavaScript(方法名称加上括号内的参数)的语言实现 Visual Studio 代码的语言服务器。
在用户根据括号内光标的位置键入方法和括号后,我想提供参数信息(名称和类型)。例如,在 vscode 中使用 Typescript 进行编码时,如果我输入:
我得到一个工具提示,显示方法的签名和第一个参数名称并以粗体输入:
然后当我输入第一个参数并输入逗号时,工具提示会提供有关第二个参数的详细信息:
我能够找到一种方法来提供方法名称的自动完成功能,但不能提供上述参数的行为。是否有关于如何从 Visual Studio Code 中的语言服务器扩展提示该工具提示的示例或教程?
visual-studio-code - VSCode 中具有语义高亮显示的语言服务器
我想编写一个VSCode
支持语义突出显示的语言服务器。我使用的语言有非常复杂的规则,所以我不想依赖分词器来区分标识符和关键字。
我已经有一个语言服务VS Community
,在那里我编写了自己的分类器。可以在 中编写自己的分类器VSCode
,或者为文档着色的唯一方法是将TextMate
语言规范文件添加到VScode
包中?
typescript - 如何在 VSCode 中实现“转到定义”扩展
必须实施哪种方法vscode-languageserver::IConnection
才能在多个文件上提供“转到定义”功能?
我正在学习Language Server Node Example
和vscode“API文档”,但我没有找到任何信息。
typescript - 如何从语言服务器端检索 rootPath(或任何其他客户端信息)?
我正在基于示例“语言服务器”(https://code.visualstudio.com/docs/extensions/example-language-server)进行语言扩展。
在服务器端,我需要知道 vscode 使用的当前文件夹,在客户端,它将通过以下方式检索:
但是如果我尝试在服务器端使用它,
- 我收到 TS 编译器错误:错误 TS2307:找不到模块“vscode”
- 一旦客户端启动(在客户端使用 F5),我就无法连接到服务器(在服务器中使用 F5)。
我的服务器和客户端 package.json 都指定:
我的理解是服务器只通过 IConnection 对象与客户端通信,因此无法访问客户端维护的 vscode.* 数据。
我目前的工作是在服务器端使用它:
和客户端的这段代码:
有没有更好的方法来做到这一点?
visual-studio-code - 如何在启动时调试语言服务器崩溃
我可以调试客户端,这会导致扩展主机的启动。在我有幸将调试器附加到服务器之前,主机告诉我“语言服务器示例服务器在过去 3 分钟内崩溃了 5 次。服务器将不会重新启动。”
任何关于我如何获得一些诊断的线索或洞察力,记录任何东西都会很棒。
visual-studio-code - 将外部语言服务器连接到 VSCode 扩展
我想实现一个使用Language Server Protocol的 VSCode 扩展,但我希望服务器组件位于实际服务器(在云中)上,而不是 VSCode 扩展的一部分。
我可以将客户端扩展设置为通过 websockets 或 HTTP 连接到服务器吗?
visual-studio-code - 调试崩溃的语言服务器
如果我在这里的细节有点低,我很抱歉,但主要问题实际上是试图找到我的代码的问题。我正在更新我自己的基于语言服务器示例(https://code.visualstudio.com/docs/extensions/example-language-server)的旧扩展。我遇到了一个问题,当我使用 F5 运行代码的客户端部分时,调试窗口会触发,我得到:
CSSLint 语言客户端服务器在过去 3 分钟内崩溃了 5 次。服务器不会重新启动。
好的......所以......事情就是这样。我的扩展客户端代码中的问题视图没有显示任何内容。该代码窗口的 DevTools 没有显示任何内容。
我的服务器代码的问题视图没有显示任何内容。开发工具,同上。
对于 Extension Developer Host 实例,DevTools 确实显示了这一点:
messageService.ts:126 CSSLint 语言客户端服务器在过去 3 分钟内崩溃了 5 次。服务器不会重启。e.doShow@messageService.ts:126
但是我无法深入研究细节以找到错误。所以问题是 - 假设我的服务器代码失败了,错误究竟在哪里出现?
visual-studio-code - 如何通过语言服务器实现 quickfix
我已经实现了一个提供一些 linting 的语言服务器。linter 检查所需的属性并发出“缺少属性”错误。我想为这些错误提供相应的“插入缺失属性”快速修复。
我认为 LSP 协议的一般领域是:
这样,服务器可以为“缺少属性”诊断标记返回“插入缺失属性”命令。
但是服务器如何实现“插入缺失的属性”命令本身呢?
查看 lsp 规范,我找不到任何让服务器注册命令的东西。
我确实在这里找到了一些关于用于在客户端注册命令的 vscode api 的信息:https ://code.visualstudio.com/docs/extensionAPI/vscode-api
所以我想我可以在客户端注册并实现“插入缺失的属性”,但是......
客户端只是将大部分工作委派给服务器的“愚蠢”包装器。因此,它并不真正了解文档结构,也不是实现需要了解该结构的文档转换的好地方。
似乎我最好的选择是向我的语言服务器添加一些“自定义”协议,以便我可以在客户端实现“插入缺少的属性”命令,但将计算快速修复编辑的困难部分委托给服务器.
或者,还有更好的方法?