投稿
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Rikuoh Tsujitani 2024-09-30 21:30:07 +09:00
parent 25b888e209
commit 77d605d394
Signed by: riq0h
GPG key ID: 010F09DEA298C717
4 changed files with 7 additions and 7 deletions

View file

@ -1,7 +1,7 @@
---
title: "NeovimでGithub Copilotを試す"
date: 2024-09-30T20:55:09+09:00
draft: true
date: 2024-09-30T21:30:09+09:00
draft: false
tags: ['tech']
---
@ -88,11 +88,11 @@ cmp.setup({
})
```
以上の設定でGitHub Copilotの提案が補完候補の一部として表示されるようになる
以上の設定でGitHub Copilotの提案が補完候補に表示されるようになる。不要な時は次の候補に飛ばせばいいだけなので使いやすいと思われる。たとえCopilotの重要性が今後増してくるとしても、既存のLSPによる補完が依然有効なのは変わりない
![](/img)
![](/img/337.png)
さて、これでCopilotの設定は終わりかと思いきや、実はそうではない。LLMの最大と言っても過言ではない機能は対話による改善なので、チャットができないことには魅力半減だ。しかし公式のCopilot.vimにも今回紹介した非公式の方にもチャット機能は備わっていない。そこで、CopiotChat.nvimというさらに別のプラグインを導入する。
さて、これでCopilotの設定は終わりかと思いきや、実はそうではない。LLM最大の機能と言うべきは対話による改善なので、チャットができないことには魅力半減だ。しかし公式のCopilot.vimにも今回紹介した非公式の方にもチャット機能は備わっていない。そこで、CopiotChat.nvimというさらに別のプラグインを導入する。
CopilotChat.nvimは名前通りCopilotとの対話機能を提供するプラグインである。数多くの連携プラグインが用意されており設定内容も多岐に渡るが、本稿では自由記述方式と、Telescopeと連携して定型文で質問を行う方法について記す。例によってTelescopeは導入済みとする。
@ -162,13 +162,13 @@ vim.api.nvim_set_keymap(
上記のうち`prompts`に続く日本語文は、デフォルトでは英語で用意されている定型文を書き換えたものとなる。Copilot Chatは質問文と同じ言語で回答が返ってくるため、日本語で回答が欲しければ日本語で質問しなければならない。
![](/img/)
![](/img/338.png)
`ShowCopilotChatActionPrompt`ではTelescopeを呼び出す関数が定義されている。この機能のなにが嬉しいのかというとコーディング中に頻繁に用いるであろう質問文をショートカットキーで即時に呼び出せるところだ。質問文が固定されていると回答も一意に定まりやすい。
他方、自由記述の入力は`CopilotChatBuffer`によって呼びされる。現在のバッファを対象に具体的な質問を行うことで、より高度な提案を引き出す効果が期待できる。ただし、Copilotはあくまでコーディング支援用のツールなので天気や時事問題、文章の校正などについて尋ねても回答は得られない。
![](/img/)
![](/img/339.png)
たとえば、対応している質問を入力すると上記のような回答が得られる。期待以上に的を射た内容が多く、これがいつでも使えて月額10ドルなら十分割に合うと感じた。業務上のコードをむやみに読み取らせるのは下手をするとインシデントに発展しかねないが、工夫次第では活用できる見込みが高い。

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB