V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
houshuu
V2EX  ›  Neovim

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

  •  
  •   houshuu · 9 小时 51 分钟前 · 154 次点击

    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 来解决这个问题
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   975 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 20:47 · PVG 04:47 · LAX 12:47 · JFK 15:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.