From f9968bf32695b39c76488ec4cd1350978ffa53f6 Mon Sep 17 00:00:00 2001 From: syl20bnr Date: Fri, 11 May 2018 13:28:16 -0400 Subject: [PATCH] javascript: add default value for tern-command and remove toggle Since now we support multiple backends, the toggle based on tern executable seems not necessary anymore. --- layers/+lang/javascript/config.el | 3 +++ layers/+lang/javascript/funcs.el | 29 ++++++++++++----------------- layers/+lang/javascript/packages.el | 2 +- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/layers/+lang/javascript/config.el b/layers/+lang/javascript/config.el index cdae234d3..0466ec9e6 100644 --- a/layers/+lang/javascript/config.el +++ b/layers/+lang/javascript/config.el @@ -19,3 +19,6 @@ (defvar javascript-backend 'tern "The backend to use for IDE features. Possible values are `tern' and `lsp'.") + +(defvar tern-command nil + "Path to the tern server. Used when `javascript-backend' is set to `tern'.") diff --git a/layers/+lang/javascript/funcs.el b/layers/+lang/javascript/funcs.el index 043689091..322e41a25 100644 --- a/layers/+lang/javascript/funcs.el +++ b/layers/+lang/javascript/funcs.el @@ -100,19 +100,21 @@ (defun spacemacs//javascript-setup-tern () "Setup tern backend." - (add-hook 'js2-mode-hook 'tern-mode) - (progn - (spacemacs|hide-lighter tern-mode) - (when javascript-disable-tern-port-files - (add-to-list 'tern-command "--no-port-file" 'append)) - (spacemacs//set-tern-key-bindings 'js2-mode))) + (when tern-command + (add-hook 'js2-mode-hook 'tern-mode) + (progn + (spacemacs|hide-lighter tern-mode) + (when javascript-disable-tern-port-files + (add-to-list 'tern-command "--no-port-file" 'append)) + (spacemacs//set-tern-key-bindings 'js2-mode)))) (defun spacemacs//javascript-setup-tern-company () "Setup tern auto-completion." - (spacemacs|add-company-backends - :backends company-tern - :modes js2-mode) - (company-mode)) + (when tern-command + (spacemacs|add-company-backends + :backends company-tern + :modes js2-mode) + (company-mode))) (defun spacemacs//set-tern-key-bindings (mode) "Set the key bindings for tern and the given MODE." @@ -125,13 +127,6 @@ (kbd "C-g") 'tern-pop-find-definition "ht" 'tern-get-type)) -(defun spacemacs//tern-detect () - "Detect tern binary and warn if not found." - (let ((found (executable-find "tern"))) - (unless found - (spacemacs-buffer/warning "tern binary not found!")) - found)) - ;; lsp diff --git a/layers/+lang/javascript/packages.el b/layers/+lang/javascript/packages.el index bbe587926..0f4160a88 100644 --- a/layers/+lang/javascript/packages.el +++ b/layers/+lang/javascript/packages.el @@ -26,7 +26,7 @@ js2-refactor json-mode json-snatcher - (tern :toggle (spacemacs//tern-detect)) + tern web-beautify skewer-mode livid-mode