diff --git a/modules/languages/siren-yaml.el b/modules/languages/siren-yaml.el index a78112a..eeaf016 100644 --- a/modules/languages/siren-yaml.el +++ b/modules/languages/siren-yaml.el @@ -6,7 +6,7 @@ ;;; Code: -(require 'siren-prettier-js) +(require 'siren-lsp) (require 'siren-prog-mode) (use-package yaml-mode @@ -20,10 +20,30 @@ :init (defun siren-yaml-mode-setup () (run-hooks 'prog-mode-hook) - (setq tab-width 2 - prettier-js-args '("--parser" "yaml")) + + ;; Configure prettier after local vars are processed, allowing local + ;; override of fill-column and have prettier respect it. + (add-hook 'hack-local-variables-hook + 'siren-yaml-mode-setup-prettier nil t) + + (setq tab-width 2) (prettier-js-mode) - (subword-mode +1))) + (subword-mode +1)) + + (defun siren-yaml-mode-setup-prettier () + (setq-local prettier-js-args `("--parser" "yaml" + "--print-width" ,(number-to-string fill-column) + "--prose-wrap" "always")))) + +(use-package lsp-yaml + :straight lsp-mode + + :hook + (yaml-mode . siren-lsp-yaml-mode-setup) + + :init + (defun siren-lsp-yaml-mode-setup () + (lsp-deferred))) (use-package yaml-imenu :after yaml-mode