(defun yaml-backspace (arg) "Special handling of yaml backspace." (interactive "*p") (if mark-active (backward-delete-char-untabify arg) (yaml-electric-backspace arg) ) ) (defun yaml-format-buffer () "Run prettier." (interactive) (run-command-on-buffer "prettier" "--stdin-filepath" buffer-file-name) ) (use-package yaml-mode :mode (("playbook\\.tmp\\'" . yaml-mode) ("environments/[^/]*/group_vars/[^/]*\\'" . yaml-mode) ("environments/[^/]*/host_vars/[^/]*\\'" . yaml-mode) ) :hook ( (yaml-mode . (lambda () (setq eglot-workspace-configuration (list (cons ':yaml (list ':hover :json-false :validate :json-false :completion t)))) (eglot-ensure) (add-hook 'before-save-hook 'yaml-format-buffer nil 'local) )) ) :bind ( (:map yaml-mode-map ([backspace] . yaml-backspace)) ) ) (provide 'lang-yaml)