nix-direnv で mason.nvim をやめられた

ryota2357
·

この記事は ryota2357 Advent Calendar 2024 の 5 日目の記事です。

少し前にこんなものを書きました。

Nix が全て解決してくれました。nix-direnv を使えばディレクトリ入った時だけ LS とかのツールを有効にできます。

僕は次がやりたいと言っていました。

  • 指定したlsをバージョン指定でインストール

  • 1コマンドで更新の存在チェック

  • 遅延インストール機能

1つ目のバージョン指定は不要なことに気がつきました。結局は lock がしたいだけだったので flake.lock で十分でした。(バージョン指定したければ devenv を使えば良さそう)

2つ目の更新チェックに関しては、nix flake update で更新して、やっぱり更新したくなければ flake.lock を戻せばいいだけ。僕の場合、「更新チェック→更新」の流れが多いです。更新あるけどしない方が珍しいので、こっちの運用の方が合っていました。

遅延インストールとは少し違うけど、グローバルにツールを入れることなく、必要な時にインストールされるので目的は達成できています。

ついでにこんなことも言っていました。

  • インストールされたLSはMasonと同じ感じでNeovimに閉じたものにしたい。

Neovim には閉じなかったけど、ディレクトリに閉じれました。ディレクトリに閉じる方が、フォーマッタ・リンターとかのコマンドラインからも使うものも閉じれるので、nix-direnv が上位互換だと感じています。

Nix は素晴らしい。