Fix duplicate backends by :company-backend #135

This commit is contained in:
Henrik Lissner 2017-06-28 23:06:20 +02:00
parent 069d085eec
commit 0a34d8627e
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -7,11 +7,14 @@ MODES should be one major-mode symbol or a list of them."
`(progn
,@(cl-loop for mode in (doom-enlist (doom-unquote modes))
for def-name = (intern (format "doom--init-company-%s" mode))
collect `(defun ,def-name ()
(when (and (eq major-mode ',mode)
,(not (eq backends '(nil))))
(require 'company)
(setq company-backends (append (list ,@backends) company-backends))))
collect
`(defun ,def-name ()
(when (and (eq major-mode ',mode)
,(not (eq backends '(nil))))
(require 'company)
(make-variable-buffer-local 'company-backends)
(dolist (backend (list ,@(reverse backends)))
(cl-pushnew backend company-backends :test #'equal))))
collect `(add-hook! ,mode #',def-name))))