プラグインtiny-code-action.nvimの使い方
NeovimでCode Actionを実行するときに便利なプラグインtiny-code-action.nvimを紹介します。
tiny-code-action.nvimとは
tiny-code-action.nvimは「Code Actionによる変更の差分」を確認しつつ絞り込み・実行できるプラグインです。

絞り込みのUIはNeovimビルトインのvim.ui.select
が使えるほか、次のプラグインにも対応しています。
差分の表示はdeltaにも対応しているようです。
フィルター機能が便利
さらにうれしいのが、Code Actionの種類や名前でフィルターできる点です。
よく実行するCode Actionがあるならそれ用にキーバインドを設定しておけます。
導入方法
rachartier/tiny-code-action.nvim
各々が使っているプラグインマネージャーでインストールします。
依存プラグイン
plenary.nvimに依存しています。
インストール
lazy.nvimだと次のように書いてインストールできます。
---@module "lazy"---@type LazyPluginSpecreturn { "rachartier/tiny-code-action.nvim", dependencies = { {"nvim-lua/plenary.nvim"}, }, opts = {},}
最低限の設定
最低限のプラグインの設定はsetup
を呼び出すだけで完了です。
require("tiny-code-action").setup({})
lazy.nvimの場合、setup
の中身はopts
に書くためこの記述は不要です。この書き方について知りたい人は別の記事「lazy.nvimの使い方から起動を爆速にする方法までを解説」を読んでください。
lazy.nvimでの遅延読み込み
lazy.nvimでの遅延読み込みの例も載せておきます。公式ドキュメントにはevent = "LspAttach"
が紹介されています。
筆者は次のようにkeys
でキーマップを設定しつつ遅延読み込みさせています。
return { "rachartier/tiny-code-action.nvim", dependencies = { {"nvim-lua/plenary.nvim"}, }, keys = { { "gra", function() require("tiny-code-action").code_action({}) end, mode = { "n", "v" }, desc = "Code Actions", }, }, opts = {},}
NeovimのビルトインのCode Actionのキーマップがgra
なので筆者はそれを上書きする形にしてます。
実行方法
次のAPIを呼び出すことでカーソル行に応じたCode Actionの一覧が表示されます。
require("tiny-code-action").code_action({})
<CR>
などで選択すればそのアクションが実行されます。
カスタマイズ
カスタマイズを紹介します。
snacks.nvimを使う
snacks.nvimを使う場合、picker
の第1引数にsnacks
を指定します。
return { "rachartier/tiny-code-action.nvim", dependencies = { { "nvim-lua/plenary.nvim" }, { "folke/snacks.nvim" }, }, opts = { picker = { "snacks", opts = {}, }, },}
フィルター機能でよく使うアクションだけを絞って実行するには、引数のfilters
を書きます。
require("tiny-code-action").code_action({ filters = { str = "Use import type" } })
他にもkind
やclient
でフィルタリングできるようです。
以上、tiny-code-action.nvimの紹介でした。Code Actionの種類によってアイコンが変わるのも結構好きです。
tinyという名前で気づくかもしれませんがtiny-inline-diagnostic.nvimを作ったrachartierさんが作者です。