This library enables the completion of C/C++ header file names using Company mode for Emacs.
When you type an #include
declaration within a supported major mode (currently c-mode
, c++-mode
and objc-mode
), company-c-headers will search for completion candidates within the defined include paths. There are “system” and “user” include paths, for #include <...>
and #include "..."
declarations, respectively.
During completion, the path to the current candidate can be seen in the minibuffer, such as in the screenshot above. Also during completion, you can use C-w to temporarily display the currently-selected header file.
This library is inspired by auto-complete-c-headers.
The best way to install this package is via MELPA.
With the company-c-headers library added to the load-path
, all you need to do to initialize it is:
(add-to-list 'company-backends 'company-c-headers)
Typically you would want to customize the search paths, which you can do using M-x customize-group, company-c-headers.
Alternatively, you can bind the company-c-headers-path-system
and company-c-headers-path-user
variables to functions which return the corresponding paths. For example, if you are using EDE, you can use the following:
(defun ede-object-system-include-path ()
"Return the system include path for the current buffer."
(when ede-object
(ede-system-include-path ede-object)))
(setq company-c-headers-path-system 'ede-object-system-include-path)