#author("2026-10-13T14:29:21+09:00","","") #author("2026-10-13T15:08:08+09:00","","") * debugger など [#t8a5bcc4] ** nvim-dap [#ob8e98c0] - [[Google:nvim-dap]] はい。Neovim プラグイン開発に特化した解説として、まず読む価値があるのは `one-small-step-for-vimkind`(OSV)の公式ドキュメントです。これは通常の Lua スクリプトだけでなく、実際に動作している Neovim の Lua コードやプラグインをデバッグするためのアダプターです。 - [[image:https://github.com/jbyuki/one-small-step-for-vimkind]] **おすすめの解説 [#o93caa37] ***1. OSV 公式 Quickstart・プラグインのデバッグ [#fe08f7be] 最初に読むならこれ 2つの Neovim インスタンスを使い、一方でデバッガを操作し、もう一方でプラグインを実行します。ブレークポイント、ステップ実行、変数確認まで説明されています。 [[公式 README:https://github.com/jbyuki/one-small-step-for-vimkind]] [[詳細ドキュメント :https://github.com/jbyuki/one-small-step-for-vimkind/blob/main/doc/osv.txt]][[`osv.txt`:https://github.com/jbyuki/one-small-step-for-vimkind/blob/main/doc/osv.txt]] ***2. nvim-dap の基本 [#y5b1c7c1] DAP クライアント側の設定、ブレークポイント、ステップ実行の操作方法を理解するための資料です。 [[nvim-dap 公式 README:https://github.com/mfussenegger/nvim-dap]] [[Debug Adapter Installation Wiki:https://github.com/mfussenegger/nvim-dap/wiki/Debug-Adapter-installation]] ***3. Neovim 公式 Lua プラグイン開発ガイド [#rc24ba50] プラグインのロード方法や Lua モジュールの構成を確認するための資料です。デバッガの解説ではありませんが、どのコードがいつ実行されるかを把握するのに役立ちます。 [[Lua プラグイン開発ガイド:https://neovim.io/doc/user/lua-plugin/]] **まず試すなら、この流れです [#a0ed701d] `logger.nvim` の開発環境とは別に、DAP を一度だけ試してみるのがおすすめです。 + `nvim-dap` と `one-small-step-for-vimkind` をインストールする。 2. 開発対象の Neovim インスタンスで `require("osv").launch()` を実行する。 3. 別の Neovim インスタンスで対象プラグインの Lua ファイルを開き、ブレークポイントを設定する。 4. デバッガから接続し、プラグインの処理を実行する。 5. ブレークポイントで止まったら、ステップ実行や変数確認を試す。 この手順は OSV の公式 Quickstart に沿ったものです。 [[image:https://www.google.com/s2/favicons?domain=https://github.com\&sz=32]] [[osv:https://github.com/jbyuki/one-small-step-for-vimkind]] GitHub +1 注意点として、ブレークポイントは実行されているソースファイルのパスに依存します。プラグインマネージャー経由でロードしている場合、編集しているファイルと実際にロードされたファイルのパスが異なると、ブレークポイントが効かないことがあります。 [[image:https://www.google.com/s2/favicons?domain=https://github.com\&sz=32]] [[break:https://github.com/jbyuki/one-small-step-for-vimkind]] GitHub 私なら、まず単純な Lua 関数でステップ実行を試し、その後 `keyevent.nvim` のイベント処理のような、実際に調査したいコードで試します。 これで、変数をその場で詳しく調べる作業は DAP、イベントの順序やタイミングを記録して後から追う作業は `logger.nvim` という使い分けができるか、実感をもって判断できると思います。 ** plenary.nvim [#oc5ae87c] - [[Google:plenary.nvim]] ** logger [#m80038e9] - vim.log - wsdjeg/logger.nvim - nvim-chainsaw/timber.nvim