@Jerry 这个补丁感觉还没有完全好,等我引入一个 displayLabel 的概念
大佬给力!飞一般的体验又回来了,
加了 display-label 标签专门用于补全菜单显示,和真实的补全内容分开处理,这样既优化了界面的用户体验,又保证后台逻辑处理的严谨和简洁。
新的补全菜单 acm 是专门为 lsp-bridge 的完全异步架构而设计的,性能上应该比 corfu/company 都要快得多。
再反馈两个问题:
- 调用 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>’)]”)
- 另外,gopls 返回的候选者都有 document 的,但是没有弹出来显示:
第一个问题已经修复了
第二个问题我看看。
刚试了下,补全窗口和emacs 的字体大小不太匹配诶
另外 和 awesome-tab
同用时,补全窗口位置有些问题,把输入的nn
覆盖了
哇~妙啊!配置越来越简单啦!
刚刚更新了,试了试!感觉越来越流畅啦!
在写python的时候,要等待一小会儿大概有30秒左右,然后就体验到了补全的速度感!
在写 elisp、c/c++ 时,无需等待,秒起!而且速度感很爽!
lsp-bridge 太棒啦! 使我重新愿意用 emacs 写代码啦!(PS:以前只用emacs做文本处理、用它的 org)
然后我尝试了绑定 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 吧。
你居然用 Windows 呀, lsp-bridge 在 Windows 端也很流畅?
我分别在 windows7、fedora、debian11上使用,流畅度几乎一样,都挺快的!
打开emacs 默认的 tab-line-mode
会遇到同样的补全窗口位置问题
已经修复了,感谢反馈。
现在 dabbrev 的补全是正常的么,我刚 emacs -Q 测试 python 和 cpp 都没 dabbrev补全诶
dabbrev 非常耗费性能,会在补全菜单显示,并且停止敲键盘1秒以后才会计算。
还有个问题
当前位置有补全窗口时,等一秒会有 dabbrev 补全
但是当前位置没有lsp的补全时,等一秒不会弹出 dabbrev 补全诶
ps acm-idle-completion
的 1s 可以用变量设置咩
目前的设计是 dabbrev 作为对 lsp/elisp 补全后端的增强补全,因为 dabbrev 是搜索文本的,它一直都会有内容,如果要没有补全也弹出 dabbrev 就会导致任何地方都会弹出补全,其实非常烦人。
大佬,候选者搜索可以支持类似于 orderless 的模糊、忽略大小写等特性么? 比如 os.Args(), 我想敲 args,rg,gs 时都会过滤出来 Args 候选项,当前貌似只能敲 A 才能显示 Args。