问题标签 [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 语言服务器详细日志显示正在发送请求'textDocument/hover - (9)' 但服务器没有收到消息
服务器是可执行程序,它使用 stdio 作为传输。它的 repo https://github.com/PMunch/nimlsp 日志显示它有一个初始化通知和文本文档 didopen 通知,为什么它不能得到请求类型的消息?无论是悬停还是定义请求。
clang - Windows Sublime 和 LSP-Clangd 插件:找不到 C++ 标头
我最近决定尝试 SublimeText 3,我发现它非常简洁,插件支持很广泛!我最近发现了这个插件:https ://github.com/tomv564/LSP ,我将它与 Clangd 一起使用。但问题是我所知道的错误在我尝试过时会编译。我采取的步骤很简单:
- 安装 Sublime:https ://download.sublimetext.com/Sublime%20Text%20Build%203176%20x64%20Setup.exe
- 为 Windows 安装 CLang.exe 预构建二进制文件:https ://releases.llvm.org/7.0.1/LLVM-7.0.1-win64.exe
- 重新启动计算机(因此可以对 Windows 环境 PATH 进行新的修改)。
- 从包控制安装 LSP
- 输入
LSP: Enable Language Server Globally
命令调色板 clangd
在随后的窗口中输入并点击enter
启用。- 重新启动 Sublime 并打开一个 C++ 文件。
C++ 文件本身没什么特别的,我可以把它贴在这里以确保零歧义:
这个文件是在我通过 WSL 实际运行它时构建的clang++ otherside.cpp
,但是在 Sublime.exe 中,我得到的两个错误是:
- 未找到“位/stdc++.h”文件
- using 指令引用隐式定义的命名空间“std”
- 使用未声明的标识符“cin”
- 使用未声明的标识符“cout”
- 使用未声明的标识符“endl”
我相信三个嵌套的项目符号可以通过“std”错误的解决方案来解决,所以我真的不认为它们是错误吗?
'bits/stdc++.h' 是我在参加编程比赛时使用的一个包含,所以我知道它存在,尽管在工作场所很糟糕,我知道这using namespace std
不是“好的做法”,但至少我知道它不是破坏编译的错误。这个感觉是Clangd的问题,但是我知道我以前用过的带LSP的IDE,比如Visual Studio和CLion都不会报这两个错误。以前有没有其他人解决过这个问题?
更新:我实际上花时间通过运行 Clang.exe来构建clang++ otherside.cpp
小的 cpp 文件。我得到了预期的错误,指定:“致命错误:找不到'bits/stdc++.h'文件”但是,clang++ otherside.cpp
在WSL上使用via编译它就可以了。因此,Windows 和 Linux 之间似乎存在差异。
我发现我需要 Windows 上的 C/C++ 头文件。根据:https : //clang.llvm.org/get_started.html,推荐的是 MSys 实用程序或 GNUWin32。我希望我可以通过 WSL 使用 C/C++ 标头,这可能吗?
22.19 年 2 月 22 日更新:我试图安装 MinGW C 和 C++ 编译器来获取 Clang 的头文件,但看起来如果我想让 Clang 找到这些头文件,我必须从源代码构建 Clang 并修改名为initHeaderSearch.cpp
. 同样,我希望有更多的解决方案,我可以将 WSL 的 C/C++ 头文件与 Clang.exe 一起使用。
此外,作为对我朋友的概念证明,我还在 WSL 上安装了 Sublime,并安装了 LSP-Clangd 插件以表明我在 Windows 上遇到的 Clang 错误都没有出现在 WSL Sublime 上。虽然这些错误确实没有出现在 WSL Sublime 上,但它提出了一个有趣的观点。也许有一种方法可以在 WSL 中启动Clangd 并让 Sublime.exe 与之挂钩?我知道在过去的几年里,WSL 取得了长足的进步,其中产生的一件事就是 AF_UNIX 套接字。不过,我对 unix 套接字并不是最熟悉的,是否可以使用它来启动或与 Clangd 交互?
node.js - 什么是 .clientrc 文件?
你可以在这里找到它的提及:https ://code.visualstudio.com/api/language-extensions/language-server-extension-guide 但是没有任何解释。无法在 google 中找到信息。
.clientrc 文件的目的是什么?
visual-studio-code - 语言服务器:如何启用“onDidOpenTextDocument”事件
我正在基于官方的 "lsp-sample"为 VS Code 开发语言服务器(和客户端) 。根据文档(语言服务器扩展指南),设置能力textDocumentSync: TextDocumentSyncKind.Incremental
应该使语言服务器能够接收事件onDidOpenTextDocument
,onDidChangeTextDocument
并且onDidCloseTextDocument
.
但是,VS Code 似乎没有将这些事件发送到语言服务器,并且事件处理程序中的断点(例如在这一行)没有被命中(但是,其他事件处理程序中的断点被命中,因此调试语言服务器确实有效) .
阻止 VS Code 发送这些事件的客户端或服务器配置可能有什么问题?
java - 如何在 VSCode 中获取 Java 抽象语法树?
我希望我的扩展能够读取 .java 文件的 Java AST,以进一步保存选定代码段的节点名称(例如,“ClassDeclaration”)。例如,如果您选择“public”,则 AST 告诉您它是“修饰符”,然后我想将节点名称“修饰符”保存为变量中的字符串。
首先,我需要 Java AST。
我首先查看了 VSCode 市场,但没有可用于 Java 的 AST 扩展(但你可以找到一些适用于其他语言,如 TypeScript)。我得到的结果是 Java 扩展包,其中包含许多有用的 Java 扩展,但没有一个是明确关于 AST 的。由于 Red Hat 有一个调试器和语言支持,我很确定他们使用 AST 来使他们的扩展工作,所以我查看了他们的源代码,试图找到这个但没有成功。我唯一知道的是它们引用了 Eclipse JDT“包”,但我不明白如何。答案可能就在那里,但代码对我来说很复杂。
我尝试的另一种方法是从 TypeScript AST(git 链接:https ://github.com/krizzdewizz/vscode-typescript-ast-explorer )获取源代码并尝试编写我自己的 Java AST 扩展(当然是在 TypeScript 中) ,但我很快意识到他使用的是 TypeScript 特定的 node_modules。我去寻找一个 Java 并想出了这个 npm 包:https ://www.npmjs.com/package/java-ast 。我不确定这是否有用,但我也不知道如何使用它(是的,有一个例子,我试过了,但你可以说我对此很陌生)。
如果有人可以进一步帮助我,我将不胜感激。
vim - 如何使用 Vim-lsp 使用函数括号或参数完成
在java代码中使用vim-lsp,在输入之后
出现以下候选人:
当我选择第一个候选人时,
但我想得到:
或者
我怎样才能做到这一点?
language-server-protocol - 编写 LSP 客户端的指南
我有一个个人编辑器,它实现了自己的代码完成“协议”,并希望切换到语言服务器协议以减轻自己的一些开发负担。但是,我无法完全理解有关客户端实现的LSP 文档。它与服务器实现混在一起,无法找到两者之间的明显区别。
许多在线文档(包括关于 SO 的问题)都围绕着 VSCode 扩展展开,我对此一无所知并且没有帮助。
对于开始编写仅查询自动完成功能的简单客户端的任何帮助,我将不胜感激。我用 C++ 编写我的编辑器,如果有任何解释如何创建客户端的教程,我将不胜感激。我可以理解 Python、C、C#、Pure JavaScript、C++、PHP 和类似语言,因此我可以轻松地学习这些语言的任何教程。
如果有任何不清楚的地方,请告诉我,以便我解释(这是我在 LSP 的第一篇文章 :))
python - 无法初始化语言服务器协议
我在玩 LSP,但我无法通过第一阶段。我使用 Python 作为客户端语言,因为它易于使用。我所做的就是:
- 连接到 LSP - 这工作正常
- 发送初始化 JSON RPC - 客户端报告成功
- 获得响应 - 空结果
我已经尽我所能,阅读了我能找到的一切,但我没有成功。我希望有人更熟悉 LSP 来帮助我指出做错了什么。
这是我的 Python 代码。我尝试使用PHP 语言服务器,但使用的服务器类型无关紧要。
visual-studio-code - 是否可以使用 Xtext Fat Jar 语言服务器创建 VS Code 扩展?
我正在尝试从 Xtext 创建的 FatJar 语言服务器中创建 VS Code 扩展。我还看到了示例项目(https://github.com/itemis/xtext-languageserver-example),但只有一个示例使用了对位于同一存储库中的父 xtext 项目的引用。是否可以直接从本地 jar 获取语言服务器(例如,直接位于 vscode 扩展项目中的目录 /server 中)?