yaml-mode は yaml を編集する時のメジャーモード。インデントを調整しやすい。
いつも通り el-get でインストール
(el-get-bundle yaml-mode)
合わせて yaml-pro も導入している。こちらはレシピが el-get 本体にはないので自前で用意している
(:name yaml-pro
:website "https://github.com/zkry/yaml-pro"
:description "provides conveniences for editing yaml"
:type github
:pkgname "zkry/yaml-pro"
:depends (yaml))
そんで el-get-bundle
でインストール
(el-get-bundle yaml-pro)
mode に対する hook は関数を定義してその中で呼びたいコードを書いていくようにしている。
lambda で書いてしまうと hook を弄りたい時に結構面倒なのだけど関数を定義しておくと、その関数の中身を変更して評価しておくだけで hook で動作する中身が変更できて便利。
とりあえず yaml-mode では以下のようにして lsp-mode と yaml-pro, flycheck, highlight-indent-guides を有効にしている。
(defun my/yaml-mode-hook ()
(lsp)
(yaml-pro-mode 1)
(flycheck-mode 1)
(highlight-indent-guides-mode 1))
で、その hook を最後に yaml-mode-hook に追加している。
(add-hook 'yaml-mode-hook 'my/yaml-mode-hook)
yaml-ts-mode はインデント周りの挙動が気に入らないので昔ながらの yaml-mode.el を使い続けている。
で treesit-auto を入れていると自動で yaml-ts-mode にしてくれやがるのでそれをさせない設定を入れている
(with-eval-after-load 'treesit-auto
(delete 'yaml treesit-auto-langs))