elixir: refactor

- Moved backend determination to `config.el`
- Replaced unnecessary backquote construct with simple quotation
- Replaced `pcase` form with only one-arm with `when` or `unless` form
- Removed unnecessary `progn`
This commit is contained in:
Lucius Hu 2021-03-18 00:00:12 -04:00 committed by duianto
parent 43c4fa8772
commit 9b6ffd7c22
3 changed files with 11 additions and 23 deletions

View file

@ -23,7 +23,7 @@
;; Variables
(defvar elixir-backend nil
(defvar elixir-backend (if (configuration-layer/layer-used-p 'lsp) 'lsp 'alchemist)
"The backend to use for IDE features.
Possible values are `alchemist' and `lsp'.
If `nil' then `alchemist' is the default backend unless `lsp' layer is used.")

View file

@ -21,30 +21,20 @@
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
(defun spacemacs//elixir-backend ()
"Returns selected backend."
(if elixir-backend
elixir-backend
(cond
((configuration-layer/layer-used-p 'lsp) 'lsp)
(t 'alchemist))))
(defun spacemacs//elixir-setup-backend ()
"Conditionally setup elixir backend."
(pcase (spacemacs//elixir-backend)
(`alchemist (spacemacs//elixir-setup-alchemist))
(`lsp (spacemacs//elixir-setup-lsp))))
(pcase elixir-backend
('alchemist (spacemacs//elixir-setup-alchemist))
('lsp (spacemacs//elixir-setup-lsp))))
(defun spacemacs//elixir-setup-company ()
"Conditionally setup company based on backend."
(pcase (spacemacs//elixir-backend)
(`alchemist (spacemacs//elixir-setup-alchemist-company))))
(when (eq elixir-backend 'alchemist) (spacemacs//elixir-setup-alchemist-company)))
(defun spacemacs//elixir-setup-dap ()
"Conditionally setup elixir DAP integration."
;; currently DAP is only available using LSP
(pcase (spacemacs//elixir-backend)
(`lsp (spacemacs//elixir-setup-lsp-dap))))
(when (eq elixir-backend 'lsp) (spacemacs//elixir-setup-lsp-dap)))
;;alchemist
@ -54,11 +44,10 @@
(defun spacemacs//elixir-setup-alchemist-company ()
(when (configuration-layer/package-used-p 'alchemist)
(progn
(spacemacs|add-company-backends
:backends alchemist-company
:modes elixir-mode alchemist-iex-mode)
(company-mode))))
(spacemacs|add-company-backends
:backends alchemist-company
:modes elixir-mode alchemist-iex-mode)
(company-mode)))
;;lsp

View file

@ -163,8 +163,7 @@
(spacemacs/counsel-gtags-define-keys-for-mode 'elixir-mode))
(defun elixir/pre-init-dap-mode ()
(pcase (spacemacs//elixir-backend)
(`lsp (add-to-list 'spacemacs--dap-supported-modes 'elixir-mode)))
(when (eq elixir-backend 'lsp) (add-to-list 'spacemacs--dap-supported-modes 'elixir-mode))
(add-hook 'elixir-mode-local-vars-hook #'spacemacs//elixir-setup-dap))
(defun elixir/post-init-evil-matchit ()