问题标签 [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.
xtext - Xtext 语言服务器
我在 React 前端应用程序中包装了一个 Ace 编辑器,并使用 LanguageServerImpl 类提供了一个单独的 Java 后端,以便使用 Xtext 拥有我自己的语法。
我想使用 xtexts 验证和自动完成方法在 Ace Editor 和 Xtext Languageserver 之间传递数据。它的工作方式是在 Editor 和 Langserver 之间发送 JSON-RPC。但是没有文档说明如何将验证或自动完成从编辑器调用到服务器并返回编辑器并返回响应。JSON-RPC 是如何实现这种行为的?
这是我如何初始化 LangServer 的代码。目前输入是一个简单的 System.in 流。
我的第二个问题是:为什么我需要 LanguageClient?编辑器是由不同服务器托管的客户端...
monaco-editor - 将 OCaml 中定义的自定义语言添加到 Monaco Editor
我已经在 OCaml 中编写了一个重要的自定义语言。我知道这种方式纯粹是在 JavaScript中让 Monaco Editor 注册一种新语言。但是,我不知道在摩纳哥编辑器中注册时如何利用 OCaml 中定义的语言。
例如,我们已经在 OCaml 中定义了令牌,我们怎么能不在里面重新定义这些令牌monaco.languages.setMonarchTokensProvider
呢?
我在这里做了一个小例子:https ://github.com/chengtie/mylang-monaco-editor 。在OCaml中定义了一种非常简单的语言mylang/
,其中有INT
和BOOL
。在example/index.js
中,我们有以下代码来扩展 Monaco Editor 并实现基本的突出显示。我觉得两次定义这些标记并不好。
有谁知道如何将 OCaml 中定义的语言链接到 Monaco Editor?
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?
node.js - 在 React 应用程序中导入“vscode-languageserver”时出错
我正在尝试使用monaco-editor
并vscode-languageserver
展示我的语言服务器的功能来创建一个游乐场。
但是,当我尝试从如下示例的页面导入“vscode-languageserver”时
https://github.com/zkrami/docusaurus-test/blob/master/src/pages/test.js
我收到以下错误:
请注意,如果我在docusaurus.config.js
文件中导入模块,它会完美运行。
我做了一个简单的例子,你可以试试: https ://github.com/zkrami/docusaurus-test/
规格:
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 的项目。
visual-studio-code - 无法连接到 tsserver
我正在编写一个应该连接到 tsserver 的 vscode 扩展,以便为 typescript/javascript 提供语言支持。
这是我的做法(在 extension.ts 中,在 activate 中):
但是当我调用 client.onReady().then(() => client.sendRequest(...)); 请求未发送。我几乎可以肯定问题是初始化阶段不成功,所以 onReady() 方法阻止了我。我如何让它工作?
c# - 通过 Web 套接字提供 csharp-language-server-protocol 实例
我正在使用csharp-language-server-protocol实现来创建自定义语言服务器,并且效果很好(请参阅LSP)。
唯一的问题是我没有找到一种很好的方法来使用 .Net将服务器使用的输入/输出流连接到websocket(我希望它作为远程语言服务器工作,以便我可以使用 web sockets 连接到它)。
我已经完成了自己的连接器,并且可以正常工作:
- 它从网络套接字获取消息并将它们写入输入流
- 它从输出流中读取消息并通过 Web 套接字发送它们
但我确信一定有一个我无法找到的现有解决方案。
我尝试使用vs-streamjsonrpc,但我认为这不是我需要的。
我也尝试过使用Nerdbank.Streams#AsStream,但没有成功(见下面的例外):
有人有例子吗?有什么提示吗?
vim - 是否可以在防火墙后面使用 coc.nvim 扩展?
就我而言,我试图coc-clangd
在有防火墙的地方使用,以防止访问外部资源(如 github)。然而,有一种方法可以拥有 github repos 的本地镜像。这是我有副本的地方coc.nvim
和clangd/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'}
在.vimrc
with 中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
,它关闭了证书检查并让我安装扩展!