[[Neovimプラグイン]]の[[CodeCompanion]]を使ってみる。[[avante.nvim]]だとchat目的としてはオーバーキルなのと、[[CodeCompanion]]の方がシンプルで良さそう & 更新もされてそうなので。
## インストール
[[lazy.nvim]]でインストール。
```lua
return {
"olimorris/codecompanion.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
},
}
```
## 設定
[Adapterを設定](https://codecompanion.olimorris.dev/getting-started.html#configuring-an-adapter)する。デフォルトのモデルは [[GPT-4o]] なのでそのまま使う。
```lua
return {
"olimorris/codecompanion.nvim",
keys = {
{
"<Space>cc",
":CodeCompanionChat<CR>",
silent = true,
},
},
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
},
opts = function(_, opts)
return vim.tbl_deep_extend("force", opts, {}, require("envs.code-companion").opts)
end,
}
```
`lua/envs/code-companion.lua`
```lua
return {
opts = {
strategies = {
chat = {
adapter = "openai",
keymaps = {
send = {
modes = { n = "<F12>", i = "<F12>" }, -- Ctrl+Enter
},
},
},
inline = {
adapter = "openai",
},
},
},
}
```
APIキーは `OPENAI_API_KEY` に設定。
> [!caution]
> 環境変数での設定はリスクがありsecureな方法ではない。shell commandを利用する方法が推奨とのこと。
> > [Add support for a shell command in place of environment variable name by abayomi185 · Pull Request #24 · olimorris/codecompanion.nvim](https://github.com/olimorris/codecompanion.nvim/pull/24)
## 使ってみる
[[Neovim]]を起動して `<Space>cc` でチャットが立ち上がる。あとは `?` でhelpを見ながら進めていけばいい。
## AI稼働中を分かりやすくする
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📜2025-02-05 CodeCompanionの実行中にローディングスピナーを表示する
</div>
<div class="link-card-v2-content">CodeCompanionを実行中、思考が長いモデルについては結果が表示されるまで中身が更新されないので不安になる。また、Azure OpenAI Serviceのo1モデルはstreamに対応していなかったので、表示までに時間がかかる。絶賛処理中であることを明示的に分かるようにしたい。</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/activity.webp" />
<a data-href="📜2025-02-05 CodeCompanionの実行中にローディングスピナーを表示する" class="internal-link"></a>
</div>
%%[[📜2025-02-05 CodeCompanionの実行中にローディングスピナーを表示する]]%%