以前emacs不全代码用auto-complete这些,现在主要用啥补全?
我觉得经典老包company就挺好的
lsp-bridge, 开箱即用
现在用自带的 tab 键
emacs的补全感觉是个大坑,历史包袱太大了。
capf 的设计局限性太大了。capf 的同步+假设最多同时只有一个 capf 能够激活的设计太不灵活了。即使是 cape,那个方法也太 hack 了,并不灵活。
其实我更希望有一个近乎于“事实标准”的新的补全后端的设计。就像 neovim 那样。
比如 neovim, 原生的 omni 补全框架就是类似于 emacs 的 capf,假设只能有一个后端存在的设计。然后因为 omni 设计太烂了,neovim 社区基本上抛弃了 omni。nvim-cmp 就是近乎于“事实标准”的补全前端,然后其他插件会基于 cmp 来开发新的补全后端。
现行的基于 capf 来修修补补,体验太差了。不管是 company 还是 corfu。都有很大的局限。尤其是对于异步时间较长的补全(比如 copilot或者 codeium),都不可能做到支持。
lsp-bridge 很好,可惜基于 python 就没办法成为 nvim-cmp 那样的事实标准了。
实际上 capf 不叫历史包袱,在 company/auto-complete 还流行的时候根本没人鸟 capf,company-capf.el 也是后来项目转让给 FSF 后加的,以前根本用不到这个后端,比如 SLIME 就是用 slime-company,不经过 capf。Emacs 25 那会 capf 连 emacs lisp 补全都没做好。Emacs 28 开始自帯 eglot + emacs lisp 补全用都 capf 实现并改进下了匹配算法,用不到 company 了(在有了 company-capf 后也就没加新后端了)让只支持 capf 的親儿子项目 corfu 占了用户主体才“倒逼”社区都用 capf 的 API 的,实际也就这几年的事。
lsp-bridge, 开箱即用。 每天我都用!排行榜第一!