+ "*The list of active back-ends (completion engines).
+Each back-end is a function that takes a variable number of arguments.
+The first argument is the command requested from the back-end. It is one
+of the following:
+
+'prefix: The back-end should return the text to be completed. It must be
+text immediately before `point'. Returning nil passes control to the next
+back-end.
+
+'candidates: The second argument is the prefix to be completed. The
+return value should be a list of candidates that start with the prefix.
+
+Optional commands:
+
+'sorted: The back-end may return t here to indicate that the candidates
+are sorted and will not need to be sorted again.
+
+'no-cache: Usually company doesn't ask for candidates again as completion
+progresses, unless the back-end returns t for this command. The second
+argument is the latest prefix.
+
+'meta: The second argument is a completion candidate. The back-end should
+return a (short) documentation string for it.
+
+'doc-buffer: The second argument is a completion candidate. The back-end should
+create a buffer (preferably with `company-doc-buffer'), fill it with
+documentation and return it.
+
+The back-end should return nil for all commands it does not support or
+does not know about."