company 
- Description
- Modular text completion framework
- Latest
- company-1.1.0.tar (.sig), 2026-Jul-21, 2.43 MiB
- Maintainer
- Dmitry Gutov <dmitry@gutov.dev>
- Website
- http://company-mode.github.io/
- Browse ELPA's repository
- CGit or Gitweb
- All Dependencies
- posframe (.tar)
- Badge
- Manual
- company
To install this package from Emacs, use package-install or list-packages.
Full description
Company is a modular completion framework. Modules for retrieving completion
candidates are called backends, modules for displaying them are frontends.
Company comes with many backends, e.g. `company-etags'. These are
distributed in separate files and can be used individually.
Enable `company-mode' in all buffers with M-x global-company-mode. For
further information look at the documentation for `company-mode' (C-h f
company-mode RET).
If you want to start a specific backend, call it interactively or use
`company-begin-backend'. For example:
M-x company-abbrev will prompt for and insert an abbrev.
To write your own backend, look at the documentation for `company-backends'.
Here is a simple example completing "foo":
(defun company-my-backend (command &optional arg &rest ignored)
(interactive (list 'interactive))
(pcase command
(`interactive (company-begin-backend 'company-my-backend))
(`prefix (company-grab-symbol))
(`candidates (list "foobar" "foobaz" "foobarbaz"))
(`meta (format "This value is named %s" arg))))
Sometimes it is a good idea to mix several backends together, for example to
enrich gtags with dabbrev-code results (to emulate local variables). To do
this, add a list with both backends as an element in `company-backends'.
Old versions
| company-1.0.2.tar.lz | 2024-Sep-23 | 2.04 MiB |
| company-1.0.1.tar.lz | 2024-Sep-21 | 2.04 MiB |
| company-1.0.0.tar.lz | 2024-Sep-21 | 2.04 MiB |
| company-0.10.2.tar.lz | 2024-Mar-31 | 2.03 MiB |
| company-0.10.1.tar.lz | 2023-Oct-06 | 2.03 MiB |
| company-0.10.0.tar.lz | 2023-Oct-04 | 2.03 MiB |
| company-0.9.13.tar.lz | 2020-Jul-26 | 66.1 KiB |
| company-0.9.9.tar.lz | 2018-Dec-13 | 72.6 KiB |
| company-0.9.8.tar.lz | 2018-Dec-09 | 72.5 KiB |
| company-0.9.7.tar.lz | 2018-Nov-06 | 72.4 KiB |
| company-0.9.6.tar.lz | 2018-Feb-23 | 70.2 KiB |
| company-0.9.5.tar.lz | 2018-Feb-18 | 70.0 KiB |
| company-0.9.4.tar.lz | 2017-Jul-15 | 67.3 KiB |
| company-0.9.3.tar.lz | 2017-Mar-29 | 58.6 KiB |
| company-0.9.0.tar.lz | 2016-Jun-23 | 64.4 KiB |
| company-0.8.12.tar.lz | 2015-Mar-05 | 59.9 KiB |
| company-0.8.0.tar.lz | 2014-Apr-20 | 52.0 KiB |
| company-0.7.3.tar.lz | 2014-Mar-25 | 49.8 KiB |
| company-0.6.14.tar.lz | 2014-Jan-26 | 45.6 KiB |
| company-0.5.tar.lz | 2012-Nov-29 | 33.0 KiB |
News
History of user-visible changes
2026-07-21 (1.1.0)
company-tooltip-minimum-widthhas a new value: 15.company-tooltip-maximum-width: same, 100.company-tooltip-width-grow-onlylearned how to grow only up to particular size (implemented incompany--create-lines). The default value is 50.company-childframegets enabled by default on NS/Mac/W32/PGTK systems, and on all others (notably X11 builds) when Emacs is at least 31.1. (#1542).- Default key bindings have been changed, moving
company-show-doc-bufferandcompany-show-locationtoM-handM-g(fromC-h/<f1>andC-w) (#1537). The previous bindings still work, but show a warning and will be removed after the next release. To undo that change locally, do:
(with-eval-after-load 'company
(define-key company-active-map (kbd "C-h") #'company-show-doc-buffer)
(define-key company-active-map (kbd "<f1>") #'company-show-doc-buffer)
(define-key company-active-map (kbd "C-w") #'company-show-location)
(define-key company-active-map (kbd "M-h") nil)
(define-key company-active-map (kbd "M-g") nil))
company-search-regexp-functiondefaults tocompany-search-words-in-any-order-regexp. Another alternative value for it was also added:company-search-flex-words-in-any-order-regexp, working somewhat similar to the popular completion style Orderless.- The
searchfaces in the popup inherit fromisearch. - New option
company-global-minibufferfor completion duringeval-expression(M-:). The "pseudo-tooltip" frontend is not supported by this feature,company-childframeis recommended instead. C-M-iis bound tocompany-complete-commonwhen completion is active.- Search mode input is displayed at the bottom of the popup (#1535).
- New built-in frontend using "real graphical" widget for the popup
(#1525).
This also adds a hard dependency on the package
posframe. - The default light theme colors were changed to a more neutral set, and the scroll bar background was removed (#1529).
- The minimum required version of Emacs is now 26.1.
TABbinding changed tocompany-complete-common-or-cycle, andbacktabbinding tocompany-cycle-backward(#1499).- Completion is restarted if it enters a new "field" at the end, as indicated by
the
adjust-boundariesbackend action (#1497). This benefits file name (and directory) completion. The user optioncompany-files-chop-trailing-slashhas been removed, and thepost-completionhandler incompany-fileshas been removed as well. - Handle the case when the current c-a-p-f function changes mid-session (#1494).
2024-09-23 (1.0.2)
- More reliable cache expiration (at the beginning of completion).
2024-09-21 (1.0.1)
- Fix for failover from a backend group to the next backend.
2024-09-21 (1.0.0)
company-complete-commonnow performs generalized expand common part completion when the backend supports that. In particular, forcompletion-at-point-functionsit queriescompletion-try-completion.company-dabbrev-codeandcompany-etagsalso do that whencompletion-stylessupport is enabled.company-dabbrev-other-buffersandcompany-dabbrev-code-other-bufferscan now take a function as its value (#1485)- Completion works in the middle of a symbol (#1474).
- New user option
company-inhibit-inside-symbols. Set it totto switch ... ...