Cancel previous company popup when invoking another

Enables uses to switch between backends, e.g. C-x C-s followed by C-x
C-n in insert mode.
This commit is contained in:
Henrik Lissner 2019-07-09 16:12:44 +02:00
parent ef8cd55234
commit 683683736d
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -21,9 +21,16 @@
(unless (featurep! :editor evil) (unless (featurep! :editor evil)
(add-transient-hook! 'post-self-insert-hook (require 'company))) (add-transient-hook! 'post-self-insert-hook (require 'company)))
:config :config
(add-hook 'company-mode-hook #'+company|init-backends)
(when (featurep! :editor evil) (when (featurep! :editor evil)
(add-hook 'company-mode-hook #'evil-normalize-keymaps)) (add-hook 'company-mode-hook #'evil-normalize-keymaps)
;; Allow users to switch between backends on the fly. E.g. C-x C-s followed
;; by C-x C-n, will switch from `company-yasnippet' to
;; `company-dabbrev-code'.
(defun +company*abort-previous (&rest _) (company-abort))
(advice-add #'company-begin-backend :before #'+company*abort-previous))
(add-hook 'company-mode-hook #'+company|init-backends)
(global-company-mode +1)) (global-company-mode +1))