diff --git a/modules/completion/company/autoload.el b/modules/completion/company/autoload.el index a37627d00..95197780f 100644 --- a/modules/completion/company/autoload.el +++ b/modules/completion/company/autoload.el @@ -67,11 +67,10 @@ Examples: ;;;###autoload (defun +company-init-backends-h () "Set `company-backends' for the current buffer." - (if (not company-mode) - (remove-hook 'change-major-mode-after-body-hook #'+company-init-backends-h 'local) - (unless (eq major-mode 'fundamental-mode) - (setq-local company-backends (+company--backends))) - (add-hook 'change-major-mode-after-body-hook #'+company-init-backends-h nil 'local))) + (or (memq major-mode '(fundamental-mode special-mode)) + buffer-read-only + (doom-temp-buffer-p (or (buffer-base-buffer) (current-buffer))) + (setq-local company-backends (+company--backends)))) (put '+company-init-backends-h 'permanent-local-hook t) diff --git a/modules/completion/company/config.el b/modules/completion/company/config.el index b1bda000e..dddf2309b 100644 --- a/modules/completion/company/config.el +++ b/modules/completion/company/config.el @@ -29,7 +29,7 @@ :before #'company-begin-backend (company-abort))) - (add-hook 'company-mode-hook #'+company-init-backends-h) + (add-hook 'after-change-major-mode-hook #'+company-init-backends-h 'append) (global-company-mode +1))