写了个包,把 Emacs 上主流的 LSP Client glue在了一起

我主要是eglot用户,可eglot存在缺陷,比如不能在同个buffer内运行多个语言服务器。

这个包主要是按照我的个人喜好(不喜欢用hook自动 lsp,喜欢手动 eglot 命令来使一个项目中同个语言的所有文件自动连接语言服务器),提供同语言文件自动进入lsp功能给 lsp-mode, lsp-bridge。同时,让 eglot, lsp-mode, lsp-bridge 使用了一套键位,实现了丝滑切换。

这个包产生的直接缘由是 eglot 上配不成功 vue language server,换了 lsp-mode,虽然是开箱即用,但是常常会卡住UI (即使使用了 emacs-lsp-booster),最终我换成 lsp-bridge 来使用 vue language server 了。

8 个赞

喜欢手动 eglot 加一

但是我之前手动 lsp-bridge 好像只能单文件,项目里其他同语言的文件打开不会自动连,不知道现在怎么样了还是我配置有问题

现在还是这样。lspx模仿eglot实现了项目里其他同语言的文件打开自动连接

1 个赞

哎,我在 lsp-bridge 帖子下面也提了好多次,但是懒猫说没有问题或者让我加 hook 使用,但是真的挺讨厌一打开就自动 hook 上 lsp

自定义 lsp-bridge-default-mode-hooks

我是有的项目会开有的不会开,都是同一个语言的,用这个的话都自动开了吧

lsp-bridge-default-mode-hooks 这个选项控制都关, 你希望开的项目,直接配置 (lsp-bridge-mode 1) 就好了

“lsp-bridge 好像只能单文件,项目里其他同语言的文件打开不会自动连,不知道现在怎么样了”

“现在还是这样。lspx模仿eglot实现了项目里其他同语言的文件打开自动连接”

但是这个我很久之前用 lsp bridge 了,最近我没试过可不可以

lsp-bridge支持单文件和git项目内文件自动打开,一直都可以。

没有好像,第一天设计就可以

  1. 单个文件用一个 LSP Server
  2. 一个项目的同类型文件用一个 LSP Server
  3. 单文件用多个 LSP Server
  4. 一个项目的同类型文件用多个 LSP Server

这些都是可以支持的,而且是性能最好的。