blink-copilot - 同时支持 copilot.vim 和 copilot.lua 的 blink.cmp 代码补全源 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  
houshuu
V2EX    Neovim

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

  •  
  •   houshuu 260 天前 1225 次点击
    这是一个创建于 260 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 来解决这个问题
    1 条回复    2025-02-20 15:59:36 +08:00
    DigitalG
        1
    DigitalG  
       231 天前
    赞一个,刚用上。比之前用 ghost text 清晰许多
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     896 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 22:13 PVG 06:13 LAX 15:13 JFK 18:13
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86