问题标签 [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 投票
1 回答
248 浏览

vscode-extensions - 如何从 vscode 语言服务器对文本文档进行编辑?

如何从 LSP 语言服务器 vscode 扩展的服务器端对文本文档进行编辑?也许我必须创建一个 WorkspaceEdit 结构并向客户端发送一个 workspace/applyEdit 请求?寻找一些我可以查看的示例代码。

我要做什么:在最初的 onDidChangeContent 事件中(打开文件时),我希望 LSP 服务器检查打开文件中的代码,并可能插入一些丢失的代码。

0 投票
1 回答
369 浏览

vim - 如何将 IAR .ewp 转换为 LSP compile_commands.json 数据库

我正在寻求compile_commands.json从我的 IAR .ewp 项目中创建一个数据库。这将允许我在我的 vim 设置中使用智能 LSP 自动完成 ( ccls ) 和适当的语义突出显示 ( vim-lsp-cxx-highlight )。

我知道我可以手动创建一个 CMake 文件,其设置与 .ewp 项目文件中的设置相同,但不幸的是,我所有的同事都使用 IAR IDE。我可能会错过我的同事所做的一些重要的项目设置更改,而我无法更新 .ewp。如果我可以自动将 .ewp 文件解析为 CMake,从而创建命令数据库,那就太好了。

有人知道这样做的聪明方法吗?如果不是,我将如何创建一个可以做到这一点的工具?看来,通过取消定义 Clang 编译器定义,可以使 ccls 充分利用 IAR 代码库。

0 投票
1 回答
331 浏览

json - QtCreator 中的 JSON 语言服务器

我似乎无法获得在 QtCreator 中工作的 JSON(未尝试过其他)的语言服务器。

我下载了 vscode-json-langageserver 并在 QtCreator 选项中进行了设置...语言客户端:

我已经设置了 MIME 类型,并尝试了各种组合。功能字段报告“在服务器被初始化后可用”,当我打开一个 json 文件时我看不到任何区别。

有什么建议么?

0 投票
0 回答
460 浏览

language-server-protocol - textDocument/Definition、textDocument/implementation 有什么区别?

我通读了 LSP规范,但我无法理解 goto 定义和 goto 实现请求之间的区别。

转到定义请求

转到定义请求从客户端发送到服务器,以解析符号在给定文本文档位置的定义位置。

转到实施请求

go to implementation 请求从客户端发送到服务器,以解析符号在给定文本文档位置的实现位置。

0 投票
2 回答
5207 浏览

c# - neovim / vim8 的 C# LSP 自动补全客户端

我已经尝试了几种方法来使它工作,但似乎没有简单的方法。是的,有大量的插件和配置。但根据 2019 年 10 月,它们不能正常工作。

  • OmniSharp-Vim客户端需要配置,它仅涵盖 C#,它列出了不再起作用的插件集成(尝试在 ALE 中选择它进行 linting)。
  • YouCompeleteMe应该可以工作,但它很大而且看起来很臃肿。
  • Deoplete没有 C# 的源代码,我发现的配置已经过时。
  • Coc.nvim甚至没有列出 C# 和“非官方”配置有问题(像这样)。此外 Coc.nvim 似乎是 VS Code 的外星人。
  • LanguageClient-neovim我没有找到合理的配置,似乎是因为C# LSP 服务器需要 .sln 文件。

所以这似乎 csharpers 应该去 VS(或 Rider),那是 MS 提出 LSP 的时候。你如何让 IDE 像 nvim 一样与 C# 一起工作?

基本上客户端应该像这样启动服务器并使用 LSP。

0 投票
0 回答
93 浏览

xtext - Xtext 语言服务器和全局范围

我已经为基于 Xtext 和 VS 代码扩展的类似 Java 的“玩具”DSL 实现了语言服务器,一切都像魅力一样工作。

为了稍微改进我的语言服务器,我添加了“导入”支持,并利用范围系统来解决跨文件引用和全局范围。再一次,它就像一个魅力。尽管如此,为了让语言服务器能够解析导入的分类器,这两个文件应该位于同一个工作区中。

为了在工作区边界之外启用全局范围,我正在考虑在 YML 中添加类路径定义文件,其中包含指向其他文件的路径,这些文件被引用并位于工作区边界之外。这个想法是在被其他文件引用时懒惰地解决它们。假设类路径规范将与引用文件在同一个项目中。

这是我们可以在 Xtext 中做的事情吗?如果是这样,你能指点我一些代码片段吗?

先感谢您,

0 投票
1 回答
2698 浏览

javascript - 摩纳哥编辑器:只显示文件的一部分

有没有办法只显示文档的一部分,或者在模型的 monacos 情况下,同时仍然获得整个文档的智能感知?

我只希望用户编辑文档的一部分,但用户应该能够获得正确的上下文智能感知。

我的用例最好隐藏不可编辑的部分,但停用它们也可以。

如果这是不可能的,是否有任何嵌入式编辑器可以做到这一点,或者这可以通过修改语言服务器来实现吗?

0 投票
1 回答
153 浏览

visual-studio-code - VsCode 扩展可以获取任何语言服务器的完成项吗?

作为标题,我想在我自己的扩展中获取打字稿语言服务器的完成项。我应该怎么做?

如果除了自己运行语言服务器还有其他方法吗?

0 投票
4 回答
7970 浏览

python - 如何在 Neovim 中使用 Python 语言服务器协议

我花了很多时间弄清楚如何在 neovim 中使用 Python (3) 的语言服务器协议 (LSP)。主要是我正在寻找 Python 3 的自动完成功能,它是 PySide2 之类的模块。

可悲的是,我无法让我的配置文件 (.config/vim/init.vim) 工作。我知道github上有很多。但是它们包含了很多额外的功能,以至于我还不能根据我的需要来调整其中的一个。还有一些也已经过时了。

所以这是我迄今为止尝试过的:

www.langserver.org 有很长的语言客户端和服务器列表。

我为 Python 安装了 Palantir 语言服务器协议(https://github.com/palantir/python-language-server):

在下一步中,我通过 vim-plug 为 neovim 安装了一个语言客户端。实际上我尝试了几个,但让我们坚持以 ale 为例(https://github.com/dense-analysis/ale):

并通过安装它:PlugInstall

然后必须在加载 Ale 之前进行自动完成设置:

要与 Omnicompletion 一起使用,还需要另外一项设置:

经过一番谷歌搜索后,我读到我必须注册语言服务器(https://vi.stackexchange.com/questions/20958/use-the-pyls-python-lsp-with-ale-on-neovim):

这给了我最终的 init.vim:

如果我现在打开如下所示的文件并PySide2.在 nvim 中仅获得以下屏幕后按 Ctrl + N 完成:

它只是一个已经出现在文件中的单词的列表——就像普通的 Omnicompletion 一样,但不是 PySide2 库中的模块。

我只是在寻找一种简约的配置来通过 LSP 启用自动完成功能。

0 投票
1 回答
550 浏览

visual-studio-code - 如何对语言服务器中的文件系统事件做出反应

我正在为 VS Code 的自定义语言编写语言服务器协议扩展。我正在使用 OmniSharp 语言服务器 API 用 C# 编写服务器部分。

我在实现 DidChangeWatchedFile 功能时遇到了问题。即使我实现了IDidChangeWatchedFilesHandler接口,通知也不会从客户端或服务器发送。

根据规范,应该有一个DidChangeWatchedFilesRegistrationOptions接口,可以在其中注册自定义文件事件,但我在 OmniSharp 的任何地方都找不到这个接口。我希望能够对在工作区中更改/添加/删除特定文件并且文件未在编辑器中打开(因此不由DidChangeTextDocument处理程序处理)的情况作出反应。

任何提示/建议都会受到欢迎。

谢谢!