I have, for instance, this in my .emacs:

(use-package company
  :bind (("M-RET" . company-complete))
  :demand                               ; load it now (better for eglot)
  (setq company-backends '(company-capf company-semantic company-dabbrev-code
                                        company-dabbrev company-etags
  (setq company-dabbrev-downcase nil ; make case-sensitive
    company-dabbrev-ignore-case nil) ; make case-sensitive

The last setq gives flycheck free-variable warnings for company-dabbrev-downcase and company-dabbrev-ignore-case even though they are both defined with defcustom in company-mode. Should I just ignore these warnings, or should I do something differently to fix them?

1 Answer 1


You could try the :defines keyword in use-package. According to use-package's README it's for "introduce[ing] dummy variable and function declarations solely for the sake of the byte-compiler".

(use-package company
  :defines company-dabbrev-downcase company-dabbrev-ignore-case

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.