blink-copilot - 同时支持 copilot.vim 和 copilot.lua 的 blink.cmp 代码补全源

13 小时 9 分钟前
 houshuu

GitHub

👉 https://github.com/fang2hou/blink-copilot

动机

自从 LazyVim 转了 blink 之后,因为 blink-cmp-copilot 中日文支持差其实一直停留在了 nvim-cmp,但是又眼馋 blink.cmp 的性能优势。
在研究了一下代码后,提了个 PR 把 blink-cmp-copilot 的 Unicode bug 修复了。
但是在阅读代码的同时,我发现这个插件做的还是挺粗糙的,只是移植了 copilot-cmp 的皮毛。同时公司政策只准用 copilot.vim 不允许用 copilot.lua(第三方),所以自己动手做了一个合规且更快的新 source 。

主要特性

  1. 可自定义的多补全候选项功能
  2. 用 Lua 重写了和 LSP 的交互,比 copilot.lua 的同时也能作用于 copilot.vim
  3. 使用最新的 Copilot LSP API ,最小化预处理以获得更快的速度
  4. LSP 客户端在缓冲区切换时进行检测状态,提升可用性
  5. 增强的预览功能,具有智能缩进和代码片段优化

blink-cmp-copilotblink-copilot 的话有什么好处?

  1. 补全预览中的缩进能够被正确识别并格式化,不会再有代码飞出框很远的情况了
  2. 支持 copilot.lua 和 copilot.vim 作为后端,符合很多大厂的安全规范
  3. 支持多个补全候选项,并且相关参数均可配置
  4. LSP 交互不再依赖 copilot.lua 。新的 LSP 交互代码在确保符合最新的官方 API 规范的前提下,减少了不必要的代码预处理,有很微小的性能提升
  5. blink-cmp-copilot 在启动时如果打开了不支持的文件格式文件,那么其他文件都会无法使用补全。blink-copilot 会在后续打开支持的文件格式时自动重新检测 Copilot 来解决这个问题
188 次点击
所在节点    Neovim
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1107153

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX