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

@Jerry 这个补丁感觉还没有完全好,等我引入一个 displayLabel 的概念

1 个赞

大佬给力!飞一般的体验又回来了, :100:

加了 display-label 标签专门用于补全菜单显示,和真实的补全内容分开处理,这样既优化了界面的用户体验,又保证后台逻辑处理的严谨和简洁。

新的补全菜单 acm 是专门为 lsp-bridge 的完全异步架构而设计的,性能上应该比 corfu/company 都要快得多。

再反馈两个问题:

  1. 调用 lsp-bridge-lookup-documentation 命令时(我绑定到 M-i)时,可以正常显示文档,但是 debug 显示有 Got too many arguments in the reply 的报错信息,类似于:

— Recv response (10301): textDocument/hover ERROR:epc:(return 98 …): Got too many arguments in the reply: [Symbol(‘#<frame’), Symbol(‘0x7f7a06181a00>’)] ERROR:epc:EPCError(“(return 98 …): Got too many arguments in the reply: [Symbol(‘#<frame’), Symbol(‘0x7f7a06181a00>’)]”)

  1. 另外,gopls 返回的候选者都有 document 的,但是没有弹出来显示:

https://imgur.com/a/OtF0RDa

第一个问题已经修复了

第二个问题我看看。

刚试了下,补全窗口和emacs 的字体大小不太匹配诶

image

另外 和 awesome-tab 同用时,补全窗口位置有些问题,把输入的nn 覆盖了

image

哇~妙啊!配置越来越简单啦! :+1:
刚刚更新了,试了试!感觉越来越流畅啦!
在写python的时候,要等待一小会儿大概有30秒左右,然后就体验到了补全的速度感!
在写 elisp、c/c++ 时,无需等待,秒起!而且速度感很爽!
lsp-bridge 太棒啦! :+1:使我重新愿意用 emacs 写代码啦!(PS:以前只用emacs做文本处理、用它的 org)

1 个赞

然后我尝试了绑定 TAB 键为循环候选

(define-key evil-insert-state-map (kbd "TAB") nil)
(define-key acm-mode-map (kbd "<tab>") 'acm-select-next)
(define-key acm-mode-map (kbd "<s-tab>") 'acm-select-prev)
(define-key acm-mode-map (kbd "<backtab>") 'acm-select-prev)

不知道这样绑是否正确!?虽然目前使用有效,还没遇到问题…

大小的问题已经修复了。

awesome-tab 不要用了吧,我现在都很少维护,用我的 sort-tab 吧。

1 个赞

你居然用 Windows 呀, lsp-bridge 在 Windows 端也很流畅?

我分别在 windows7、fedora、debian11上使用,流畅度几乎一样,都挺快的!

1 个赞

打开emacs 默认的 tab-line-mode 会遇到同样的补全窗口位置问题

已经修复了,感谢反馈。

现在 dabbrev 的补全是正常的么,我刚 emacs -Q 测试 python 和 cpp 都没 dabbrev补全诶

dabbrev 非常耗费性能,会在补全菜单显示,并且停止敲键盘1秒以后才会计算。

还有个问题

当前位置有补全窗口时,等一秒会有 dabbrev 补全 image

但是当前位置没有lsp的补全时,等一秒不会弹出 dabbrev 补全诶 image

ps acm-idle-completion 的 1s 可以用变量设置咩

目前的设计是 dabbrev 作为对 lsp/elisp 补全后端的增强补全,因为 dabbrev 是搜索文本的,它一直都会有内容,如果要没有补全也弹出 dabbrev 就会导致任何地方都会弹出补全,其实非常烦人。

大佬,候选者搜索可以支持类似于 orderless 的模糊、忽略大小写等特性么? 比如 os.Args(), 我想敲 args,rg,gs 时都会过滤出来 Args 候选项,当前貌似只能敲 A 才能显示 Args。

1 个赞

go 的候选者没有显示帮助文档 :laughing: