[VSCode] 使用 yamlfmt 自動格式化 YAML 檔案,並符合 yamllint 格式

[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 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料