Company stands for "*complete anything*" and is a modular in-buffer completion mechanism.

[[http://company-mode.github.io/ Official Website]]

== Backends ==
Backends are single functions, they look like this:

  (defun company-my-backend (command &optional arg &rest ignored)
    (interactive (list 'interactive))
    (case command
      (interactive (company-begin-backend 'company-my-backend))
      (prefix (when (looking-back "foo\\>")
                (match-string 0)))
      (candidates (when (equal arg "foo")
                    (list "foobar" "foobaz" "foobarbaz")))
      (meta (format "This value is named %s" arg))))

They can be installed simply by adding them to ''company-backends''.
If it is in a file named like the function (e.g. company-my-backend.el), it will be required automatically.

A list of user-written backends: CompanyModeBackends

== Frontends ==
A visualization (frontend) is also a single function.  It looks like this:

  (defun company-my-frontend (command)
    (case command
      (pre-command (echo "%s" (car company-candidates)))
      (post-command (echo "%s" (car company-candidates)))
      (hide (echo ""))))

It can be installed by adding it to ''company-frontends''.

== Addons ==

* [http://melpa.org/#/helm-company helm-company] -- Helm interface for company-mode.
* [http://melpa.org/#/company-quickhelp company-quickhelp] -- Documentation for completion popups, as [https://github.com/expez/company-quickhelp#is-it-any-good here].

== Discussion ==

Moved to the [https://www.emacswiki.org/emacs/Comments_on_CompanyMode Talk Page]

----

CategoryCompletion
