Closed4

【Starship】DenoプロジェクトでNodeのバージョンを表示させないようにする

lemonadernlemonadern

前提

Starshipには、カレントディレクトリで使いそうなプログラミング言語のバージョンを表示する機能がある。

問題

デフォルトでは、Denoのプロジェクトを開いたときにDenoのバージョンとNodeのバージョンの両方が表示されてしまう。

やりたいこと

  • Denoのプロジェクトを開いたときにDenoのバージョンだけが表示されるようにしたい
  • Nodeのプロジェクトを開いたときはNodeのバージョンが表示されるようにしたい
lemonadernlemonadern

StarshipのNode.jsモジュールを確認

https://starship.rs/config/#node-js

The current directory contains a package.json file
The current directory contains a .node-version file
The current directory contains a .nvmrc file
The current directory contains a node_modules directory
The current directory contains a file with the .js, .mjs or .cjs extension
The current directory contains a file with the .ts, .mts or .cts extension

ただの.ts.jsでも表示されるようになっているため、DenoのプロジェクトでもNodeのバージョン表示がトリガーされる。

lemonadernlemonadern

StarshipのNode.jsモジュールの設定から、検出される拡張子の.ts.jsを外せばよさそう
Denoのプロジェクトには .mjs、.cjs、.mts 、 .cts は現れないと思うので(ESMだし?)これらはそのままにしておく。

StashipのConfigを直接編集するなら、

~/.config/starship.toml
[nodejs]
detect_extensions = ['mjs', 'cjs', 'mts', 'cts']

とすればいい。

lemonadernlemonadern

NixでStarshipの設定を書いている場合はこう:

starship.nix
{
  programs.starship = {
    enable = true;

    settings = {
+      nodejs = {
+        detect_extensions = ["mjs"  "cjs" "mts" "cts"]; # remove `js` and `ts` from default
+      };
    };
  };
}

このスクラップは2024/04/28にクローズされました