lsp-bridge -- 速度最快的语法补全插件

org-mode 还要等 @yqu212 大佬的补丁,关于你后面的英文单词的问题我没有看懂,能截图说明下吗?

Code action 的 quickfix 的功能已经添加了,大家可以尝鲜了。

感谢 @zbelial 大佬的帮助。

还差 “refactor”, “refactor.extract”, “refactor.inline”, “refactor.rewrite”, “source”, “source.organizeImports” 这几个协议, code action 就全部完成了。

1 个赞

已经修复了。

1 个赞

抱歉,我说错了,多数情况下是变量候补,不过有时候短的英文单词候补,像这两张图片,那样我想打出require跟when,都是要打到一定字数之后才出现,感觉非常不智能,前面出现的候补都不是我想要的 这张就是想要use-package函数。

可能我被惯坏了,但是company跟corfu下都是输出这几个字母的时候都出现我想要补全

歪一下: acm 的 macro 图标有点像小米 logo :rofl:

1 个赞

elisp现在没有做深入的排序,慢慢改进吧

昨晚加了个根据长度的简单 elisp 候选词排序,已经合并了。你上面的 when 和 require 应该都没问题了。 use-package 起码敲到 use-p. 更新试试。

5 个赞

感谢,现在舒服多了 :hugs:

我用clangd作为c的lsp;以前都做小工程,头文件和C文件在一个目录里,还没有发现问题;今天开了一个大一点的工程,目录稍复杂了点,发现lsp-bridge提示进入了single-file mode,好像找不到头文件了;我应该如何告诉lsp-bridge从哪里找头文件啊?clangd我用的比较简单,不会搞了; 另外发现一个问题,我这个工程下有json文件,我打开json文件后,一直在提示[LSP-Bridge] Error: can’t find command None for d:/Users/home/xxx.json, disable lsp-bridge-mode. 哪怕手工关闭lsp-bridge mode,还是一直在报这个信息;我觉得是不是提示一次就可以了? lsp-bridge我是拉的今天最新版本;emacs29.0.50;

1 个赞

lsp-bridge的README已经写的非常非常清楚, 如果要进入 project-mode, 请在项目执行 git init, lsp-bridge 找不到 git 就会自动进入单文件模式, 单文件模式lsp server就不会扫描工程目录下的其他文件。

第二个问题是, Emacs默认会把 *.json文件弄成 js-mode, 你又没有安装 js lsp server, 所以 lsp-bridge 找不到 lsp server 就自动禁用了, 根本原因还是要解决 Emacs 把json文件设置成为 js-mode 的bug (目前我还没有找到很好的方法, 这个问题不是 lsp-bridge 的 bug)

1 个赞

感谢答复; 其实第二个问题,我倒是不在乎他是不是启动了server;我的意思是,如果找不到lsp server,自动禁用后就不用再一直提示这个错误了;这个错误即使在lsp bridge mode被禁用后还是一直在报。

你没有认真的读我刚才给你写的第二个问题的原因, 正确的解决方法是你要安装 GitHub - joshwnj/json-mode: Major mode for editing JSON files with emacs 这个插件, 这个插件会纠正Emacs把json文件变成js-mode的bug, 而不是 lsp-bridge 的bug。

jsonian 这个替代品很好用,而且没有依赖。

有个问题,为什么补全信息没有返回值类型和函数参数类型?

图片

等待吃螃蟹的人

这根本不需要配置啊。只要关了doom的补全插件就好了。

看了下 rust-analyzer 的返回,其中 label 就是这个。其他信息好像在 detail 里面,目前暂时没处理。不知道其他server 也是不是这么实现的。

周末没有环境,今天又试了一下第一个问题,发现我在项目的目录下执行git init后,进入lsp-bridge,依然是single-file mode;我看我的项目根目录下已经有了.git目录,为啥lsp-bridge还是没有识别到呢? 我的环境是emacs29.0.50,win10;lsp-bridge是拉的最新版本;是windows环境的问题吗?

我还可以如何测试这个.git目录无法识别的问题?还需要打开什么日志吗? 谢谢;

看看是不是这个连接说的问题

试着手工执行了git rev-parse --is-inside-work-tree命令,发现有提示说该目录不安全,在git配置中增加了该目录的信任后可以找到了;应该刚才是git rev-parse --is-inside-work-tree这个命令执行失败导致的; 建议可以在readme里说明一下,如果发现找不到project根目录,可以试着执行一下git rev-parse --is-inside-work-tree这条命令,看看有啥提示;

谢谢;