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

现在任意模式都可以开启 lsp-bridge-mode

  • 如果当前文件支持 LSP 服务器, 会自动混合 LSP、 Yas、 Tempel、Path、 Dabbrev和English的补全项
  • 如果当前文件不支持 LSP 服务器, 会自动混合 Yas、 Tempel、Path、 Dabbrev和English的补全项

大佬们有空可以往 acm 目录增加新的补全后端, 实现针对所有模式的开箱即用。

只要往 acm 加一些补全后端,可以实现完全替换 capf, 同时实现补全菜单在 LSP 后端时无闪烁流畅响应。

11 个赞

大佬支持一下tabnine啊,tabnine在org,txt模式下的联想真的是挺好用的。。。。

我觉得还是等功能稳定下来,没有一些错误再说吧

今天试了一下,在org-mode、txt-mode这种没有lsp的模式中似乎没有开启补全?是不是在非LSP的模式中需要手工开启? 已经是更新的lsp-bridge的最新版了; 另外看到前面说可以支持简单的orderless了,这个怎么使用?是需要特别的seperate 可以吗?我试了一下乱序输入现在看是不能准确选定候选的啊?

org-mode 目前需要你有 snippet (yas, tempel) 或者 dabbrev 有内容才行,如果啥都没有肯定不会补全, txt-mode 我没有加入默认开启的模式中,没啥必要啊。

orderless 搜索一下代码,有几个正则的选项可以换,需要安装 orderless, 但是目前不支持 seperate , 因为 lsp-bridge 是主动补全模式, 一旦用户输入空格, LSP 后端就会认为是新的补全请求, 补全菜单的内容就会更新。

tabnine我用过非常长时间(论坛的tabnine帖子就是我发的),但是个客观使用感觉, 有几个问题:

  1. CPU消耗太大了(我是 Dell XPS 13 i7的芯片, 32GB内存), 有时候都感觉到卡
  2. 只在重复代码上有快速补全的作用, 比如你正在编写 JS 的函数 window.foo = this.foo 这种
  3. 集成 LSP 分析, 其实是浪费了一部分CPU, 因为现有 lsp client 已经实现了这部分功能

我预计明年有空的时候(也许是后年) 写一个开源的人工智能分析后端, 提升重复代码的编写效率, 也可以让大家参与进来, 一起开发。

但是时间上,非常不固定, 最快也要明年才会启动, 就像我从2年前就开始吐槽 lsp-mode, 今年在动手写 lsp-bridge 一样, 大家不要对这个太期待了,今年肯定不会动。

6 个赞

又挖一个 AI 分析后端的坑,加上你这填坑的能力,只能感叹一句,人和人的差距啊

reference的一些功能是被阉割了吗,怎么发现界面不一样了,没有以前的那些快捷键提示了

牛逼,这跨界

似乎那个lsp-bridge-ref header啥的没了,不过这个重构是真的厉害.

那些快捷键都是color-rg代码,去掉了,ctrl + h m 可以查看

基本上就是color-rg核心功能,引用查看的时候,顺带可以用作代码重构。

今天老大突然让我把项目里面不规范的log给改一下,然后试了consult-grep等等。发现不好用。就想到了lsp-bridge 的ref. 直接过滤几个关键字。爽到飞起

哈哈哈,厉害! :+1:

你这透明咋实现的?

;; ~ before emacs version 29 and 29+ ,即时生效
;; 其中 85 是透明度,可以随意写 0~100 之间的整数!
;; 30 以下的数字慎用!!!因为文字也透明
;;
(set-frame-parameter (selected-frame) 'alpha '(85))

;; ~ only for emacs 29 ,重启生效
;; 其中 85 是透明度,可以随意写 0~100 之间的整数!
;; 数字~随意写,效果比上面的配置好。文字不透明~效果好,仅背景透明。
;;
(setq default-frame-alist '((alpha-background . 85)))

其实不太懂啥是主动补全。但是corfu的seperate用M-SPC,这样就不会由于输入空格导致补全更新了。不知道是不是lsp-bridge的实现机制,不能支持多个词的同时补全?M-SPC也会发送空格到后端吗?corfu的多个词补全应该也是ordersless来做的。

个人意见,我觉得补全,最多实现 flex 这种就够了。分隔+多组匹配什么的,在代码补全方面没啥实用意义,我是感觉有点过度设计了。

flex 模式用

(setq acm-candidate-match-function 'orderless-flex)
2 个赞

我发现那个语法检查好像修复了?我这边可以正常使用了。

要是可以直接把diagnostics列出来就更好了