]> crepu.dev Git - config.git/blame - djavu-asus/elpa/company-20230926.32/company.info
Actualizado el Readme
[config.git] / djavu-asus / elpa / company-20230926.32 / company.info
CommitLineData
53e6db90
DC
1This is company.info, produced by makeinfo version 6.7 from
2company.texi.
3
4This user manual is for Company version 0.9.14snapshot (16 April 2023).
5
6Copyright © 2021-2023 Free Software Foundation, Inc.
7
8 Permission is granted to copy, distribute and/or modify this
9 document under the terms of the GNU Free Documentation License,
10 Version 1.3 or any later version published by the Free Software
11 Foundation.
12INFO-DIR-SECTION Emacs misc features
13START-INFO-DIR-ENTRY
14* Company: (company). A modular text completion framework.
15END-INFO-DIR-ENTRY
16
17\1f
18File: company.info, Node: Top, Next: Overview, Up: (dir)
19
20Company
21*******
22
23Company is a modular text completion framework for GNU Emacs.
24
25The goal of this document is to lay out the foundational knowledge of
26the package, so that the readers of the manual could competently start
27adapting Company to their needs and preferences.
28
29This user manual is for Company version 0.9.14snapshot (16 April 2023).
30
31Copyright © 2021-2023 Free Software Foundation, Inc.
32
33 Permission is granted to copy, distribute and/or modify this
34 document under the terms of the GNU Free Documentation License,
35 Version 1.3 or any later version published by the Free Software
36 Foundation.
37
38* Menu:
39
40* Overview:: Terminology and Structure
41* Getting Started:: Quick Start Guide
42* Customization:: User Options
43* Frontends:: Frontends Usage Instructions
44* Backends:: Backends Usage Instructions
45* Troubleshooting:: When Something Goes Wrong
46* Index::
47
48— The Detailed Node Listing —
49
50Overview
51
52* Terminology::
53* Structure::
54
55Getting Started
56
57* Installation::
58* Initial Setup::
59* Usage Basics::
60* Commands::
61
62Customization
63
64* Customization Interface::
65* Configuration File::
66
67Frontends
68
69* Tooltip Frontends::
70* Preview Frontends::
71* Echo Frontends::
72* Candidates Search::
73* Filter Candidates::
74* Quick Access a Candidate::
75
76Backends
77
78* Backends Usage Basics::
79* Grouped Backends::
80* Package Backends::
81* Candidates Post-Processing::
82
83
84\1f
85File: company.info, Node: Overview, Next: Getting Started, Prev: Top, Up: Top
86
871 Overview
88**********
89
90“Company” is a modular text completion framework for GNU Emacs.
91
92In other words, it is a package for retrieving, manipulating, and
93displaying text completion candidates. It aims to assist developers,
94writers, and scientists during code and text writing.
95
96* Menu:
97
98* Terminology::
99* Structure::
100
101\1f
102File: company.info, Node: Terminology, Next: Structure, Up: Overview
103
1041.1 Terminology
105===============
106
107“Completion” is an act of intelligibly guessing possible variants of
108words based on already typed characters. To “complete” a word means to
109insert a correctly guessed variant into the buffer.
110
111Consequently, the “candidates” are the aforementioned guessed variants
112of words. Each of the candidates has the potential to be chosen for
113successful completion. And each of the candidates contains the
114initially typed characters: either only at the beginning (so-called
115“prefix matches”), or also inside (“non-prefix matches”) of a candidate
116(1).
117
118The package’s name “Company” is based on the combination of the two
119words: ‘Complete’ and ‘Anything’. These words reflect the package’s
120commitment to handling completion candidates and its extensible nature
121allowing it to cover a wide range of usage scenarios.
122
123 ---------- Footnotes ----------
124
125 (1) A good starting point to learn about types of matches is to play
126with the Emacs’s user option ‘completion-styles’. For illustrations on
127how Company visualizes the matches, *note Frontends::.
128
129\1f
130File: company.info, Node: Structure, Prev: Terminology, Up: Overview
131
1321.2 Structure
133=============
134
135The Company is easily extensible because its significant building blocks
136are pluggable modules: backends (*note Backends::) and frontends (*note
137Frontends::).
138
139The “backends” are responsible for retrieving completion candidates;
140which are then outputted by the “frontends”. For an easy and quick
141initial setup, Company is supplied with the preconfigured sets of the
142backends and frontends. The default behavior of the modules can be
143adjusted per particular needs, goals, and preferences. It is also
144typical to utilize backends from a variety of third-party libraries
145(https://github.com/company-mode/company-mode/wiki/Third-Party-Packages),
146developed to be pluggable with Company.
147
148But Company consists not only of the backends and frontends.
149
150A core of the package plays the role of a controller, connecting the
151modules, making them work together; and exposing configurations and
152commands for a user to operate with. For more details, *note
153Customization:: and *note Commands::.
154
155Also, Company is bundled with an alternative workflow configuration
156“company-tng” — defining ‘company-tng-frontend’, ‘company-tng-mode’, and
157‘company-tng-map’ — that allows performing completion with just <TAB>.
158To enable this configuration, add the following line to the Emacs
159initialization file (*note (emacs)Init File::):
160
161 (add-hook 'after-init-hook 'company-tng-mode)
162
163\1f
164File: company.info, Node: Getting Started, Next: Customization, Prev: Overview, Up: Top
165
1662 Getting Started
167*****************
168
169This chapter provides basic instructions for Company setup and usage.
170
171* Menu:
172
173* Installation::
174* Initial Setup::
175* Usage Basics::
176* Commands::
177
178\1f
179File: company.info, Node: Installation, Next: Initial Setup, Up: Getting Started
180
1812.1 Installation
182================
183
184Company package is distributed via commonly used package archives in a
185form of both stable and development releases. To install Company, type
186‘M-x package-install <RET> company <RET>’.
187
188For more details on Emacs package archives, *note (emacs)Packages::.
189
190\1f
191File: company.info, Node: Initial Setup, Next: Usage Basics, Prev: Installation, Up: Getting Started
192
1932.2 Initial Setup
194=================
195
196The package Company provides a minor mode “company-mode”.
197
198To activate the _company-mode_, execute the command ‘M-x company-mode’
199that toggles the mode on and off. When it is switched on, the mode line
200(*note (emacs)Mode line::) should indicate its presence with an
201indicator ‘company’.
202
203After _company-mode_ had been enabled, the package auto-starts
204suggesting completion candidates. The candidates are retrieved and
205shown according to the typed characters and the default (until a user
206specifies otherwise) configurations.
207
208To have Company always enabled for the following sessions, add the line
209‘(global-company-mode)’ to the Emacs configuration file (*note
210(emacs)Init File::).
211
212\1f
213File: company.info, Node: Usage Basics, Next: Commands, Prev: Initial Setup, Up: Getting Started
214
2152.3 Usage Basics
216================
217
218By default — having _company-mode_ enabled (*note Initial Setup::) — a
219tooltip with completion candidates is shown when a user types in a few
220characters.
221
222To initiate completion manually, use the command ‘M-x company-complete’.
223
224To select next or previous of the shown completion candidates, use
225respectively key bindings ‘C-n’ and ‘C-p’, then do one of the following:
226
227 • Hit <RET> to choose a selected candidate for completion.
228
229 • Hit <TAB> to complete with the “common part”: characters present at
230 the beginning of all the candidates.
231
232 • Hit ‘C-g’ to stop activity of Company.
233
234\1f
235File: company.info, Node: Commands, Prev: Usage Basics, Up: Getting Started
236
2372.4 Commands
238============
239
240Under the hood, mentioned in the previous section keys are bound to the
241commands of the out-of-the-box Company.
242
243‘C-n’
244‘M-n’
245 Select the next candidate (‘company-select-next-or-abort’,
246 ‘company-select-next’).
247
248‘C-p’
249‘M-p’
250 Select the previous candidate (‘company-select-previous-or-abort’,
251 ‘company-select-previous’).
252
253‘RET’
254‘<return>’
255 Insert the selected candidate (‘company-complete-selection’).
256
257‘TAB’
258‘<tab>’
259 Insert the common part of all the candidates
260 (‘company-complete-common’).
261
262‘C-g’
263‘<ESC ESC ESC>’
264 Cancel _company-mode_ activity (‘company-abort’).
265
266‘C-h’
267‘<F1>’
268 Display a buffer with the documentation for the selected candidate
269 (‘company-show-doc-buffer’). With a prefix argument (‘C-u C-h’,
270 ‘C-u <F1>’), this command toggles between temporary showing the
271 documentation and keeping the documentation buffer up-to-date
272 whenever the selection changes.
273
274‘C-w’
275 Display a buffer with the definition of the selected candidate
276 (‘company-show-location’).
277
278The full list of the default key bindings is stored in the variables
279‘company-active-map’ and ‘company-search-map’ (1).
280
281Moreover, Company is bundled with a number of convenience commands that
282do not have default key bindings defined. The following examples
283illustrate how to assign key bindings to such commands.
284
285 (global-set-key (kbd "<tab>") #'company-indent-or-complete-common)
286
287 (with-eval-after-load 'company
288 (define-key company-active-map (kbd "M-/") #'company-complete))
289
290 (with-eval-after-load 'company
291 (define-key company-active-map
292 (kbd "TAB")
293 #'company-complete-common-or-cycle)
294 (define-key company-active-map
295 (kbd "<backtab>")
296 (lambda ()
297 (interactive)
298 (company-complete-common-or-cycle -1))))
299
300In the same manner, an additional key can be assigned to a command or a
301command can be unbound from a key. For instance:
302
303 (with-eval-after-load 'company
304 (define-key company-active-map (kbd "M-.") #'company-show-location)
305 (define-key company-active-map (kbd "RET") nil))
306
307 ---------- Footnotes ----------
308
309 (1) For a more user-friendly output of the pre-defined key bindings,
310utilize ‘M-x describe-keymap <RET> company-active-map’ or
311‘C-h f <RET> company-mode’.
312
313\1f
314File: company.info, Node: Customization, Next: Frontends, Prev: Getting Started, Up: Top
315
3163 Customization
317***************
318
319Emacs provides two equally acceptable ways for user preferences
320configuration: via customization interface (for more details, *note
321(emacs)Easy Customization::) and a configuration file (*note (emacs)Init
322File::). Naturally, Company can be configured by both of these
323approaches.
324
325* Menu:
326
327* Customization Interface::
328* Configuration File::
329
330\1f
331File: company.info, Node: Customization Interface, Next: Configuration File, Up: Customization
332
3333.1 Customization Interface
334===========================
335
336In order to employ the customization interface, run
337‘M-x customize-group <RET> company’.
338
339This interface outputs all the options available for user customization,
340so you may find it beneficial to review this list even if you are going
341to configure Company with the configuration file.
342
343For instructions on how to change the settings, *note (emacs)Changing a
344Variable::.
345
346\1f
347File: company.info, Node: Configuration File, Prev: Customization Interface, Up: Customization
348
3493.2 Configuration File
350======================
351
352Company is a customization-rich package. This section lists some of the
353core settings that influence the overall behavior of the _company-mode_.
354
355 -- User Option: company-minimum-prefix-length
356 This is one of the values (together with ‘company-idle-delay’),
357 based on which Company auto-stars looking up completion candidates.
358 This option configures how many characters have to be typed in by a
359 user before candidates start to be collected and displayed. An
360 often choice nowadays is to configure this option to a lower number
361 than the default value of ‘3’.
362
363 -- User Option: company-idle-delay
364 This is the second of the options that configure Company’s
365 auto-start behavior (together with
366 ‘company-minimum-prefix-length’). The value of this option defines
367 how fast Company is going to react to the typed input, such that
368 setting ‘company-idle-delay’ to ‘0’ makes Company react
369 immediately, ‘nil’ disables auto-starting, and a larger value
370 postpones completion auto-start for that number of seconds. For an
371 even fancier setup, set this option value to a predicate function,
372 as shown in the following example:
373
374 (setq company-idle-delay
375 (lambda () (if (company-in-string-or-comment) nil 0.3)))
376
377 -- User Option: company-global-modes
378 This option allows to specify in which major modes _company-mode_
379 can be enabled by ‘(global-company-mode)’. *Note Initial Setup::.
380 The default value of ‘t’ enables Company in all major modes.
381 Setting ‘company-global-modes’ to ‘nil’ equal in action to toggling
382 off _global-company-mode_. Providing a list of major modes results
383 in having _company-mode_ enabled in the listed modes only. For the
384 opposite result, provide a list of major modes with ‘not’ being the
385 first element of the list, as shown in the following example:
386
387 (setq company-global-modes '(not erc-mode message-mode eshell-mode))
388
389 -- User Option: company-selection-wrap-around
390 Enable this option to loop (cycle) the candidates’ selection: after
391 selecting the last candidate on the list, a command to select the
392 next candidate does so with the first candidate. By default, this
393 option is disabled, which means the selection of the next candidate
394 stops on the last item. The selection of the previous candidate is
395 influenced by this option similarly.
396
397 -- User Option: company-require-match
398 To allow typing in characters that don’t match the candidates, set
399 the value of this option to ‘nil’. For an opposite behavior (that
400 is, to disallow non-matching input), set it to ‘t’. By default,
401 Company is configured to require a matching input only if a user
402 manually enables completion or selects a candidate; by having the
403 option configured to call the function ‘company-explicit-action-p’.
404
405 -- User Option: company-lighter-base
406 This user options allows to configure a string indicator of the
407 enabled _company-mode_ in the mode line. The default value is
408 ‘company’.
409
410 -- User Option: company-insertion-on-trigger
411 One more pair of the user options may instruct Company to complete
412 with the selected candidate by typing one of the
413 ‘company-insertion-triggers’. The user option
414 ‘company-insertion-on-trigger’ can be enabled or disabled by
415 setting its value to one of: ‘nil’, ‘t’, or a predicate function
416 name. *note Predicate: (eintr)Wrong Type of Argument.
417
418 -- User Option: company-insertion-triggers
419 This option has an effect only when ‘company-insertion-on-trigger’
420 is enabled. The value can be one of: a string of characters, a
421 list of syntax description characters (*note (elisp)Syntax Class
422 Table::), or a predicate function. By default, this user option is
423 set to the list of the syntax characters: ‘(?\ ?\) ?.)’, which
424 translates to the whitespaces, close parenthesis, and punctuation.
425 It is safe to configure the value to a character that can
426 potentially be part of a valid completion; in this case, Company
427 does not treat such characters as triggers.
428
429Hooks
430-----
431
432Company exposes the following life-cycle hooks:
433
434 -- User Option: company-completion-started-hook
435
436 -- User Option: company-completion-cancelled-hook
437
438 -- User Option: company-completion-finished-hook
439
440 -- User Option: company-after-completion-hook
441
442\1f
443File: company.info, Node: Frontends, Next: Backends, Prev: Customization, Up: Top
444
4454 Frontends
446***********
447
448Company is packaged with several frontends and provides a predefined set
449of enabled frontends. A list of the enabled frontends can be changed by
450configuring the user option ‘company-frontends’.
451
452Each frontend is simply a function that receives a command and acts
453accordingly to it: outputs candidates, hides its output, refreshes
454displayed data, and so on.
455
456All of the Company frontends can be categorized by the type of the
457output into the three groups: “tooltip-”, “preview-”, and “echo-”
458frontends. We overview these groups in the first sections of this
459chapter. The sections that follow are dedicated to the ways the
460displayed candidates can be searched, filtered, and quick-accessed.
461
462* Menu:
463
464* Tooltip Frontends::
465* Preview Frontends::
466* Echo Frontends::
467* Candidates Search::
468* Filter Candidates::
469* Quick Access a Candidate::
470
471\1f
472File: company.info, Node: Tooltip Frontends, Next: Preview Frontends, Up: Frontends
473
4744.1 Tooltip Frontends
475=====================
476
477This group of frontends displays completion candidates in an overlayed
478tooltip (aka pop-up). Company provides three _tooltip frontends_,
479listed below.
480
481 -- Function: company-pseudo-tooltip-unless-just-one-frontend
482 This is one of the default frontends. It starts displaying a
483 tooltip only if more than one completion candidate is available,
484 which nicely combines — and it is done so by default — with
485 ‘company-preview-if-just-one-frontend’, *note Preview Frontends::.
486
487 -- Function: company-pseudo-tooltip-frontend
488 This frontend outputs a tooltip for any number of completion
489 candidates.
490
491 -- Function: company-pseudo-tooltip-unless-just-one-frontend-with-delay
492 This is a peculiar frontend, that displays a tooltip only if more
493 than one candidate is available, and only after a delay. The delay
494 can be configured with the user option
495 ‘company-tooltip-idle-delay’. A typical use case for plugging in
496 this frontend would be displaying a tooltip only on a manual
497 request (when needed), as shown in the following example:
498
499 (setq company-idle-delay 0
500 company-tooltip-idle-delay 10
501 company-require-match nil
502 company-frontends
503 '(company-pseudo-tooltip-unless-just-one-frontend-with-delay
504 company-preview-frontend
505 company-echo-metadata-frontend)
506 company-backends '(company-capf))
507
508 (global-set-key (kbd "<tab>")
509 (lambda ()
510 (interactive)
511 (let ((company-tooltip-idle-delay 0.0))
512 (company-complete)
513 (and company-candidates
514 (company-call-frontends 'post-command)))))
515
516User Options
517------------
518
519To change the _tooltip frontends_ configuration, adjust the following
520user options.
521
522 -- User Option: company-tooltip-align-annotations
523 An “annotation” is a string that carries additional information
524 about a candidate; such as a data type, function arguments, or
525 whatever a backend appoints to be a valuable piece of information
526 about a candidate. By default, the annotations are shown right
527 beside the candidates. Setting the option value to ‘t’ aligns
528 annotations to the right side of the tooltip.
529
530 (setq company-tooltip-align-annotations t)
531
532 \0\b[image src="./images/small/tooltip-annotations.png"\0\b]
533
534 -- User Option: company-tooltip-annotation-padding
535 Adds left padding to the candidates’ annotations. It is disabled
536 by default. If ‘company-tooltip-align-annotations’ is enabled,
537 ‘company-tooltip-annotation-padding’ defines the minimum spacing
538 between a candidate and annotation, with the default value of 1.
539
540 (setq company-tooltip-annotation-padding 1)
541
542 -- User Option: company-tooltip-limit
543 Controls the maximum number of the candidates shown simultaneously
544 in the tooltip (the default value is ‘10’). When the number of the
545 available candidates is larger than this option’s value, Company
546 paginates the results.
547
548 (setq company-tooltip-limit 4)
549
550 \0\b[image src="./images/small/tooltip-limit.png"\0\b]
551
552 -- User Option: company-tooltip-offset-display
553 Use this option to choose in which way to output paginated results.
554 The default value is ‘scrollbar’. Another supported value is
555 ‘lines’; choose it to show the quantity of the candidates not
556 displayed by the current tooltip page.
557
558 (setq company-tooltip-offset-display 'lines)
559
560 \0\b[image src="./images/small/tooltip-offset-display.png"\0\b]
561
562 -- User Option: company-tooltip-minimum
563 This user option acts only when a tooltip is shown close to the
564 bottom of a window. It guarantees visibility of this number of
565 completion candidates below point. When the number of lines
566 between point and the bottom of a window is less than
567 ‘company-tooltip-minimum’ value, the tooltip is displayed above
568 point.
569
570 (setq company-tooltip-minimum 4)
571
572 \0\b[image src="./images/small/tooltip-minimum-below.png"\0\b]
573
574
575 \0\b[image src="./images/small/tooltip-minimum-above.png"\0\b]
576
577 -- User Option: company-tooltip-flip-when-above
578 This is one of the fancy features Company has to suggest. When
579 this setting is enabled, no matter if a tooltip is shown above or
580 below point, the candidates are always listed starting near point.
581 (Putting it differently, the candidates are mirrored horizontally
582 if a tooltip changes its position, instead of being commonly listed
583 top-to-bottom.)
584
585 (setq company-tooltip-flip-when-above t)
586
587 \0\b[image src="./images/small/tooltip-flip.png"\0\b]
588
589 -- User Option: company-tooltip-minimum-width
590 Sets the minimum width of a tooltip, excluding the margins and the
591 scroll bar. Changing this value especially makes sense if a user
592 navigates between tooltip pages. Keeping this value at the default
593 ‘0’ allows Company to always adapt the width of the tooltip to the
594 longest shown candidate. Enlarging ‘company-tooltip-minimum-width’
595 prevents possible significant shifts in the width of the tooltip
596 when navigating to the next/previous tooltip page. (For an
597 alternate solution, see ‘company-tooltip-width-grow-only’.)
598
599 -- User Option: company-tooltip-width-grow-only
600 This is another way to restrict auto-adaptation of the tooltip
601 width (another is by adjusting ‘company-tooltip-minimum-width’
602 value) when navigating between the tooltip pages.
603
604 -- User Option: company-tooltip-maximum-width
605 This user option controls the maximum width of the tooltip inner
606 area. By default, its value is pseudo-limitless, potentially
607 permitting the output of extremely long candidates. But if long
608 lines become an issue, set this option to a smaller number, such as
609 ‘60’ or ‘70’.
610
611 -- User Option: company-tooltip-margin
612 Controls the width of the “margin” on the sides of the tooltip
613 inner area. If ‘company-format-margin-function’ is set,
614 ‘company-tooltip-margin’ defines only the right margin.
615
616 (setq company-tooltip-margin 3)
617
618 \0\b[image src="./images/small/tooltip-margin.png"\0\b]
619
620Candidates Icons
621----------------
622
623An “icon” is an image or a text that represents a candidate’s kind; it
624is displayed in front of a candidate. The term “kind” here stands for a
625high-level category a candidate fits into. (Such as ‘array’,
626‘function’, ‘file’, ‘string’, ‘color’, etc. For an extended list of the
627possible _kinds_, see the user option ‘company-text-icons-mapping’ or
628the variable ‘company-vscode-icons-mapping’.)
629
630 -- User Option: company-format-margin-function
631 Allows setting a function to format the left margin of a tooltip
632 inner area; namely, to output candidate’s _icons_. The predefined
633 formatting functions are listed below. A user may also set this
634 option to a custom function. To disable left margin formatting,
635 set the value of the option to ‘nil’ (this way control over the
636 size of the left margin returns to the user option
637 ‘company-tooltip-margin’).
638
639 -- Function: company-vscode-dark-icons-margin
640 -- Function: company-vscode-light-icons-margin
641 These functions utilize VSCode dark and light theme icon sets (1).
642 The related two user options are ‘company-icon-size’ and
643 ‘company-icon-margin’.
644
645 \0\b[image src="./images/small/tooltip-icons-vscode.png"\0\b]
646
647 -- Function: company-text-icons-margin
648 This function produces letters and symbols formatted according to
649 the ‘company-text-icons-format’. The rest of the user options
650 affecting this function behavior are listed below.
651
652 \0\b[image src="./images/small/tooltip-icons-text.png"\0\b]
653
654 -- Function: company-dot-icons-margin
655 This function produces a colored Unicode symbol of a circle
656 formatted according to the ‘company-dot-icons-format’. Other user
657 options that affect the resulting output are listed below.
658
659 \0\b[image src="./images/small/tooltip-icons-dot.png"\0\b]
660
661The following user options influence appearance of the _text_ and _dot_
662_icons_.
663
664 -- User Option: company-text-icons-mapping
665 Lists candidates’ _kinds_ with their corresponding _icons_
666 configurations.
667
668 -- User Option: company-text-face-extra-attributes
669 A list of face attributes to be applied to the _icons_.
670
671 (setq company-text-face-extra-attributes
672 '(:weight bold :slant italic))
673
674 \0\b[image src="./images/small/tooltip-icon-face.png"\0\b]
675
676 -- User Option: company-text-icons-add-background
677 If this option is enabled, when an _icon_ doesn’t have a background
678 configured by ‘company-text-icons-mapping’, then a generated
679 background is applied.
680
681 (setq company-text-icons-add-background t)
682
683 \0\b[image src="./images/small/tooltip-icon-bg.png"\0\b]
684
685 -- Function: company-detect-icons-margin
686 This is the default margin formatting function, that applies one of
687 the ‘company-vscode-*-icons-margin’ functions if ‘vscode’ icons set
688 is supported; otherwise applies a ‘company-text-icons-margin’
689 function.
690
691Faces
692-----
693
694Out-of-the-box Company defines and configures distinguished faces (*note
695(emacs)Faces::) for light and dark themes. Moreover, some of the
696built-in and third-party themes fine-tune Company to fit their palettes.
697That is why there’s often no real need to make such adjustments on a
698user side. However, this chapter presents some hints on where to start
699customizing Company interface.
700
701Namely, the look of a tooltip is controlled by the ‘company-tooltip*’
702named faces.
703
704The following example hints how a user may approach tooltip faces
705customization:
706
707 (custom-set-faces
708 '(company-tooltip
709 ((t (:background "ivory" :foreground "MistyRose3"))))
710 '(company-tooltip-selection
711 ((t (:background "LemonChiffon1" :foreground "MistyRose4"))))
712 '(company-tooltip-common ((t (:weight bold :foreground "pink1"))))
713 '(company-scrollbar-fg ((t (:background "ivory3"))))
714 '(company-scrollbar-bg ((t (:background "ivory2"))))
715 '(company-tooltip-annotation ((t (:foreground "MistyRose2")))))
716
717 \0\b[image src="./images/small/tooltip-faces-light.png"\0\b]
718
719 ---------- Footnotes ----------
720
721 (1) SVG images support has to be enabled in Emacs for these icons set
722to be used. The supported images types can be checked with ‘C-h v
723image-types’. Before compiling Emacs, make sure ‘librsvg’ is installed
724on your system.
725
726\1f
727File: company.info, Node: Preview Frontends, Next: Echo Frontends, Prev: Tooltip Frontends, Up: Frontends
728
7294.2 Preview Frontends
730=====================
731
732Frontends in this group output a completion candidate or a common part
733of the candidates temporarily inline, as if a word had already been
734completed (1).
735
736 -- Function: company-preview-if-just-one-frontend
737 This is one of the frontends enabled by default. This frontend
738 outputs a preview if only one completion candidate is available; it
739 is a good suit to be combined with
740 ‘company-pseudo-tooltip-unless-just-one-frontend’, *note Tooltip
741 Frontends::.
742
743 -- Function: company-preview-frontend
744 This frontend outputs the first of the available completion
745 candidates inline for a preview.
746
747 -- Function: company-preview-common-frontend
748 As the name of this frontend suggests, it outputs for a preview
749 only a common part of the candidates.
750
751The look of the preview is controlled by the following faces:
752‘company-preview’, ‘company-preview-common’, and
753‘company-preview-search’.
754
755 \0\b[image src="./images/small/preview-light.png"\0\b]
756
757
758 \0\b[image src="./images/small/preview-dark.png"\0\b]
759
760 ---------- Footnotes ----------
761
762 (1) The candidates retrieved according to ‘non-prefix’ matches (*note
763Terminology::) may be shown in full after point.
764
765\1f
766File: company.info, Node: Echo Frontends, Next: Candidates Search, Prev: Preview Frontends, Up: Frontends
767
7684.3 Echo Frontends
769==================
770
771The frontends listed in this section display information in the Emacs’s
772echo area, *note (emacs)Echo Area::.
773
774 -- Function: company-echo-metadata-frontend
775 This frontend is a part of the predefined frontends set. Its
776 responsibility is to output a short documentation string for a
777 completion candidate in the echo area.
778
779 \0\b[image src="./images/small/echo-meta.png"\0\b]
780
781
782The last pair of the built-in frontends isn’t that commonly used and not
783as full-featured as the previously reviewed _tooltip-_ and _preview-_
784frontends, but still, feel free to play with them and have some fun!
785
786 -- Function: company-echo-frontend
787 This frontend outputs all the available completion candidates in
788 the echo area.
789
790 \0\b[image src="./images/small/echo.png"\0\b]
791
792 -- Function: company-echo-strip-common-frontend
793 It acts similarly to the previous frontend but outputs a common
794 part of the candidates once for all of them.
795
796 \0\b[image src="./images/small/echo-strip.png"\0\b]
797
798 -- User Option: company-echo-truncate-lines
799 This is the only _echo frontends_ targeted setting. When enabled,
800 the output is truncated to fit the echo area. This setting is set
801 to ‘t’ by default.
802
803To apply visual changes to the output of these frontends, configure the
804faces ‘company-echo’ and ‘company-echo-common’.
805
806\1f
807File: company.info, Node: Candidates Search, Next: Filter Candidates, Prev: Echo Frontends, Up: Frontends
808
8094.4 Candidates Search
810=====================
811
812By default, when _company-mode_ is in action, a key binding ‘C-s’ starts
813looking for matches to additionally typed characters among the displayed
814candidates. When a search is initiated, an indicator
815‘Search: CHARACTERS’ is shown in the Emacs’s mode line.
816
817To quit the search mode, hit ‘C-g’.
818
819 -- User Option: company-search-regexp-function
820 The value of this user option must be a function that interprets
821 the search input. By default it is set to the function
822 ‘regexp-quote’, with looks for an exact match. Company defines
823 several more functions suitable for this option. They are listed
824 below.
825
826 -- Function: company-search-words-regexp
827 Searches for words separated with spaces in the given order.
828
829 -- Function: company-search-words-in-any-order-regexp
830 Searches for words separated with spaces in any order.
831
832 -- Function: company-search-flex-regexp
833 Searches for characters in the given order, with anything in
834 between.
835
836Search matches are distinguished by the ‘company-tooltip-search’ and
837‘company-tooltip-search-selection’ faces.
838
839 \0\b[image src="./images/small/tooltip-search.png"\0\b]
840
841\1f
842File: company.info, Node: Filter Candidates, Next: Quick Access a Candidate, Prev: Candidates Search, Up: Frontends
843
8444.5 Filter Candidates
845=====================
846
847Candidates filtering is started by typing the default key binding
848‘C-M-s’. Filtering acts on a par with the search (*note Candidates
849Search::), indicating its activation by the text ‘Filter: CHARACTERS’ in
850the mode line and influencing the displayed candidates. The difference
851is that the filtering, as its name suggests, keeps displaying only the
852matching candidates (in addition to distinguishing the matches with a
853face).
854
855To quit the filtering, hit ‘C-g’. To toggle between search and filter
856states, use key binding ‘C-o’.
857
858 \0\b[image src="./images/small/tooltip-filter.png"\0\b]
859
860\1f
861File: company.info, Node: Quick Access a Candidate, Prev: Filter Candidates, Up: Frontends
862
8634.6 Quick Access a Candidate
864============================
865
866Company provides a way to choose a candidate for completion without
867having to navigate to that candidate: by hitting one of the quick-access
868keys. By default, quick-access key bindings utilize a modifier <META>
869and one of the digits, such that pressing ‘M-1’ completes with the first
870candidate on the list and ‘M-0’ with the tenth candidate.
871
872If ‘company-show-quick-access’ is enabled, _tooltip-_ and _echo-_
873frontends show quick-access hints.
874
875 (setq company-show-quick-access 'left)
876
877 \0\b[image src="./images/small/tooltip-quick-access.png"\0\b]
878
879
880 \0\b[image src="./images/small/echo-qa.png"\0\b]
881
882
883 \0\b[image src="./images/small/echo-strip-qa.png"\0\b]
884
885To customize the key bindings, either do it via Customization Interface
886(*note Customization Interface::) or use the following approach:
887
888 (custom-set-variables
889 '(company-quick-access-keys '("a" "o" "e" "u" "i"))
890 '(company-quick-access-modifier 'super))
891
892A modifier should be one of ‘meta’, ‘super’, ‘hyper’, ‘ control’.
893
894The following example applies a bit of customization and demonstrates
895how to change quick-access hints faces.
896
897 (setq company-show-quick-access t)
898
899 (custom-set-faces
900 '(company-tooltip-quick-access ((t (:foreground "pink1"))))
901 '(company-tooltip-quick-access-selection
902 ((t (:foreground "pink1" :slant italic)))))
903
904 \0\b[image src="./images/small/tooltip-qa-faces-light.png"\0\b]
905
906\1f
907File: company.info, Node: Backends, Next: Troubleshooting, Prev: Frontends, Up: Top
908
9095 Backends
910**********
911
912We can metaphorically say that each backend is like an engine. (The
913reality is even better since backends are just functions.) Fueling such
914an engine with a command causes the production of material for Company
915to move further on. Typically, moving on means outputting that material
916to a user via one or several configured frontends, *note Frontends::.
917
918Just like Company provides a preconfigured list of the enabled
919frontends, it also defines a list of the backends to rely on by default.
920This list is stored in the user option ‘company-backends’. The
921docstring of this variable has been a source of valuable information for
922years. That’s why we’re going to stick to a tradition and suggest
923reading the output of ‘C-h v company-backends’ for insightful details
924about backends. Nevertheless, the fundamental concepts are described in
925this user manual too.
926
927* Menu:
928
929* Backends Usage Basics::
930* Grouped Backends::
931* Package Backends::
932* Candidates Post-Processing::
933
934\1f
935File: company.info, Node: Backends Usage Basics, Next: Grouped Backends, Up: Backends
936
9375.1 Backends Usage Basics
938=========================
939
940One of the significant concepts to understand about Company is that the
941package relies on one backend at a time (1). The backends are invoked
942one by one, in the sequential order of the items on the
943‘company-backends’ list.
944
945The name of the currently active backend is shown in the mode line and
946in the output of the command ‘M-x company-diag’.
947
948In most cases (mainly to exclude false-positive results), the next
949backend is not invoked automatically. For the purpose of invoking the
950next backend, use the command ‘company-other-backend’: either by calling
951it with ‘M-x’ or by binding the command to the keys of your choice, such
952as:
953
954 (global-set-key (kbd "C-c C-/") #'company-other-backend)
955
956It is also possible to specifically start a backend with the command
957‘M-x company-begin-backend’ or by calling a backend by its name, for
958instance: ‘M-x company-capf’. As usual for Emacs, such backends calls
959can be assigned to key bindings, for example:
960
961 (global-set-key (kbd "C-c y") 'company-yasnippet)
962
963 ---------- Footnotes ----------
964
965 (1) The grouped backends act as one complex backend. *Note Grouped
966Backends::.
967
968\1f
969File: company.info, Node: Grouped Backends, Next: Package Backends, Prev: Backends Usage Basics, Up: Backends
970
9715.2 Grouped Backends
972====================
973
974In many cases, it can be desirable to receive candidates from several
975backends simultaneously. This can be achieved by configuring “grouped
976backends”: a sub-list of backends in the ‘company-backends’ list, that
977is handled specifically by Company.
978
979The most important part of this handling is the merge of the completion
980candidates from the grouped backends. (But only from the backends that
981return the same _prefix_ value, see ‘C-h v company-backends’ for more
982details.)
983
984To keep the candidates organized in accordance with the grouped backends
985order, add the keyword ‘:separate’ to the list of the grouped backends.
986The following example illustrates this.
987
988 (defun my-text-mode-hook ()
989 (setq-local company-backends
990 '((company-dabbrev company-ispell :separate)
991 company-files)))
992
993 (add-hook 'text-mode-hook #'my-text-mode-hook)
994
995Another keyword ‘:with’ helps to make sure the results from major/minor
996mode agnostic backends (such as _company-yasnippet_,
997_company-dabbrev-code_) are returned without preventing results from
998context-aware backends (such as _company-capf_ or _company-clang_). For
999this feature to work, put backends dependent on a mode at the beginning
1000of the grouped backends list, then put a keyword ‘:with’, and only then
1001put context agnostic backend(s), as shown in the following concise
1002example:
1003
1004 (setq company-backends '((company-capf :with company-yasnippet)))
1005
1006\1f
1007File: company.info, Node: Package Backends, Next: Candidates Post-Processing, Prev: Grouped Backends, Up: Backends
1008
10095.3 Package Backends
1010====================
1011
1012The following sections give a short overview of the commonly used
1013backends bundled with Company. Each section is devoted to one of the
1014roughly outlined groups of the backends.
1015
1016Some of the backends expose user options for customization; a few of
1017these options are introduced below. For those who would like to fetch
1018the full list of a backend’s user options, we suggest doing one of the
1019following:
1020
1021 • Execute command ‘M-x customize-group <RET> <backend-name>’.
1022
1023 • Open the source file of the backend and run
1024 ‘M-x occur <RET> ^(defcustom’.
1025
1026 − Optionally, search for the matches with
1027 ‘M-x isearch <RET> (defcustom’.
1028
1029* Menu:
1030
1031* Code Completion::
1032* Text Completion::
1033* File Name Completion::
1034* Template Expansion::
1035
1036\1f
1037File: company.info, Node: Code Completion, Next: Text Completion, Up: Package Backends
1038
10395.3.1 Code Completion
1040---------------------
1041
1042 -- Function: company-capf
1043 In the Emacs’s world, the current tendency is to have the
1044 completion logic provided by ‘completion-at-point-functions’ (CAPF)
1045 implementations. [Among the other things, this is what the popular
1046 packages that support language server protocol (LSP) also rely on.]
1047
1048 Since _company-capf_ works as a bridge to the standard CAPF
1049 facility, it is probably the most often used and recommended
1050 backend nowadays, including for Emacs Lisp coding.
1051
1052 Just to illustrate, the following minimal backends setup
1053
1054 (setq company-backends '((company-capf company-dabbrev-code)))
1055
1056 might cover a large number of basic use cases, especially so in
1057 major modes that have CAPF support implemented.
1058
1059 For more details on CAPF, *note (elisp)Completion in Buffers::.
1060
1061 -- Function: company-dabbrev-code
1062 This backend works similarly to the built-in Emacs package
1063 _dabbrev_, searching for completion candidates inside the contents
1064 of the open buffer(s). Internally, its based on the backend
1065 _company-dabbrev_ (*note Text Completion::).
1066
1067 -- Function: company-keywords
1068 This backend provides completions for many of the widely spread
1069 programming languages _keywords_: words bearing specific meaning in
1070 a language.
1071
1072 -- Function: company-clang
1073 As the name suggests, use this backend to get completions from
1074 _Clang_ compiler; that is, for the languages in the _C_ language
1075 family: _C_, _C++_, _Objective-C_.
1076
1077 -- Function: company-semantic
1078 This backend relies on a built-in Emacs package that provides
1079 language-aware editing commands based on source code parsers, *note
1080 (emacs)Semantic::. Having enabled _semantic-mode_ makes it to be
1081 used by the CAPF mechanism (*note (emacs)Symbol Completion::),
1082 hence a user may consider enabling _company-capf_ backend instead.
1083
1084 -- Function: company-etags
1085 This backend works on top of a built-in Emacs package _etags_,
1086 *note (emacs)Tags Tables::. Similarly to aforementioned _Semantic_
1087 usage, tags-based completions now are a part of the Emacs’ CAPF
1088 facility, therefore a user may consider switching to _company-capf_
1089 backend.
1090
1091\1f
1092File: company.info, Node: Text Completion, Next: File Name Completion, Prev: Code Completion, Up: Package Backends
1093
10945.3.2 Text Completion
1095---------------------
1096
1097 -- Function: company-dabbrev
1098 This backend works similarly to the built-in Emacs package
1099 _dabbrev_, searching for completion candidates inside the contents
1100 of the open buffer(s). It is one of the often used backends, and
1101 it has several interesting options for configuration. Let’s review
1102 a few of them.
1103
1104 -- User Option: company-dabbrev-minimum-length
1105 This option sets the minimum length of a completion candidate
1106 to collect from the text. The default value of ‘4’ is
1107 intended to prevent potential performance issues. But in many
1108 scenarios, it may be acceptable to lower this value. Note
1109 that this option also affects the behavior of the
1110 _company-dabbrev-code_ backend.
1111
1112 (setq company-dabbrev-minimum-length 2)
1113
1114 -- User Option: company-dabbrev-other-buffers
1115 By default, _company-dabbrev_ collects completion candidates
1116 from all not ignored buffers (see more on that below). This
1117 behavior can be changed to collecting candidates from the
1118 current buffer only (by setting the value to ‘nil’) or from
1119 the buffers with the same major mode:
1120
1121 (setq company-dabbrev-other-buffers t)
1122
1123 -- User Option: company-dabbrev-ignore-buffers
1124 The value of this option should be a regexp or a predicate
1125 function that can be used to match a buffer name. The matched
1126 buffers are omitted from the search for completion candidates.
1127
1128 The last two options described here relate to handling uppercase
1129 and lowercase letters in completion candidates. The illustrative
1130 examples given below can be reproduced in the ‘*scratch*’ buffer,
1131 with the word ‘Enjoy’ typed in, and with this initial setup:
1132
1133 (setq-local company-backends '(company-dabbrev)
1134 company-dabbrev-other-buffers nil
1135 company-dabbrev-ignore-case nil
1136 company-dabbrev-downcase nil)
1137
1138 -- User Option: company-dabbrev-ignore-case
1139 This user option controls whether the case is ignored when
1140 collecting completion candidates. When the option is set to
1141 ‘nil’, ‘Enjoy’ is suggested as a completion candidate for the
1142 typed ‘Enj’ letters, but not for ‘enj’. When the option is
1143 set to ‘t’, ‘Enjoy’ is suggested as a candidate for both ‘Enj’
1144 and ‘enj’ input; note that ‘enj’ prefix is “overwritten” by
1145 completing with the ‘Enjoy’ candidate. The third, default,
1146 type of behavior solves this issue, keeping the case of the
1147 typed prefix (and still collecting candidates
1148 case-insensitively):
1149
1150 (setq company-dabbrev-ignore-case 'keep-prefix)
1151
1152 Now we can type ‘enj’, complete it with the suggested ‘Enjoy’,
1153 and _enjoy_ the result.
1154
1155 -- User Option: company-dabbrev-downcase
1156 This user option controls whether completion candidates are
1157 down-cased before their display. When the option is set to
1158 ‘nil’, no transformation is performed; in the environment
1159 described above, typing ‘Enj’ results in the candidate ‘Enjoy’
1160 being suggested. When the option is set to ‘t’, the
1161 down-cased candidate ‘enjoy’ is suggested. By default, this
1162 option is set to ‘case-replace’, meaning taking a value of the
1163 Emacs’s variable ‘case-replace’ (‘t’ is the current default).
1164
1165
1166 -- Function: company-ispell
1167 This backend returns completion candidates collected by _Ispell_, a
1168 built-in Emacs package that performs spell-checking. *Note
1169 Checking and Correcting Spelling: (emacs)Spelling. Note that
1170 _Ispell_ uses only one dictionary at a time (combining several
1171 dictionaries into one file is an accepted practice). By default,
1172 _company-ispell_ suggests candidates from a dictionary specified by
1173 the Emacs’s setting ‘ispell-complete-word-dict’.
1174
1175 -- User Option: company-ispell-dictionary
1176 Optionally, set a file path for _company-ispell_ to use
1177 another dictionary.
1178
1179\1f
1180File: company.info, Node: File Name Completion, Next: Template Expansion, Prev: Text Completion, Up: Package Backends
1181
11825.3.3 File Name Completion
1183--------------------------
1184
1185 -- Function: company-files
1186 This backend can be used to retrieve completion candidates for the
1187 absolute and relative paths in the directory structure of an
1188 operating system. The behavior of the _company-files_ backend can
1189 be adjusted with the two user options.
1190
1191 -- User Option: company-files-exclusions
1192 It may be desirable to exclude directories or files from the
1193 list of suggested completion candidates. For example,
1194 someone’s setup might look this way:
1195
1196 (setq company-files-exclusions '(".git/" ".DS_Store"))
1197
1198 -- User Option: company-files-chop-trailing-slash
1199 This setting is enabled by default, which results in stripping
1200 off a trailing slash from an inserted directory name. On
1201 typing a trailing slash, the process of completion gets
1202 started again, from inside the just inserted directory.
1203
1204 Setting ‘company-files-chop-trailing-slash’ to ‘nil’ makes
1205 directory names to be inserted as is, with a trailing slash.
1206 In this case, the completion process can be continued, for
1207 example, either by explicitly calling _company-files_ backend
1208 (*note Backends Usage Basics::) or by starting typing a name
1209 of a file/directory known to be located under the inserted
1210 directory.
1211
1212\1f
1213File: company.info, Node: Template Expansion, Prev: File Name Completion, Up: Package Backends
1214
12155.3.4 Template Expansion
1216------------------------
1217
1218 -- Function: company-abbrev
1219 This is a completion backend for a built-in word abbreviation mode
1220 (*note (emacs)Abbrevs::), that allows completing abbreviations with
1221 their expansions.
1222
1223 -- Function: company-tempo
1224 A backend for users of Tempo
1225 (https://www.lysator.liu.se/~davidk/elisp/), one more built-in
1226 Emacs package for creating and inserting (expanding) templates.
1227
1228 -- Function: company-yasnippet
1229 Used as a completion backend for the popular third-party template
1230 system YASnippet (https://github.com/joaotavora/yasnippet).
1231
1232\1f
1233File: company.info, Node: Candidates Post-Processing, Prev: Package Backends, Up: Backends
1234
12355.4 Candidates Post-Processing
1236==============================
1237
1238A list of completion candidates, supplied by a backend, can be
1239additionally manipulated (reorganized, reduced, sorted, etc) before its
1240output. This is done by adding a processing function name to the user
1241option ‘company-transformers’ list, for example:
1242
1243 (setq company-transformers '(delete-consecutive-dups
1244 company-sort-by-occurrence))
1245
1246Company is bundled with several such transformer functions. They are
1247listed below.
1248
1249 -- Function: company-sort-by-occurrence
1250 Sorts candidates using ‘company-occurrence-weight-function’
1251 algorithm.
1252
1253 -- User Option: company-occurrence-weight-function
1254 Can be set to one of ‘company-occurrence-prefer-closest-above’
1255 (default) or ‘company-occurrence-prefer-any-closest’. This user
1256 option defines the behavior of the ‘company-sort-by-occurrence’
1257 transformer function.
1258
1259 -- Function: company-sort-by-backend-importance
1260 Sorts candidates as two priority groups, differentiated by the
1261 keyword ‘:with’ (*note Grouped Backends::). Backends positioned in
1262 the backends list before the keyword ‘:with’ are treated as more
1263 important.
1264
1265 -- Function: company-sort-prefer-same-case-prefix
1266 Gives preference to the candidates that match the prefix
1267 case-insensitively.
1268
1269\1f
1270File: company.info, Node: Troubleshooting, Next: Index, Prev: Backends, Up: Top
1271
12726 Troubleshooting
1273*****************
1274
1275If something goes wrong, the first thing we recommend doing is to
1276execute command ‘M-x company-diag’ and thoroughly study its output.
1277
1278This command outputs important details about the internal workings of
1279Company at the moment of the ‘company-diag’ command execution, including
1280a responsible backend and a list of completion candidates provided by
1281it.
1282
1283Based on the value of the ‘Used backend’ in the output of the command
1284‘M-x company-diag’, these possible actions may follow:
1285
1286 • If the used backend does not belong to the Company package, report
1287 the issue to the corresponding third-party package maintainer(s).
1288
1289 • If the used backend is ‘company-capf’, then take a look at the line
1290 starting with ‘Value of c-a-p-f:’. The issue could have been
1291 caused by a function listed there. To identify to which package it
1292 belongs, type ‘M-x find-function <RET> <function-name> <RET>’.
1293
1294If the aforementioned steps didn’t help to find the cause of the issue,
1295then file a bug report to
1296the Company Issue Tracker (https://github.com/company-mode/company-mode/issues),
1297attaching the following information:
1298
1299 1. Output of the ‘M-x company-diag’.
1300
1301 2. The exact error message: you can find it in the ‘*Messages*’
1302 buffer.
1303
1304 3. The steps to reproduce the behavior. Ideally, if you can, starting
1305 with a bare Emacs session: ‘emacs -Q’.
1306
1307 4. The backtrace of the error, which you can get by running the
1308 command: ‘M-x toggle-debug-on-error’ before reproducing the error.
1309
1310\1f
1311File: company.info, Node: Index, Prev: Troubleshooting, Up: Top
1312
1313Index
1314*****
1315
1316* Menu:
1317
1318* Key Index::
1319* Variable Index::
1320* Function Index::
1321* Concept Index::
1322
1323\1f
1324File: company.info, Node: Key Index, Next: Variable Index, Up: Index
1325
1326Key Index
1327=========
1328
1329\0\b[index\0\b]
1330* Menu:
1331
1332* C-g: Usage Basics. (line 20)
1333* C-g <1>: Commands. (line 30)
1334* C-g <2>: Candidates Search. (line 11)
1335* C-g <3>: Filter Candidates. (line 14)
1336* C-h: Commands. (line 34)
1337* C-M-s: Filter Candidates. (line 6)
1338* C-n: Usage Basics. (line 12)
1339* C-n <1>: Commands. (line 11)
1340* C-o: Filter Candidates. (line 14)
1341* C-p: Usage Basics. (line 12)
1342* C-p <1>: Commands. (line 16)
1343* C-s: Candidates Search. (line 6)
1344* C-w: Commands. (line 42)
1345* M-<digit>: Quick Access a Candidate.
1346 (line 6)
1347* RET: Usage Basics. (line 15)
1348* RET <1>: Commands. (line 21)
1349* TAB: Usage Basics. (line 17)
1350* TAB <1>: Commands. (line 25)
1351
1352\1f
1353File: company.info, Node: Variable Index, Next: Function Index, Prev: Key Index, Up: Index
1354
1355Variable Index
1356==============
1357
1358\0\b[index\0\b]
1359* Menu:
1360
1361* company-after-completion-hook: Configuration File. (line 94)
1362* company-backends: Backends. (line 12)
1363* company-backends <1>: Backends Usage Basics.
1364 (line 6)
1365* company-backends <2>: Grouped Backends. (line 6)
1366* company-completion-cancelled-hook: Configuration File. (line 90)
1367* company-completion-finished-hook: Configuration File. (line 92)
1368* company-completion-started-hook: Configuration File. (line 88)
1369* company-dabbrev-downcase: Text Completion. (line 64)
1370* company-dabbrev-ignore-buffers: Text Completion. (line 32)
1371* company-dabbrev-ignore-case: Text Completion. (line 47)
1372* company-dabbrev-minimum-length: Text Completion. (line 13)
1373* company-dabbrev-other-buffers: Text Completion. (line 23)
1374* company-dot-icons-format: Tooltip Frontends. (line 187)
1375* company-echo-truncate-lines: Echo Frontends. (line 33)
1376* company-files-chop-trailing-slash: File Name Completion.
1377 (line 19)
1378* company-files-exclusions: File Name Completion.
1379 (line 12)
1380* company-format-margin-function: Tooltip Frontends. (line 161)
1381* company-frontends: Frontends. (line 6)
1382* company-global-modes: Configuration File. (line 31)
1383* company-icon-margin: Tooltip Frontends. (line 172)
1384* company-icon-size: Tooltip Frontends. (line 172)
1385* company-idle-delay: Configuration File. (line 17)
1386* company-insertion-on-trigger: Configuration File. (line 64)
1387* company-insertion-triggers: Configuration File. (line 72)
1388* company-ispell-dictionary: Text Completion. (line 84)
1389* company-lighter-base: Configuration File. (line 59)
1390* company-minimum-prefix-length: Configuration File. (line 9)
1391* company-mode: Initial Setup. (line 6)
1392* company-occurrence-weight-function: Candidates Post-Processing.
1393 (line 21)
1394* company-require-match: Configuration File. (line 51)
1395* company-search-regexp-function: Candidates Search. (line 13)
1396* company-selection-wrap-around: Configuration File. (line 43)
1397* company-show-quick-access: Quick Access a Candidate.
1398 (line 14)
1399* company-text-face-extra-attributes: Tooltip Frontends. (line 200)
1400* company-text-icons-add-background: Tooltip Frontends. (line 208)
1401* company-text-icons-format: Tooltip Frontends. (line 179)
1402* company-text-icons-mapping: Tooltip Frontends. (line 196)
1403* company-tooltip-align-annotations: Tooltip Frontends. (line 52)
1404* company-tooltip-annotation-padding: Tooltip Frontends. (line 64)
1405* company-tooltip-flip-when-above: Tooltip Frontends. (line 107)
1406* company-tooltip-idle-delay: Tooltip Frontends. (line 22)
1407* company-tooltip-limit: Tooltip Frontends. (line 72)
1408* company-tooltip-margin: Tooltip Frontends. (line 141)
1409* company-tooltip-maximum-width: Tooltip Frontends. (line 134)
1410* company-tooltip-minimum: Tooltip Frontends. (line 92)
1411* company-tooltip-minimum-width: Tooltip Frontends. (line 119)
1412* company-tooltip-offset-display: Tooltip Frontends. (line 82)
1413* company-tooltip-width-grow-only: Tooltip Frontends. (line 129)
1414* company-transformers: Candidates Post-Processing.
1415 (line 6)
1416
1417\1f
1418File: company.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Index
1419
1420Function Index
1421==============
1422
1423\0\b[index\0\b]
1424* Menu:
1425
1426* company-abbrev: Template Expansion. (line 6)
1427* company-abort: Commands. (line 30)
1428* company-begin-backend: Backends Usage Basics.
1429 (line 23)
1430* company-capf: Code Completion. (line 6)
1431* company-clang: Code Completion. (line 36)
1432* company-complete: Usage Basics. (line 10)
1433* company-complete-common: Commands. (line 25)
1434* company-complete-selection: Commands. (line 21)
1435* company-dabbrev: Text Completion. (line 6)
1436* company-dabbrev-code: Code Completion. (line 25)
1437* company-detect-icons-margin: Tooltip Frontends. (line 217)
1438* company-diag: Backends Usage Basics.
1439 (line 11)
1440* company-diag <1>: Troubleshooting. (line 6)
1441* company-dot-icons-margin: Tooltip Frontends. (line 186)
1442* company-echo-frontend: Echo Frontends. (line 21)
1443* company-echo-metadata-frontend: Echo Frontends. (line 9)
1444* company-echo-strip-common-frontend: Echo Frontends. (line 27)
1445* company-etags: Code Completion. (line 48)
1446* company-files: File Name Completion.
1447 (line 6)
1448* company-ispell: Text Completion. (line 75)
1449* company-keywords: Code Completion. (line 31)
1450* company-mode: Initial Setup. (line 6)
1451* company-other-backend: Backends Usage Basics.
1452 (line 14)
1453* company-preview-common-frontend: Preview Frontends. (line 21)
1454* company-preview-frontend: Preview Frontends. (line 17)
1455* company-preview-if-just-one-frontend: Preview Frontends. (line 10)
1456* company-pseudo-tooltip-frontend: Tooltip Frontends. (line 17)
1457* company-pseudo-tooltip-unless-just-one-frontend: Tooltip Frontends.
1458 (line 11)
1459* company-pseudo-tooltip-unless-just-one-frontend-with-delay: Tooltip Frontends.
1460 (line 21)
1461* company-search-flex-regexp: Candidates Search. (line 26)
1462* company-search-words-in-any-order-regexp: Candidates Search.
1463 (line 23)
1464* company-search-words-regexp: Candidates Search. (line 20)
1465* company-select-next: Commands. (line 11)
1466* company-select-next-or-abort: Commands. (line 11)
1467* company-select-previous: Commands. (line 16)
1468* company-select-previous-or-abort: Commands. (line 16)
1469* company-semantic: Code Completion. (line 41)
1470* company-show-doc-buffer: Commands. (line 34)
1471* company-show-location: Commands. (line 42)
1472* company-sort-by-backend-importance: Candidates Post-Processing.
1473 (line 28)
1474* company-sort-by-occurrence: Candidates Post-Processing.
1475 (line 17)
1476* company-sort-prefer-same-case-prefix: Candidates Post-Processing.
1477 (line 34)
1478* company-tempo: Template Expansion. (line 11)
1479* company-text-icons-margin: Tooltip Frontends. (line 178)
1480* company-tng-frontend: Structure. (line 26)
1481* company-tng-mode: Structure. (line 26)
1482* company-vscode-dark-icons-margin: Tooltip Frontends. (line 170)
1483* company-vscode-light-icons-margin: Tooltip Frontends. (line 171)
1484* company-yasnippet: Template Expansion. (line 16)
1485* global-company-mode: Initial Setup. (line 18)
1486
1487\1f
1488File: company.info, Node: Concept Index, Prev: Function Index, Up: Index
1489
1490Concept Index
1491=============
1492
1493\0\b[index\0\b]
1494* Menu:
1495
1496* abbrev: Template Expansion. (line 6)
1497* abort: Usage Basics. (line 20)
1498* abort <1>: Commands. (line 30)
1499* activate: Initial Setup. (line 8)
1500* active backend: Backends Usage Basics.
1501 (line 11)
1502* active backend <1>: Troubleshooting. (line 15)
1503* annotation: Tooltip Frontends. (line 53)
1504* auto-start: Initial Setup. (line 13)
1505* backend: Structure. (line 6)
1506* backend <1>: Structure. (line 10)
1507* backend <2>: Backends Usage Basics.
1508 (line 11)
1509* backend <3>: Backends Usage Basics.
1510 (line 14)
1511* backend <4>: Troubleshooting. (line 15)
1512* backends: Backends. (line 6)
1513* backends <1>: Backends Usage Basics.
1514 (line 6)
1515* backends <2>: Grouped Backends. (line 6)
1516* backends <3>: Package Backends. (line 6)
1517* basics: Usage Basics. (line 6)
1518* bug: Troubleshooting. (line 6)
1519* bug <1>: Troubleshooting. (line 27)
1520* bundled backends: Package Backends. (line 6)
1521* cancel: Usage Basics. (line 20)
1522* cancel <1>: Commands. (line 30)
1523* candidate: Terminology. (line 10)
1524* candidate <1>: Usage Basics. (line 12)
1525* candidate <2>: Usage Basics. (line 15)
1526* candidate <3>: Preview Frontends. (line 6)
1527* color: Tooltip Frontends. (line 227)
1528* color <1>: Quick Access a Candidate.
1529 (line 37)
1530* common part: Usage Basics. (line 17)
1531* common part <1>: Commands. (line 25)
1532* common part <2>: Preview Frontends. (line 6)
1533* company-echo: Echo Frontends. (line 6)
1534* company-preview: Preview Frontends. (line 6)
1535* company-tng: Structure. (line 26)
1536* company-tooltip: Tooltip Frontends. (line 227)
1537* company-tooltip-search: Candidates Search. (line 6)
1538* complete: Terminology. (line 6)
1539* complete <1>: Usage Basics. (line 12)
1540* complete <2>: Usage Basics. (line 15)
1541* complete <3>: Usage Basics. (line 17)
1542* complete <4>: Commands. (line 21)
1543* complete <5>: Preview Frontends. (line 6)
1544* completion: Terminology. (line 6)
1545* completion <1>: Usage Basics. (line 12)
1546* completion <2>: Usage Basics. (line 15)
1547* completion <3>: Usage Basics. (line 17)
1548* configure: Customization. (line 6)
1549* configure <1>: Customization Interface.
1550 (line 6)
1551* configure <2>: Configuration File. (line 6)
1552* configure <3>: Tooltip Frontends. (line 49)
1553* configure <4>: Tooltip Frontends. (line 227)
1554* configure <5>: Preview Frontends. (line 25)
1555* configure <6>: Echo Frontends. (line 38)
1556* configure <7>: Candidates Search. (line 30)
1557* configure <8>: Quick Access a Candidate.
1558 (line 28)
1559* configure <9>: Quick Access a Candidate.
1560 (line 37)
1561* custom: Customization. (line 6)
1562* custom <1>: Customization Interface.
1563 (line 6)
1564* custom <2>: Configuration File. (line 6)
1565* custom <3>: Tooltip Frontends. (line 49)
1566* custom <4>: Tooltip Frontends. (line 227)
1567* custom <5>: Preview Frontends. (line 25)
1568* custom <6>: Echo Frontends. (line 38)
1569* custom <7>: Candidates Search. (line 30)
1570* custom <8>: Quick Access a Candidate.
1571 (line 28)
1572* custom <9>: Quick Access a Candidate.
1573 (line 37)
1574* definition: Commands. (line 42)
1575* distribution: Installation. (line 6)
1576* doc: Commands. (line 34)
1577* duplicate: Candidates Post-Processing.
1578 (line 6)
1579* echo: Echo Frontends. (line 6)
1580* enable: Initial Setup. (line 8)
1581* error: Troubleshooting. (line 6)
1582* error <1>: Troubleshooting. (line 27)
1583* expansion: Template Expansion. (line 6)
1584* extensible: Structure. (line 6)
1585* face: Tooltip Frontends. (line 227)
1586* face <1>: Preview Frontends. (line 6)
1587* face <2>: Preview Frontends. (line 25)
1588* face <3>: Echo Frontends. (line 6)
1589* face <4>: Echo Frontends. (line 38)
1590* face <5>: Candidates Search. (line 6)
1591* face <6>: Candidates Search. (line 30)
1592* face <7>: Filter Candidates. (line 6)
1593* face <8>: Quick Access a Candidate.
1594 (line 37)
1595* filter: Filter Candidates. (line 6)
1596* finish: Usage Basics. (line 20)
1597* finish <1>: Commands. (line 30)
1598* font: Tooltip Frontends. (line 227)
1599* font <1>: Quick Access a Candidate.
1600 (line 37)
1601* frontend: Structure. (line 6)
1602* frontend <1>: Structure. (line 10)
1603* frontends: Frontends. (line 6)
1604* grouped backends: Grouped Backends. (line 6)
1605* icon: Tooltip Frontends. (line 153)
1606* install: Installation. (line 6)
1607* interface: Tooltip Frontends. (line 49)
1608* interface <1>: Tooltip Frontends. (line 227)
1609* interface <2>: Preview Frontends. (line 25)
1610* interface <3>: Echo Frontends. (line 38)
1611* interface <4>: Candidates Search. (line 30)
1612* interface <5>: Quick Access a Candidate.
1613 (line 37)
1614* intro: Initial Setup. (line 6)
1615* issue: Troubleshooting. (line 6)
1616* issue tracker: Troubleshooting. (line 27)
1617* kind: Tooltip Frontends. (line 153)
1618* location: Commands. (line 42)
1619* manual: Initial Setup. (line 8)
1620* manual <1>: Usage Basics. (line 10)
1621* margin: Tooltip Frontends. (line 142)
1622* margin <1>: Tooltip Frontends. (line 162)
1623* minor-mode: Initial Setup. (line 6)
1624* module: Structure. (line 6)
1625* module <1>: Structure. (line 10)
1626* navigate: Usage Basics. (line 12)
1627* next backend: Backends Usage Basics.
1628 (line 14)
1629* non-prefix matches: Terminology. (line 10)
1630* package: Installation. (line 6)
1631* package backends: Package Backends. (line 6)
1632* pluggable: Structure. (line 6)
1633* pop-up: Tooltip Frontends. (line 6)
1634* prefix matches: Terminology. (line 10)
1635* preview: Preview Frontends. (line 6)
1636* quick start: Initial Setup. (line 6)
1637* quick-access: Quick Access a Candidate.
1638 (line 6)
1639* quit: Usage Basics. (line 20)
1640* quit <1>: Commands. (line 30)
1641* search: Candidates Search. (line 6)
1642* select: Usage Basics. (line 12)
1643* select <1>: Commands. (line 11)
1644* select <2>: Commands. (line 16)
1645* snippet: Template Expansion. (line 6)
1646* sort: Candidates Post-Processing.
1647 (line 6)
1648* stop: Usage Basics. (line 20)
1649* stop <1>: Commands. (line 30)
1650* TAB: Structure. (line 26)
1651* Tab and Go: Structure. (line 26)
1652* template: Template Expansion. (line 6)
1653* third-party: Structure. (line 10)
1654* third-party <1>: Troubleshooting. (line 18)
1655* tooltip: Tooltip Frontends. (line 6)
1656* troubleshoot: Troubleshooting. (line 6)
1657* usage: Usage Basics. (line 6)
1658
1659
1660\1f
1661Tag Table:
1662Node: Top\7f571
1663Node: Overview\7f1998
1664Node: Terminology\7f2406
1665Ref: Terminology-Footnote-1\7f3393
1666Node: Structure\7f3599
1667Node: Getting Started\7f5095
1668Node: Installation\7f5373
1669Node: Initial Setup\7f5756
1670Node: Usage Basics\7f6602
1671Node: Commands\7f7365
1672Ref: Commands-Footnote-1\7f9800
1673Node: Customization\7f9967
1674Node: Customization Interface\7f10439
1675Node: Configuration File\7f10972
1676Node: Frontends\7f15638
1677Node: Tooltip Frontends\7f16607
1678Ref: Tooltip Frontends-Footnote-1\7f27374
1679Node: Preview Frontends\7f27611
1680Ref: Preview Frontends-Footnote-1\7f28867
1681Node: Echo Frontends\7f28994
1682Node: Candidates Search\7f30527
1683Node: Filter Candidates\7f31861
1684Node: Quick Access a Candidate\7f32641
1685Node: Backends\7f34259
1686Node: Backends Usage Basics\7f35357
1687Ref: Backends Usage Basics-Footnote-1\7f36572
1688Node: Grouped Backends\7f36656
1689Node: Package Backends\7f38285
1690Node: Code Completion\7f39214
1691Node: Text Completion\7f41583
1692Node: File Name Completion\7f46017
1693Node: Template Expansion\7f47565
1694Node: Candidates Post-Processing\7f48284
1695Node: Troubleshooting\7f49761
1696Node: Index\7f51434
1697Node: Key Index\7f51597
1698Node: Variable Index\7f53096
1699Node: Function Index\7f57219
1700Node: Concept Index\7f61700
1701\1f
1702End Tag Table
1703
1704\1f
1705Local Variables:
1706coding: utf-8
1707End: