问题标签 [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.

0 投票
0 回答
122 浏览

node.js - 如何为具有大量文件的项目实现基于 LSP 的“转到定义”类型的功能?

是否有推荐的 LSP 实施方法?

据我了解,我需要在后台读取/索引所有文件并将各种声明存储在内存中。

示例列表:https : //microsoft.github.io/language-server-protocol/implementors/servers LSP 服务器是在 nodejs + typescript 上编写的

0 投票
0 回答
770 浏览

visual-studio-code - 如何查看 VSCode 语言服务器进程的日志?

情况

我正在尝试编写VSCode Language Server Protocol (LSP) Extension。我让它运行如下:

  • 通过从终端lsp-server运行启动的进程haskell-lsp-example-exe
  • 用Typescriptlsp-client编写的,目前基本上只是启动lsp-server(它基于lsp-sample存储库)

lsp-server启动如下:

使用lsp-client启动code --extensionDevelopmentPath="path/to/extension"

我可以看到它正确启动,我可以pid通过活动监视器找到它(我在 Mac 上)。

问题

如何查看由 VSCode 生成的此进程的日志?

语境

我尝试了以下方法:

  • lsp-client/package.json我设置了以下内容,这给了我来回传递的消息。但不是lsp-server.:的日志
  • 我也尝试在启动的 VSCode 实例中打开开发工具,但这给出了日志lsp-client
  • 在启动的 VSCode 实例中标记的日志Log (Extension Host)也看起来不太有用

提前感谢您的帮助!

0 投票
1 回答
474 浏览

visual-studio-code - VSCode:获取语言服务器中的编辑器内容

我正在尝试将语言服务器开发为 VS Code 中的新语言,并且我使用 Microsoft 示例作为参考(https://github.com/microsoft/vscode-extension-samples/tree/master/lsp-sample)。

在他们的示例中,自动完成是在这段代码中完成的:

正如评论所说,这是一个愚蠢的自动完成系统,因为它总是提供相同的建议。

我可以看到有一个类型的输入参数,TextDocumentPositionParams并且该类型具有以下接口:

它有光标位置和 aTextDocumentIdentifier但最后一个只有一个 uri 属性。

我想创建一个智能的自动完成系统,基于光标位置中单词的对象类型。

这个样本非常有限,我有点迷路了。我想我可以读取uri属性中的文件,并根据光标位置找出我应该建议哪些项目。但是文件没有保存怎么办?如果我读取文件,我会读取磁盘上的数据,而不是编辑器中当前显示的数据。

最好的方法是什么?

0 投票
1 回答
498 浏览

node.js - 如何将自定义命令从客户端发送到服务器(LSP 实现)

我的实现基于“vscode-languageserver”,我想知道如何将自定义请求发送到 vscode 服务器实现。

0 投票
0 回答
309 浏览

visual-studio-code - 如何从语言服务器主机调用内置命令“vscode.executeReferenceProvider”

我尝试从语言服务器执行内置命令“vscode.executeReferenceProvider”。该命令在“onCodeLensResolve”方法的上下文中作为“CodeLens”对象的属性提供。

错误:

运行贡献的命令:“vscode.executeReferenceProvider”失败。非法参数 'uri' - 文本文档的 Uri

0 投票
1 回答
27 浏览

visual-studio-code - 语言服务器如何访问与源文件位于同一目录中的文件

我正在为我的自定义语言编写语言服务器。处理源文件的方式部分受与源文件位于同一目录中的 manifest.json 文件的影响。在工作空间中,可能有多个目录,其中包含多个源文件和每个目录 1 个清单文件。例子

当用户编辑文件时,如何使manifest.json文件对语言服务器可用.xyz

0 投票
1 回答
250 浏览

visual-studio-code - 语言服务器 onCompletion 只听字母 [az],如何启用句点 (.)

存储库中的 lsp-sample https://github.com/microsoft/vscode-extension-samples/tree/master/lsp-sample展示了如何实现onCompletion

服务器只听字母 [az] 而不是句点 (.) 我已经看到这是用 控制的triggerCharacters,但我不清楚在哪里设置这些。这似乎是合乎逻辑的,这需要在客户端部分完成,但似乎我只能注册另一个onCompletion处理程序。任何人都可以解释一下吗?

这是服务器端代码:

0 投票
1 回答
106 浏览

javascript - 将片段添加到语言服务器

我想向自动完成服务添加更多关键字和片段。

例如; 如果我输入FooBar它会建议

如何扩展语言服务器

如果重要的话,我正在使用vim-lsp

参考

0 投票
1 回答
91 浏览

c# - 如何在 Visual Studio 中为 LSP 启用诊断跟踪

我正在尝试在 Visual Studio 中启用 LSP 的诊断跟踪,就像用msdn编写的一样。

根据说明,我做了以下步骤:

  1. ConfigurationSections已将ILanguageClient

    /li>
  2. 我在以下行创建了 VSWorkspaceSettings.json 文件:

    /li>
  3. 我将 VSWorkspaceSettings.json 文件添加到ILanguageClient写入 .vs 的文件夹和实现 LSP 的解决方案的 .vs 文件夹中。

但是,它不起作用。我错过了什么?也许我将 VSWorkspaceSettings.json 文件复制到了错误的文件夹中?

0 投票
0 回答
545 浏览

visual-studio-code - 如何将现有语言服务器连接到新的 VS Code 扩展

VS Code 允许您安装像 ccls 或 clang 这样的语言服务器作为另一个扩展。但是如何将它连接到我的新自定义扩展?我可以看到有关如何编写自己的语言服务器的信息,但看不到如何利用现有语言服务器的信息。