🐜

Neovim + Copilot.lua で `bufnr: expected number` エラーが出た【LazyVim】

に公開

あまり情報が見当たらなかったので投稿。

発生したエラー

Neovim(v0.10.2) + LazyVim 環境で copilot.lua を使っていたところ、以下のようなエラーが発生しました。

failed to get completions with error: ...client.lua:643: bufnr: expected number, got function

原因

エラーメッセージから察するに、vim.lsp.buf.format() に渡されている bufnr 引数が 数値(number)ではなく関数(function) になっているのが原因のようです。ただ、こちらで直接その部分を触った形跡がなく。

調べてみたところ、GitHub 上でも同様の事例が報告されており、copilot-cmpblink-cmp などとの連携時に発生することがあるようです。

🔗 Issue #462 - zbirenbaum/copilot.lua

解決策(LazyVim)

1. copilot.lua を最新版にアップデートする

:Lazy update copilot.lua

2. Neovim を再起動

アップデートが完了したら、一度 Neovim を再起動。
その後、補完が正常に動作するようになりました。


アップデート関連の情報ってつい見落としがちで、気づかずにこうした些細なエラーにハマってしまうこともありますよね。とくに仕事中に出くわすと、ちょっとしたことでも意外と時間を取られがちで地味にモヤモヤします。
そんなとき、LazyVim はコマンド一発でプラグインをアップデートできるのがありがたいなと思う今日この頃でした。

Discussion