YAML Sort の概要
VS Code に YAML Sort 拡張 をインストールすると、YAML ファイルの内容をキー名でソートすることができます。 主にソート用に使うものですが、YAML フォーマッターとしても利用できます。 次のような簡単なカスタマイズを行うこともできます。
- 指定したキーを優先的に上から並べる
- 1 階層目の各キーの間に空白行を入れる
- リスト要素をソートする
YAML Sort の使い方
YAML Sort のページで Install
ボタンを押すだけで、VS Code への拡張のインストールは完了です。
ここでは、次のような YAML ファイルをソートしてみます。
VS Code で YAML ファイルを開いた状態で、コマンドパレットを開いて (Ctrl/Cmd + Shift + P
)、YAML Sort: Sort YAML
を選択すると、YAML ファイルの内容がソートされます。
先頭行に自動でセパレーター (---
) が挿入され、すべてのキーがアルファベット順にソートされていることが分かります。
キー間の空白行はすべて削除されています。
一方で、リスト要素は自動ではソートされないようです(順番が意味を持つことがあるので当然ですが)。
YAML Sort のカスタマイズ
ソート方法は VS Code の設定ファイルでカスタマイズできるのですが、プロジェクトごと(あるいは YAML ファイルごと)に、ソート方法のルールは変わってくるはずなので、ワークスペース設定ファイル (<Project>/.vscode/settings.json
) で設定するのがよいでしょう(参考: VS Code の設定ファイルの場所)。
ワークスペース設定ファイルは次のように開くことができます。
Ctrl/Cmd + Shift + P
でコマンドパレットを開くPreferences: Open Workspace Settings (JSON)
を選択
設定可能な項目は 公式サイト を参照してください。 以下、いくつか設定例を示しておきます。
優先的に並べるキーを指定する (customSortKeywords_1)
"vscode-yaml-sort.customSortKeywords_1"
というプロパティで、1 階層目のキーのソート順序を定義することができます。
残念ながら、2 階層目移行のキーは指定できないようです。
この設定を使ってソートするには、コマンドパレットから YAML Sort: Sort YAML
を選択する代わりに、YAML Sort: Custom sort 1
を選択します。
プロパティ名の末尾の数字を 2
、3
と変えることで、複数のカスタムソート設定を定義しておくことができます。
キー間に空行を入れる (emptyLinesUntilLevel)
"vscode-yaml-sort.emptyLinesUntilLevel"
プロパティに 1 以上の数値を設定しておくと、その階層まで、各キー間に空白行が入るようになります。
上記の設定例の場合、ルート階層(1 階層目)のキー間に空白行が入ります。