在我的 Neovim 配置中, 一直使用的是 nvim-cmp 作为补全引擎, 由于其默认支持模糊查找, 因而补全列表中可能会出现前缀匹配优先级不如子序列的乱序问题, 举一个例子:
补全候选项中有 abc_variable 和 xaxbx 这两个词
输入 ab, nvim-cmp 根据传入的比较函数进行逐个比较与排序; 但由于默认支持模糊查找, 且官方的补全函数中貌似没有前缀匹配优先的规定, 而我自己很合理地又添加了一个根据长度排序的比较函数, 因而在补全列表中, 子序列 xaxbx 反而会获得更高的优先级出现在第一个, 这是极为不合理的.
...
为Nvim添加了nvim-cmp插件栈… 之前一直没有动手, 只单独安装了几个无复杂依赖的插件, 这次直接一口气从nvim-cmp补全插件, LSP相关, 代码块补全, 模糊查找等全部搞好了..
其实际上高度耦合… 代码块补全以及LSP最终必须全部集成到nvim-cmp中, 而且还更新了代码块补全为luasnip这个lua编写的补全前端(?不确定), 丢弃了原本的utlisnip, 因而还把所有自定义的代码块全部用luasnip的语法重写了..同时, 修改了插件管理器为lazy.nvim, 重构了我的nvim的所有配置文件的目录树结构..
...