はじめに
YAML のフォーマッターである yamlfmt について紹介していきます。
yamlfmt とは
yamlfmt
とは、YAML のフォーマッターのコマンドラインツール/ライブラリとなっています。
yamlfmt
を使って、新しい YAML のフォーマッターを作成したりも可能です。
GitHub - google/yamlfmt: An extensible command line tool or library to format yaml files.
Anextensiblecommandlinetoolorlibrarytoformatyamlfiles.-GitHub-google/yamlfmt:Anextensiblecommandlinetoolorlibrarytoformatyamlfiles.
リポジトリは Google のものですが、まだ公式にサポートされているわけではなさそうです。(2023/08 現在)
インストール
下記コマンドでインストールできます。
go install github.com/google/yamlfmt/cmd/yamlfmt@latest
基本的な使い方
下記のようにファイルを指定して、実行することができます。
yamlfmt [file path]
下記で、カレントディレクトリから再起的にyaml
とyml
のファイルをフォーマットできます。
yamlfmt .
設定
設定ファイルは、下記の優先順位で適用されます。
--conf
オプションで指定したファイル- カレントディレクトリの
.yamlfmt
ファイル $HOME/.config/yamlfmt
などの config ディレクトリ内の.yamlfmt
ファイル
https://github.com/google/yamlfmt/blob/main/docs/config-file.md
設定ファイルは下記のようになります。
formatter:
indentless_arrays: true
indentless_arrays
は、Kubernetes のマニフェストなどでみられる配列のインデントの有無を選択できます。
VSCode の拡張
VSCode でyamlfmt
が使える拡張については、下記の issue で言及されていますが、有志の方が作ったyamlfmt
の拡張があるみたいです。
VS Code extension · Issue #129 · google/yamlfmt
Hi,IcreatedaVSCodeextensionwrappingyamlfmt:MaybeyoucouldmentionitinyourREADME.Ifyouhaveideasforadjusting...
yamlfmt - Visual Studio Marketplace
ExtensionforVisualStudioCode-Formatyamlfileswith
ちなみに、下記の Kubernetes の YAML フォーマッターはyamlfmt
を使っているそうです。
Kubernetes YAML Formatter - Visual Studio Marketplace
ExtensionforVisualStudioCode-AbetterYAMLformatterforDevOpslikeKubernetes,Ansible,CI/CD,etc.