2026-04-12
最近Pythonを書く機会が出てきたので、NeoVimでPythonを快適に書けるように開発環境を整えました。 LSP・リンター・フォーマッター・シンタックスハイライトの設定をまとめます。
今回導入したのは以下の3つです。
調べると、PyrightとRuffを組み合わせるのは、現在のPython開発では定番の構成とのことでした。 Pyrightが型チェックと補完を、Ruffがリントとフォーマットをそれぞれ担当します。
.config/nvim/lsp/pyright.lua を作成します。
root_markers にPythonプロジェクトで使われる設定ファイルを指定しています。これにより、プロジェクトルートを正しく認識してくれます。
.config/nvim/lsp/ruff.lua を作成します。
RuffはLSPサーバーとしても動作するので、ruff server コマンドで起動します。
plugin/lsp-config.lua でPyrightとRuffを有効化します。
plugin/mason.lua の ensure_installed にPyrightとRuffを追加します。
これでNeoVimを起動した際にMasonが自動でインストールしてくれます。
lua/plugins/treesitter.lua の言語リストに python を追加します。
Tree-sitterにPythonのパーサーをインストールすることで、シンタックスハイライトやインデントが正しく動作するようになります。
PyrightとRuffの組み合わせで、型チェック・補完・リント・フォーマットが一通り揃いました。 特にRuffはRust製で非常に高速なので、保存時のフォーマットもストレスなく動作します。