标签: language-server-protocol

我们可以在 Visual Studio Code 中扩展现有扩展吗?

我正在研究 Visual Studio Code 扩展。我想为 Visual Studio Codecode completeMicrosoft Python 扩展(IntelliSense)添加更多项目

我不知道怎么做 我只是想出一些解决方案:
1. 为现有的扩展编写一个新的扩展vscode-python来自定义code complete项目。
-> 我们可以为现有扩展编写扩展吗?
2. 编写一个新的扩展来适应 Visual Studio Code 编辑器与vscode-python. 在此,我将转发/自定义来自编辑器的请求vscode-python,然后在返回编辑器之前将我的项目自定义/插入到响应中。

我正在研究 VSCode 扩展,所以我不知道哪个解决方案是可以实现的。你能帮我还是给我一些关于另一种解决方案的提示。

python visual-studio-code vscode-extensions language-server-protocol

6
推荐指数
0
解决办法
211
查看次数

如何扩展现有的语言服务器?

我将创建一个与 javascript 非常相似的语言服务器。
有没有办法重用现有的 javascript 服务器来突出显示、自动完成、语法错误等?
我正在寻找的是扩展javascript语言服务器并提供额外的关键字、语法突出显示、自动完成等。

visual-studio-code vscode-extensions language-server-protocol

6
推荐指数
0
解决办法
732
查看次数

什么是 .clientrc 文件?

您可以在这里找到它的提及: https: //code.visualstudio.com/api/language-extensions/language-server-extension-guide ,但没有任何解释。我无法通过谷歌搜索找到有关它的信息。

文件的目的是什么.clientrc

node.js visual-studio-code vscode-extensions language-server-protocol

6
推荐指数
1
解决办法
633
查看次数

语言服务器是远程进程还是本地进程

许多 IDE 和插件都谈到提供一些 IDE 功能(例如自动完成、linting 和突出显示)的语言服务器。语言服务器只是在我的机器上运行的一些本地进程,还是我的代码被发送到某个地方进行分析(如果我没有互联网,功能会停止工作)。另外,如果代码被发送到某个地方,那怎么安全呢?

language-server-protocol python-language-server

6
推荐指数
1
解决办法
2567
查看次数

如何通过语言服务器实现quickfix

我已经实现了一个提供一些 linting 的语言服务器。linter 检查所需属性并发出“缺少属性”错误。我想为这些错误提供相应的“插入缺失的属性”快速修复。

我认为 LSP 协议的一般领域是:

文本文档/代码操作

这样,服务器可以为“缺失属性”诊断标记返回“插入缺失属性”命令。

但是服务器如何实现“插入缺失的属性”命令本身呢?

查看 lsp 规范,我找不到任何可以让服务器注册命令的内容。

我确实在这里找到了一些关于 vscode apis 的信息,用于在客户端注册命令:https ://code.visualstudio.com/docs/extensionAPI/vscode-api

所以我想我可以在客户端注册并实现“插入缺失的属性”,但是......

客户端只是一个“愚蠢”的包装器,将大部分工作委托给服务器。因此,它并不真正理解文档结构,也不是实现需要理解该结构的文档转换的好地方。

似乎我最好的选择是向我的语言服务器添加一些“自定义”协议,以便我可以在客户端实现“插入缺失的属性”命令,但将计算 quickfix 编辑的困难部分委托给服务器.

或者,还有更好的方法?

visual-studio-code vscode-extensions language-server-protocol

5
推荐指数
1
解决办法
1877
查看次数

Sublime Text:[Errno 2]没有这样的文件或目录:'gopls'

在 Sublime Text 3 上安装 LSP 服务器,然后从LSP: Enable Language Server Globally> 选择的启用 gopls gopls

\n

还在终端上执行以下命令。

\n
GO111MODULE=on go get golang.org/x/tools/gopls@latest\n
Run Code Online (Sandbox Code Playgroud)\n

显示错误:

\n

无法启动 gopls

\n

LSP.sublime-设置

\n
{\n    "clients":\n    {\n        "gopls":\n        {\n            "enabled": true\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

gopls命令

\n
\xe2\x9d\xaf  which gopls\n/home/user/go/bin/gopls\n
Run Code Online (Sandbox Code Playgroud)\n

我正在使用 MX Linux。请帮忙 !

\n

来源

\n

linux autocomplete go sublimetext3 language-server-protocol

5
推荐指数
1
解决办法
1775
查看次数

为什么 cland 看不到我的自定义库位置

问题陈述:

我在自定义位置安装了一个库,编译和链接工作正常,但 clangd 报告与自定义库相关的各种错误。

我的 Makefile 有以下标志:

CFLAGS += -I/usr/local/share/mylib                             
LDFLAGS += -lmylib -L/usr/local/lib/
...
<snip>
Run Code Online (Sandbox Code Playgroud)

但是,clangd 不知道如何查找头文件,因此我的编辑器显示如下错误,但没有帮助:

#include <mylibheader.h>    'mylibheader.h' file not found

mylib_type1_t foo                     unknown type name 'mylib_type1_t'

...
<snip>
Run Code Online (Sandbox Code Playgroud)

在互联网上搜索错误和关键字clangd, clangd config,clangd .clang-format未能在 SO 或其他地方产生任何有用的东西(因此这个问题)。

问题是:

如何告诉 clangd 我的非标准标头在哪里,以便它不会显示虚假的“文件未找到”警告?

c linux makefile language-server-protocol clangd

5
推荐指数
1
解决办法
4840
查看次数

rlanguageserver:禁用特定的 linter 并避免换行

我正在使用 emacs 和 lsp 模式。为了编辑 .R 文件,我使用 rlanguageserver。

这很好用。但是,我想禁用一些规则。例如,我确实想决定我的变量名称格式,即禁用“变量名称应该是snake_case”消息。

.lintr在我的主目录中放置了一个文件,内容如下:

linters: with_defaults(snake_case_linter = NULL)
Run Code Online (Sandbox Code Playgroud)

但没有任何效果。为什么?

另外,当我重新缩进一个区域时,我想重新缩进而不添加或删除换行符,即我想手动选择换行符。我怎样才能实现这个目标?

emacs r linter language-server-protocol

5
推荐指数
1
解决办法
432
查看次数

Monaco Editor - 添加Python语言服务器

我正在尝试在 Monaco Editor 中添加对 Python 智能感知的支持。我发现的所有示例都涉及使用在服务器上运行的 Python 语言服务器并使用 websocket 与前端进行通信;然而,Monaco 运行的 TS 语言服务器是在浏览器工作线程内部运行的,所以我尝试为 Python 模拟同样的事情。

我查看了此地址中的示例,但它们对于我的用例来说不够具体,因为它们非常简单,并且不涉及运行成熟的语言服务器。

如何才能做到这一点?

python intellisense monaco-editor language-server-protocol

5
推荐指数
0
解决办法
3251
查看次数

如何获取 neovim LSP 中的所有接口(或任何令牌)?

我试图从给定的缓冲区获取所有接口。为此,我想获取所有令牌并过滤掉除接口之外的所有内容。但是,当我尝试致电 LSP 时:我没有得到任何回复。

local bufnr = vim.api.nvim_get_current_buf()
local params = vim.lsp.util.make_text_document_params()
local result = vim.lsp.buf_request_sync(bufnr, "textDocument/documentSymbol", params, 2000)
print(vim.inspect(result))
Run Code Online (Sandbox Code Playgroud)

我得到的只是一张空地图。我显然错过了一些明显的东西,但我不知道是什么。

{
  [2] = {
    result = {}
  }
}
Run Code Online (Sandbox Code Playgroud)

lua neovim language-server-protocol

5
推荐指数
1
解决办法
300
查看次数