From c8757b85f7c401463a0b8ae3c3780d8afef2dda4 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 23 Jun 2017 13:44:18 +0200 Subject: [PATCH] Fix :company-backend not overwriting past settings In case you want to alter a mode's company-backend later or in a private module. --- modules/completion/company/config.el | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/modules/completion/company/config.el b/modules/completion/company/config.el index 9ca87e4f8..27539e25b 100644 --- a/modules/completion/company/config.el +++ b/modules/completion/company/config.el @@ -2,16 +2,15 @@ (def-setting! :company-backend (modes backends) "Register company BACKENDS to MODES." - (let* ((modes (doom-enlist (doom-unquote modes))) - (backends (doom-enlist (doom-unquote backends))) - (def-name (intern (format "doom--init-company-%s" - (mapconcat #'symbol-name modes "-"))))) - `(prog1 - (defun ,def-name () - (when (memq major-mode ',modes) - (require 'company) - (cl-pushnew ',backends company-backends :test #'equal))) - (add-hook! ,modes #',def-name)))) + (let ((backends (doom-enlist (doom-unquote backends)))) + (dolist (mode (doom-enlist (doom-unquote modes))) + (let ((def-name (intern (format "doom--init-company-%s" mode)))) + `(prog1 + (defun ,def-name () + (when (eq major-mode ',mode) + (require 'company) + (cl-pushnew ',backends company-backends :test #'equal))) + (add-hook! ,mode #',def-name)))))) ;;