From f77a3150b776206079f60a8d7a2e8014deed3353 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Thu, 24 Jun 2021 22:13:57 +0100 Subject: [PATCH] chore(lsp): improve lsp and formatting behavior of js, json and yaml modes --- modules/languages/siren-js.el | 13 +++++++++++-- modules/languages/siren-json.el | 15 ++++++++++++--- modules/languages/siren-yaml.el | 16 +++------------- 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/modules/languages/siren-js.el b/modules/languages/siren-js.el index 31079fc..7ae3cfd 100644 --- a/modules/languages/siren-js.el +++ b/modules/languages/siren-js.el @@ -32,10 +32,19 @@ tab-width width)) (company-mode) - (lsp-deferred) - (lsp-format-buffer-on-save-mode) (subword-mode) (siren-folding))) +(use-package lsp-javascript + :straight lsp-mode + + :hook + (js-mode . siren-lsp-js-mode-setup) + + :init + (defun siren-lsp-js-mode-setup () + (lsp-deferred) + (lsp-format-buffer-on-save-mode))) + (provide 'siren-js) ;;; siren-js.el ends here diff --git a/modules/languages/siren-json.el b/modules/languages/siren-json.el index 96e8423..2d0cade 100644 --- a/modules/languages/siren-json.el +++ b/modules/languages/siren-json.el @@ -6,9 +6,9 @@ ;;; Code: -(require 'siren-flycheck) (require 'siren-folding) (require 'siren-js) +(require 'siren-lsp) (use-package json-mode :mode "\\.json\\'" @@ -27,9 +27,18 @@ (let ((width 2)) (setq js-indent-level width json-reformat:indent-width width - tab-width width)) + tab-width width)))) - (setq flycheck-checker 'json-jsonlint))) +(use-package lsp-json + :straight lsp-mode + + :hook + (json-mode . siren-lsp-json-mode-setup) + + :init + (defun siren-lsp-json-mode-setup () + (lsp-deferred) + (lsp-format-buffer-on-save-mode))) (provide 'siren-json) ;;; siren-js.el ends here diff --git a/modules/languages/siren-yaml.el b/modules/languages/siren-yaml.el index eeaf016..c47d75f 100644 --- a/modules/languages/siren-yaml.el +++ b/modules/languages/siren-yaml.el @@ -21,19 +21,8 @@ (defun siren-yaml-mode-setup () (run-hooks 'prog-mode-hook) - ;; 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)) - - (defun siren-yaml-mode-setup-prettier () - (setq-local prettier-js-args `("--parser" "yaml" - "--print-width" ,(number-to-string fill-column) - "--prose-wrap" "always")))) + (subword-mode +1))) (use-package lsp-yaml :straight lsp-mode @@ -43,7 +32,8 @@ :init (defun siren-lsp-yaml-mode-setup () - (lsp-deferred))) + (lsp-deferred) + (lsp-format-buffer-on-save-mode))) (use-package yaml-imenu :after yaml-mode