lang/javascript: if lsp fails, fallback to tide
This commit is contained in:
parent
47f0f77d91
commit
e5c8ced1a6
2 changed files with 16 additions and 15 deletions
|
@ -127,27 +127,29 @@
|
||||||
;; Tools
|
;; Tools
|
||||||
|
|
||||||
(when (featurep! +lsp)
|
(when (featurep! +lsp)
|
||||||
(add-hook! (js2-mode rjsx-mode typescript-mode) #'lsp!))
|
(add-hook! (js2-mode typescript-mode) #'lsp!))
|
||||||
|
|
||||||
|
|
||||||
(def-package! tide
|
(def-package! tide
|
||||||
:unless (featurep! +lsp)
|
|
||||||
:defer t
|
:defer t
|
||||||
:init
|
:init
|
||||||
;; Don't let hard errors stop the user from opening js files.
|
(defun +javascript|init-tide-maybe ()
|
||||||
(defun +javascript|init-tide ()
|
"Enable `tide-mode' if node is available, `lsp-mode' isn't enabled and this
|
||||||
"Enable `tide-mode' if node is available."
|
buffer represents a real file."
|
||||||
(cond ((not buffer-file-name)
|
(unless (bound-and-true-p lsp-mode)
|
||||||
(add-hook 'after-save-hook #'+javascript|init-tide nil t))
|
(cond ((not buffer-file-name)
|
||||||
((executable-find "node")
|
;; necessary because `tide-setup' will error if not a file-visiting buffer
|
||||||
(tide-setup))
|
(add-hook 'after-save-hook #'+javascript|init-tide-maybe nil 'local))
|
||||||
((message "Couldn't find `node', aborting tide server"))))
|
((executable-find "node")
|
||||||
(add-hook! (js2-mode typescript-mode) #'+javascript|init-tide)
|
(tide-setup)
|
||||||
|
(remove-hook 'after-save-hook #'+javascript|init-tide-maybe 'local))
|
||||||
|
((message "Couldn't find `node', aborting tide server")))))
|
||||||
|
(add-hook! (js2-mode typescript-mode) #'+javascript|init-tide-maybe)
|
||||||
|
|
||||||
(defun +javascript|init-tide-in-web-mode ()
|
(defun +javascript|init-tide-in-web-mode ()
|
||||||
"Enable `tide-mode' if in a *.tsx file."
|
"Enable `tide-mode' if in a *.tsx file (and `lsp-mode' isn't active)."
|
||||||
(when (string= (file-name-extension (or buffer-file-name "")) "tsx")
|
(when (string= (file-name-extension (or buffer-file-name "")) "tsx")
|
||||||
(tide-setup)))
|
(+javascript|init-tide-maybe)))
|
||||||
(add-hook 'web-mode-hook #'+javascript|init-tide-in-web-mode)
|
(add-hook 'web-mode-hook #'+javascript|init-tide-in-web-mode)
|
||||||
:config
|
:config
|
||||||
(setq tide-completion-detailed t
|
(setq tide-completion-detailed t
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
(package! skewer-mode)
|
(package! skewer-mode)
|
||||||
|
|
||||||
;; Programming environment
|
;; Programming environment
|
||||||
(unless (featurep! +lsp)
|
(package! tide)
|
||||||
(package! tide))
|
|
||||||
(when (featurep! :tools lookup)
|
(when (featurep! :tools lookup)
|
||||||
(package! xref-js2))
|
(package! xref-js2))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue