doomemacs/modules/lang/elixir/config.el

38 lines
1.2 KiB
EmacsLisp
Raw Normal View History

;;; lang/elixir/config.el -*- lexical-binding: t; -*-
2017-05-24 13:08:26 +03:00
(def-package! elixir-mode
2017-06-28 01:32:14 -05:00
:mode "\\.exs?$"
:mode "\\.elixir2$"
2017-05-24 13:08:26 +03:00
:config
;; disable standard config; more disruptive than it needs to be
(dolist (beg '("fn" "do" "def" "defp" "defmodule" "if" "unless" "case" "receive"))
(sp-local-pair 'elixir-mode beg nil :actions :rem))
;; only complete the basics
(sp-with-modes 'elixir-mode
(sp-local-pair "do" "end" :when '(("RET" "<evil-ret>")) :post-handlers '("||\n[i]"))
(sp-local-pair "do " " end")
(sp-local-pair "fn " " end")))
(def-package! alchemist
:after elixir-mode
:hook (elixir-mode . alchemist-mode)
:config
(set! :jump 'elixir-mode
:definition #'alchemist-goto-definition-at-point
:documentation #'alchemist-help-search-at-point)
(set! :eval 'elixir-mode #'alchemist-eval-region))
(def-package! alchemist-company
:when (featurep! :completion company)
:after (:all company elixir-mode)
:config
;; Let Doom handle this
(let ((fn (byte-compile (lambda () (add-to-list (make-local-variable 'company-backends) 'alchemist-company)))))
(remove-hook 'alchemist-mode-hook fn)
(remove-hook 'alchemist-iex-mode-hook fn))
2017-05-24 13:08:26 +03:00
(set! :company-backend 'elixir-mode '(alchemist-company company-yasnippet)))