Benefit from yamlfmt

What happened?

Nothing happened when I saved the file. However, manually invoking +buffer/format makes wonders.

What did you expect to happen?

I would like to format yaml files with yamlfmt when saving. My elisp fu is more or less non-existent so I feel lost. I’m fond of this formatter as it’s possible to specify indentless_arrays, which treats a hyphen (-) as a space = less indentation madness.

Steps to reproduce

  1. go install github.com/google/yamlfmt/cmd/yamlfmt@latest
  2. Make a configuration file in `~/.config/yamlfmt/.yamlfmt, e.g.,:
formatter:
  basic:
  indentless_arrays: true
  retain_line_breaks: true
  1. Favor the new formatter in ~/.doom.d/config.el
(setq-hook! 'yaml-mode-hook +format-with-lsp nil)
(setq-hook! 'yaml-mode +format-with 'yamlfmt)

(after! format-all
  (set-formatter! 'yamlfmt
    '("yamlfmt" "-")
    :modes 'yaml-mode))
  1. Create a simple yaml file:
array:
  - foo: abc
    bar: cde
  - baz: "abz"
  1. Save the file. The desired result would be (without manually calling +buffer/format):
array:
- foo: abc
  bar: cde
- baz: "abz"

System information


Loading data dump...

I’ve tried forking emacs-format-all-the-code and added a yamlfmt formatter myself, and specified the fork as a local repository without it changing the outcome. Does anyone have a solution for how to make this work?

I ended up favoring apheleia (disource discussion) over format-all, added a hook for enabling for yaml mode, and defined my formatting style according to Apheleia’s user guide.