[VSCode] 使用 yamlfmt 自動格式化 YAML 檔案,並符合 yamllint 格式
今天遇到 YAML 檔案格式化與 linting 的問題…
假設有下面一個 YAML 檔如下:
name: abc age: 20 # comment here
如果使用 VSCode 的 Prettier 擴充功能,或是用 yamlfmt,
跑完後的結果都如下所示,注意到註解 # 前面只剩一個空白:
name: abc age: 20 # comment here
問題是,如果跑 yamllint
來檢查的話,
它會抱怨說註解前面空白太少 (因為預設是要兩個空白):
$ yamllint test.yaml test.yaml 2:9 warning too few spaces before comment (comments)
這樣就有點難搞了…
找了半天,Prettier 好像沒有設定可以調整這個,但 yamllint 有~
首先,建立 ~/.yamlfmt
檔案,裡面的內容如下:
formatter: type: basic retain_line_breaks: true retain_line_breaks_single: true pad_line_comments: 2
這個設定檔主要就是將註解前的空白改成兩個,
只保留一個空白行等等~
有了這個設定檔後,再跑一次 yamlfmt,
YAML 檔案裡的註解 # 前就有兩個空白了:
name: abc age: 20 # comment here
這時再跑 yamllint 也不會報錯囉:
$ yamllint test.yaml
在 VSCode 裡如果想改用 yamllint 的話,
要記得裝 yamllint 套件,同時在 Users settings 裡面,
把 YAML 檔案 formatter 設成 bluebrown.yamlfmt:
{ "[yaml]": { "editor.defaultFormatter": "bluebrown.yamlfmt", "editor.formatOnSave": true } }
這樣在 VSCode 裡編輯 YAML 檔再儲存時,就能自動格式化好,
而且也是符合 yamllint 的格式啦~
(本頁面已被瀏覽過 3 次)