From 80bd587d878139a056d170820f076fd30423c9c3 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 1 Jun 2018 14:53:49 +0200 Subject: [PATCH] Move :company-backend setting to autoload.el This decouples the company module from module load-order. --- modules/completion/company/autoload.el | 19 +++++++++++++++++++ modules/completion/company/config.el | 23 ----------------------- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/modules/completion/company/autoload.el b/modules/completion/company/autoload.el index 46d922bad..ac35aa3e5 100644 --- a/modules/completion/company/autoload.el +++ b/modules/completion/company/autoload.el @@ -1,5 +1,24 @@ ;;; completion/company/autoload.el -*- lexical-binding: t; -*- +;;;###autoload +(def-setting! :company-backend (modes &rest backends) + "Prepends BACKENDS to `company-backends' in major MODES. + +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 (or (eq major-mode ',mode) + (bound-and-true-p ,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)))) + ;;;###autoload (defun +company/toggle-auto-completion () "Toggle as-you-type code completion." diff --git a/modules/completion/company/config.el b/modules/completion/company/config.el index 804246ba6..c56290ce8 100644 --- a/modules/completion/company/config.el +++ b/modules/completion/company/config.el @@ -1,28 +1,5 @@ ;;; completion/company/config.el -*- lexical-binding: t; -*- -(def-setting! :company-backend (modes &rest backends) - "Prepends BACKENDS to `company-backends' in major MODES. - -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 (or (eq major-mode ',mode) - (bound-and-true-p ,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)))) - - -;; -;; Packages -;; - (def-package! company :commands (company-complete-common company-manual-begin company-grab-line) :init