From 855ad2c0f1dd60e246d823f9ee589685e032ae4f Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sun, 22 Apr 2018 23:56:29 -0400 Subject: [PATCH] lang/javascript: refactor company/lookup config; bring back xref-js2 --- modules/lang/javascript/config.el | 20 +++++++++++++++++--- modules/lang/javascript/packages.el | 3 +++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/modules/lang/javascript/config.el b/modules/lang/javascript/config.el index 61e095051..3f9265be4 100644 --- a/modules/lang/javascript/config.el +++ b/modules/lang/javascript/config.el @@ -80,12 +80,20 @@ (tide-setup))) (add-hook 'web-mode-hook #'+javascript|init-tide-in-web-mode) :config - (set! :company '(js2-mode typescript-mode) 'company-tide) - (set! :lookup '(js2-mode rjsx-mode typescript-mode) + (add-hook 'tide-mode-hook #'eldoc-mode) + + ;; code completion + (after! company + ;; tide affects the global `company-backends', undo this so doom can handle + ;; it buffer-locally + (setq-default company-backends (delq 'company-tide (default-value 'company-backends)))) + (set! :company-backends 'tide-mode 'company-tide) + + ;; navigation + (set! :lookup 'tide-mode :definition #'tide-jump-to-definition :references #'tide-references :documentation #'tide-documentation-at-point) - (add-hook 'tide-mode-hook #'eldoc-mode) ;; resolve to `doom-project-root' if `tide-project-root' fails (advice-add #'tide-project-root :override #'+javascript*tide-project-root) @@ -131,6 +139,12 @@ :n "r" #'+javascript/refactor-menu)) +(def-package! xref-js2 + :when (featurep! :feature lookup) + :commands xref-js2-xref-backend + :init (set! :lookup 'js2-mode :xref-backend #'xref-js2-xref-backend)) + + (def-package! nodejs-repl :commands nodejs-repl :init diff --git a/modules/lang/javascript/packages.el b/modules/lang/javascript/packages.el index befb573b0..65e1ba8a0 100644 --- a/modules/lang/javascript/packages.el +++ b/modules/lang/javascript/packages.el @@ -14,3 +14,6 @@ (package! typescript-mode) (package! web-beautify) +(when (featurep! :feature lookup) + (package! xref-js2)) +