null-lsはNeovimのプラグインで、Pythonコードのフォーマットに利用できます。この記事では、null-lsを使ってPythonコードを整形する方法を説明します。
null-lsの設定
まず、null-lsを設定する必要があります。以下に、null-lsとPythonフォーマッター(例えば、blackやisort)を設定する一例を示します。
local null_ls = require("null-ls")
local sources = {
-- python
null_ls.builtins.formatting.black.with({ extra_args = { "--line-length=120" } }),
null_ls.builtins.formatting.isort,
}
null_ls.config({ sources = sources })
この設定により、Pythonファイルを開いたときに、null-lsが自動的にblackとisortを実行してコードを整形します。
フォーマットの実行
フォーマットを手動で実行するには、:lua vim.lsp.buf.format()
コマンドを使用します。しかし、このコマンドを実行すると、他の言語サーバーもフォーマットリクエストを受け取る可能性があります。そのため、null-lsだけがフォーマットリクエストを受け取るようにフィルタリングすることをお勧めします。
local callback = function()
vim.lsp.buf.format({ bufnr = bufnr, filter = function(client) return client.name == "null-ls" end })
end
以上がnull-lsを使ってPythonコードを整形する基本的な方法です。詳細な設定方法や他の機能については、null-lsの公式ドキュメンテーションを参照してください。