40 lines
1.2 KiB
EmacsLisp
40 lines
1.2 KiB
EmacsLisp
;; (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-ts-mode)
|
|
("environments/[^/]*/group_vars/[^/]*\\'" . yaml-ts-mode)
|
|
("environments/[^/]*/host_vars/[^/]*\\'" . yaml-ts-mode)
|
|
)
|
|
:hook (
|
|
(yaml-ts-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-ts-mode-map ([backspace] . yaml-backspace))
|
|
;; )
|
|
:init
|
|
(add-to-list 'major-mode-remap-alist '(yaml-mode . yaml-ts-mode))
|
|
(add-to-list 'treesit-language-source-alist '(yaml "https://github.com/ikatyang/tree-sitter-yaml"))
|
|
(treesit-install-language-grammar 'yaml)
|
|
)
|
|
|
|
(provide 'lang-yaml)
|