问题标签 [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 回答
314 浏览

xtext - Xtext 语言服务器

我在 React 前端应用程序中包装了一个 Ace 编辑器,并使用 LanguageServerImpl 类提供了一个单独的 Java 后端,以便使用 Xtext 拥有我自己的语法。

我想使用 xtexts 验证和自动完成方法在 Ace Editor 和 Xtext Languageserver 之间传递数据。它的工作方式是在 Editor 和 Langserver 之间发送 JSON-RPC。但是没有文档说明如何将验证或自动完成从编辑器调用到服务器并返回编辑器并返回响应。JSON-RPC 是如何实现这种行为的?

这是我如何初始化 LangServer 的代码。目前输入是一个简单的 System.in 流。

我的第二个问题是:为什么我需要 LanguageClient?编辑器是由不同服务器托管的客户端...

0 投票
0 回答
518 浏览

monaco-editor - 将 OCaml 中定义的自定义语言添加到 Monaco Editor

我已经在 OCaml 中编写了一个重要的自定义语言。我知道这种方式纯粹是在 JavaScript中让 Monaco Editor 注册一种新语言。但是,我不知道在摩纳哥编辑器中注册时如何利用 OCaml 中定义的语言。

例如,我们已经在 OCaml 中定义了令牌,我们怎么能不在里面重新定义这些令牌monaco.languages.setMonarchTokensProvider呢?

我在这里做了一个小例子:https ://github.com/chengtie/mylang-monaco-editor 。在OCaml中定义了一种非常简单的语言mylang/,其中有INTBOOL。在example/index.js中,我们有以下代码来扩展 Monaco Editor 并实现基本的突出显示。我觉得两次定义这些标记并不好。

有谁知道如何将 OCaml 中定义的语言链接到 Monaco Editor?

0 投票
1 回答
3021 浏览

vim - Configuring Vim/Neovim ALE plugin to support :ALEGoToDefinition in JavaScript files

I installed the ALE plugin for Vim using vim-plug:

The plugin seems to have been installed correctly. I can use ALE to automatically format files with Prettier, for example. But I can't seem to get anything that uses the language server to work.

For example, in the following JavaScript file, putting my cursor over the name add on line 5 and using the :ALEGoToDefinition command has no effect.

I have really made an effort to read the documentation. The ALE help file says that "ALE will do nothing" if an LSP server does not provide a location to jump to. That seems to be my problem. But the ALE documentation on GitHub also says that "ALE integrates with almost all JavaScript tools very well, and most things should work without requiring any configuration."

I must be missing something. Aside from installing ALE, is anything needed to enable features which use a language server? Should I install some kind of language server globally on my machine?

0 投票
2 回答
314 浏览

node.js - 在 React 应用程序中导入“vscode-languageserver”时出错

我正在尝试使用monaco-editorvscode-languageserver展示我的语言服务器的功能来创建一个游乐场。

但是,当我尝试从如下示例的页面导入“vscode-languageserver”时

https://github.com/zkrami/docusaurus-test/blob/master/src/pages/test.js

我收到以下错误:

请注意,如果我在docusaurus.config.js文件中导入模块,它会完美运行。

我做了一个简单的例子,你可以试试: https ://github.com/zkrami/docusaurus-test/

规格:

0 投票
1 回答
1487 浏览

vim - 使用 rust-analyzer 处理单个文件 rust

我正在尝试使 rust-analyzer(使用 Neovim)与单个 Rust 文件一起工作。我知道使用 Cargo 应该是默认设置,但我正在尝试解决来自project euler的问题,在这些问题中,为每个问题创建一个项目似乎有点过头了。此外,我用各种语言解决问题,所以我想让每个代码独立。

但是,使用coc-rust-analyzer,它说:

我只想用这个文件运行 rust-analyzer。我该怎么办?

————</p>

更新:我刚开始使用 Rust,我使用 Python、OCaml、C++ 来解决以前的问题。我用于rustc一个简单的问题。

像 OCaml 这样的语言使用 ocamlfind&提供了一个(冗长的)解决方案ocamlopt,并且要使用merlin这是 vim 和 emacs 的工具,我只需要一个顶级.merlin文件,如

列出了我需要使用的所有包。我本可以使用dune,这有点像 cargo 的构建系统部分。

我发现rustc可以链接外部板条箱,例如rustc executable.rs --extern rary=library.rlib && ./executable. 我承认这可能比基于 Cargo 的解决方案更复杂,但仍然让我怀疑 rust-analyzer 是否只能用于基于 Cargo 的项目。

0 投票
1 回答
384 浏览

visual-studio-code - 如何将“显示预览”按钮添加到 VS Code 扩展?

我有一个分析自定义 JSON 和 YAML 文件的 VS Code 扩展。所以在项目中package.json,有这样的:

每当有人打开其中一个文件时,我想在编辑器的右上角添加一个“显示预览”图标:

预览

于是我在项目中添加了相应的icon资源,并且:

但这不起作用......我没有看到任何图标。

我还想确保此按钮和命令仅在我的函数isCustomFile返回server.ts时可用true。有没有办法做到这一点?

0 投票
1 回答
268 浏览

visual-studio-code - 无法连接到 tsserver

我正在编写一个应该连接到 tsserver 的 vscode 扩展,以便为 typescript/javascript 提供语言支持。

这是我的做法(在 extension.ts 中,在 activate 中):

但是当我调用 client.onReady().then(() => client.sendRequest(...)); 请求未发送。我几乎可以肯定问题是初始化阶段不成功,所以 onReady() 方法阻止了我。我如何让它工作?

0 投票
0 回答
405 浏览

c# - 通过 Web 套接字提供 csharp-language-server-protocol 实例

我正在使用csharp-language-server-protocol实现来创建自定义语言服务器,并且效果很好(请参阅LSP)。

唯一的问题是我没有找到一种很好的方法来使用 .Net将服务器使用的输入/输出流连接到websocket(我希望它作为远程语言服务器工作,以便我可以使用 web sockets 连接到它)。

我已经完成了自己的连接器,并且可以正常工作:

  • 它从网络套接字获取消息并将它们写入输入流
  • 它从输出流中读取消息并通过 Web 套接字发送它们

但我确信一定有一个我无法找到的现有解决方案。

我尝试使用vs-streamjsonrpc,但我认为这不是我需要的。

我也尝试过使用Nerdbank.Streams#AsStream,但没有成功(见下面的例外):

有人有例子吗?有什么提示吗?

0 投票
1 回答
536 浏览

java - 有没有办法让 Java 语言服务器在 VSCode 中启动时跳过检查 `node_modules` 文件?

由于我在同一个工作区以及 Spring Projects 中有几个 Angular 项目,因此为 VSCode 提供 Java 支持而运行的 Java 语言服务器需要花费大量时间(约 10 分钟)来运行工作区的所有内容,其中包括node_modules.

有没有一种方法/设置可以告诉它跳过某些文件夹/文件,以便我可以加快 Java 语言服务器的初始化?特别是node_modules?

在此处输入图像描述

0 投票
0 回答
911 浏览

vim - 是否可以在防火墙后面使用 coc.nvim 扩展?

就我而言,我试图coc-clangd在有防火墙的地方使用,以防止访问外部资源(如 github)。然而,有一种方法可以拥有 github repos 的本地镜像。这是我有副本的地方coc.nvimclangd/coc-clangd

但是,安装此扩展程序并不能开箱即用:

第一种方法:CocInstall http://companymirror/github/clangd/coc-clangd.git

结果... in is not supported, coc.nvim support github.com only

第二种方法:( Plug 'clangd/coc-clangd', {'do': 'yarn install --frozen-lockfile'}.vimrcwith 中vim-plug)导致错误:PlugInstall

哪里/home/user/.vim/plugged/coc-clangd/yarn-error.log有:

系统信息:

Clangd 版本:10.0.0

操作系统:CentOS 7.3

编辑:没有可用的代理服务器,可以允许使用http_proxy类似的环境变量。

编辑2:这似乎是yarn配置问题。 这个问题给出了运行提示yarn config set "strict-ssl" false -g,它关闭了证书检查并让我安装扩展!