]>
Commit | Line | Data |
---|---|---|
1 | This is company.info, produced by makeinfo version 6.7 from | |
2 | company.texi. | |
3 | ||
4 | This user manual is for Company version 0.9.14snapshot (16 April 2023). | |
5 | ||
6 | Copyright © 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. | |
12 | INFO-DIR-SECTION Emacs misc features | |
13 | START-INFO-DIR-ENTRY | |
14 | * Company: (company). A modular text completion framework. | |
15 | END-INFO-DIR-ENTRY | |
16 | ||
17 | \1f | |
18 | File: company.info, Node: Top, Next: Overview, Up: (dir) | |
19 | ||
20 | Company | |
21 | ******* | |
22 | ||
23 | Company is a modular text completion framework for GNU Emacs. | |
24 | ||
25 | The goal of this document is to lay out the foundational knowledge of | |
26 | the package, so that the readers of the manual could competently start | |
27 | adapting Company to their needs and preferences. | |
28 | ||
29 | This user manual is for Company version 0.9.14snapshot (16 April 2023). | |
30 | ||
31 | Copyright © 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 | ||
50 | Overview | |
51 | ||
52 | * Terminology:: | |
53 | * Structure:: | |
54 | ||
55 | Getting Started | |
56 | ||
57 | * Installation:: | |
58 | * Initial Setup:: | |
59 | * Usage Basics:: | |
60 | * Commands:: | |
61 | ||
62 | Customization | |
63 | ||
64 | * Customization Interface:: | |
65 | * Configuration File:: | |
66 | ||
67 | Frontends | |
68 | ||
69 | * Tooltip Frontends:: | |
70 | * Preview Frontends:: | |
71 | * Echo Frontends:: | |
72 | * Candidates Search:: | |
73 | * Filter Candidates:: | |
74 | * Quick Access a Candidate:: | |
75 | ||
76 | Backends | |
77 | ||
78 | * Backends Usage Basics:: | |
79 | * Grouped Backends:: | |
80 | * Package Backends:: | |
81 | * Candidates Post-Processing:: | |
82 | ||
83 | ||
84 | \1f | |
85 | File: company.info, Node: Overview, Next: Getting Started, Prev: Top, Up: Top | |
86 | ||
87 | 1 Overview | |
88 | ********** | |
89 | ||
90 | “Company” is a modular text completion framework for GNU Emacs. | |
91 | ||
92 | In other words, it is a package for retrieving, manipulating, and | |
93 | displaying text completion candidates. It aims to assist developers, | |
94 | writers, and scientists during code and text writing. | |
95 | ||
96 | * Menu: | |
97 | ||
98 | * Terminology:: | |
99 | * Structure:: | |
100 | ||
101 | \1f | |
102 | File: company.info, Node: Terminology, Next: Structure, Up: Overview | |
103 | ||
104 | 1.1 Terminology | |
105 | =============== | |
106 | ||
107 | “Completion” is an act of intelligibly guessing possible variants of | |
108 | words based on already typed characters. To “complete” a word means to | |
109 | insert a correctly guessed variant into the buffer. | |
110 | ||
111 | Consequently, the “candidates” are the aforementioned guessed variants | |
112 | of words. Each of the candidates has the potential to be chosen for | |
113 | successful completion. And each of the candidates contains the | |
114 | initially typed characters: either only at the beginning (so-called | |
115 | “prefix matches”), or also inside (“non-prefix matches”) of a candidate | |
116 | (1). | |
117 | ||
118 | The package’s name “Company” is based on the combination of the two | |
119 | words: ‘Complete’ and ‘Anything’. These words reflect the package’s | |
120 | commitment to handling completion candidates and its extensible nature | |
121 | allowing 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 | |
126 | with the Emacs’s user option ‘completion-styles’. For illustrations on | |
127 | how Company visualizes the matches, *note Frontends::. | |
128 | ||
129 | \1f | |
130 | File: company.info, Node: Structure, Prev: Terminology, Up: Overview | |
131 | ||
132 | 1.2 Structure | |
133 | ============= | |
134 | ||
135 | The Company is easily extensible because its significant building blocks | |
136 | are pluggable modules: backends (*note Backends::) and frontends (*note | |
137 | Frontends::). | |
138 | ||
139 | The “backends” are responsible for retrieving completion candidates; | |
140 | which are then outputted by the “frontends”. For an easy and quick | |
141 | initial setup, Company is supplied with the preconfigured sets of the | |
142 | backends and frontends. The default behavior of the modules can be | |
143 | adjusted per particular needs, goals, and preferences. It is also | |
144 | typical to utilize backends from a variety of third-party libraries | |
145 | (https://github.com/company-mode/company-mode/wiki/Third-Party-Packages), | |
146 | developed to be pluggable with Company. | |
147 | ||
148 | But Company consists not only of the backends and frontends. | |
149 | ||
150 | A core of the package plays the role of a controller, connecting the | |
151 | modules, making them work together; and exposing configurations and | |
152 | commands for a user to operate with. For more details, *note | |
153 | Customization:: and *note Commands::. | |
154 | ||
155 | Also, 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>. | |
158 | To enable this configuration, add the following line to the Emacs | |
159 | initialization file (*note (emacs)Init File::): | |
160 | ||
161 | (add-hook 'after-init-hook 'company-tng-mode) | |
162 | ||
163 | \1f | |
164 | File: company.info, Node: Getting Started, Next: Customization, Prev: Overview, Up: Top | |
165 | ||
166 | 2 Getting Started | |
167 | ***************** | |
168 | ||
169 | This 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 | |
179 | File: company.info, Node: Installation, Next: Initial Setup, Up: Getting Started | |
180 | ||
181 | 2.1 Installation | |
182 | ================ | |
183 | ||
184 | Company package is distributed via commonly used package archives in a | |
185 | form of both stable and development releases. To install Company, type | |
186 | ‘M-x package-install <RET> company <RET>’. | |
187 | ||
188 | For more details on Emacs package archives, *note (emacs)Packages::. | |
189 | ||
190 | \1f | |
191 | File: company.info, Node: Initial Setup, Next: Usage Basics, Prev: Installation, Up: Getting Started | |
192 | ||
193 | 2.2 Initial Setup | |
194 | ================= | |
195 | ||
196 | The package Company provides a minor mode “company-mode”. | |
197 | ||
198 | To activate the _company-mode_, execute the command ‘M-x company-mode’ | |
199 | that 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 | |
201 | indicator ‘company’. | |
202 | ||
203 | After _company-mode_ had been enabled, the package auto-starts | |
204 | suggesting completion candidates. The candidates are retrieved and | |
205 | shown according to the typed characters and the default (until a user | |
206 | specifies otherwise) configurations. | |
207 | ||
208 | To 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 | |
213 | File: company.info, Node: Usage Basics, Next: Commands, Prev: Initial Setup, Up: Getting Started | |
214 | ||
215 | 2.3 Usage Basics | |
216 | ================ | |
217 | ||
218 | By default — having _company-mode_ enabled (*note Initial Setup::) — a | |
219 | tooltip with completion candidates is shown when a user types in a few | |
220 | characters. | |
221 | ||
222 | To initiate completion manually, use the command ‘M-x company-complete’. | |
223 | ||
224 | To select next or previous of the shown completion candidates, use | |
225 | respectively 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 | |
235 | File: company.info, Node: Commands, Prev: Usage Basics, Up: Getting Started | |
236 | ||
237 | 2.4 Commands | |
238 | ============ | |
239 | ||
240 | Under the hood, mentioned in the previous section keys are bound to the | |
241 | commands 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 | ||
278 | The full list of the default key bindings is stored in the variables | |
279 | ‘company-active-map’ and ‘company-search-map’ (1). | |
280 | ||
281 | Moreover, Company is bundled with a number of convenience commands that | |
282 | do not have default key bindings defined. The following examples | |
283 | illustrate 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 | ||
300 | In the same manner, an additional key can be assigned to a command or a | |
301 | command 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, | |
310 | utilize ‘M-x describe-keymap <RET> company-active-map’ or | |
311 | ‘C-h f <RET> company-mode’. | |
312 | ||
313 | \1f | |
314 | File: company.info, Node: Customization, Next: Frontends, Prev: Getting Started, Up: Top | |
315 | ||
316 | 3 Customization | |
317 | *************** | |
318 | ||
319 | Emacs provides two equally acceptable ways for user preferences | |
320 | configuration: via customization interface (for more details, *note | |
321 | (emacs)Easy Customization::) and a configuration file (*note (emacs)Init | |
322 | File::). Naturally, Company can be configured by both of these | |
323 | approaches. | |
324 | ||
325 | * Menu: | |
326 | ||
327 | * Customization Interface:: | |
328 | * Configuration File:: | |
329 | ||
330 | \1f | |
331 | File: company.info, Node: Customization Interface, Next: Configuration File, Up: Customization | |
332 | ||
333 | 3.1 Customization Interface | |
334 | =========================== | |
335 | ||
336 | In order to employ the customization interface, run | |
337 | ‘M-x customize-group <RET> company’. | |
338 | ||
339 | This interface outputs all the options available for user customization, | |
340 | so you may find it beneficial to review this list even if you are going | |
341 | to configure Company with the configuration file. | |
342 | ||
343 | For instructions on how to change the settings, *note (emacs)Changing a | |
344 | Variable::. | |
345 | ||
346 | \1f | |
347 | File: company.info, Node: Configuration File, Prev: Customization Interface, Up: Customization | |
348 | ||
349 | 3.2 Configuration File | |
350 | ====================== | |
351 | ||
352 | Company is a customization-rich package. This section lists some of the | |
353 | core 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 | ||
429 | Hooks | |
430 | ----- | |
431 | ||
432 | Company 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 | |
443 | File: company.info, Node: Frontends, Next: Backends, Prev: Customization, Up: Top | |
444 | ||
445 | 4 Frontends | |
446 | *********** | |
447 | ||
448 | Company is packaged with several frontends and provides a predefined set | |
449 | of enabled frontends. A list of the enabled frontends can be changed by | |
450 | configuring the user option ‘company-frontends’. | |
451 | ||
452 | Each frontend is simply a function that receives a command and acts | |
453 | accordingly to it: outputs candidates, hides its output, refreshes | |
454 | displayed data, and so on. | |
455 | ||
456 | All of the Company frontends can be categorized by the type of the | |
457 | output into the three groups: “tooltip-”, “preview-”, and “echo-” | |
458 | frontends. We overview these groups in the first sections of this | |
459 | chapter. The sections that follow are dedicated to the ways the | |
460 | displayed 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 | |
472 | File: company.info, Node: Tooltip Frontends, Next: Preview Frontends, Up: Frontends | |
473 | ||
474 | 4.1 Tooltip Frontends | |
475 | ===================== | |
476 | ||
477 | This group of frontends displays completion candidates in an overlayed | |
478 | tooltip (aka pop-up). Company provides three _tooltip frontends_, | |
479 | listed 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 | ||
516 | User Options | |
517 | ------------ | |
518 | ||
519 | To change the _tooltip frontends_ configuration, adjust the following | |
520 | user 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 | ||
620 | Candidates Icons | |
621 | ---------------- | |
622 | ||
623 | An “icon” is an image or a text that represents a candidate’s kind; it | |
624 | is displayed in front of a candidate. The term “kind” here stands for a | |
625 | high-level category a candidate fits into. (Such as ‘array’, | |
626 | ‘function’, ‘file’, ‘string’, ‘color’, etc. For an extended list of the | |
627 | possible _kinds_, see the user option ‘company-text-icons-mapping’ or | |
628 | the 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 | ||
661 | The 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 | ||
691 | Faces | |
692 | ----- | |
693 | ||
694 | Out-of-the-box Company defines and configures distinguished faces (*note | |
695 | (emacs)Faces::) for light and dark themes. Moreover, some of the | |
696 | built-in and third-party themes fine-tune Company to fit their palettes. | |
697 | That is why there’s often no real need to make such adjustments on a | |
698 | user side. However, this chapter presents some hints on where to start | |
699 | customizing Company interface. | |
700 | ||
701 | Namely, the look of a tooltip is controlled by the ‘company-tooltip*’ | |
702 | named faces. | |
703 | ||
704 | The following example hints how a user may approach tooltip faces | |
705 | customization: | |
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 | |
722 | to be used. The supported images types can be checked with ‘C-h v | |
723 | image-types’. Before compiling Emacs, make sure ‘librsvg’ is installed | |
724 | on your system. | |
725 | ||
726 | \1f | |
727 | File: company.info, Node: Preview Frontends, Next: Echo Frontends, Prev: Tooltip Frontends, Up: Frontends | |
728 | ||
729 | 4.2 Preview Frontends | |
730 | ===================== | |
731 | ||
732 | Frontends in this group output a completion candidate or a common part | |
733 | of the candidates temporarily inline, as if a word had already been | |
734 | completed (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 | ||
751 | The 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 | |
763 | Terminology::) may be shown in full after point. | |
764 | ||
765 | \1f | |
766 | File: company.info, Node: Echo Frontends, Next: Candidates Search, Prev: Preview Frontends, Up: Frontends | |
767 | ||
768 | 4.3 Echo Frontends | |
769 | ================== | |
770 | ||
771 | The frontends listed in this section display information in the Emacs’s | |
772 | echo 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 | ||
782 | The last pair of the built-in frontends isn’t that commonly used and not | |
783 | as full-featured as the previously reviewed _tooltip-_ and _preview-_ | |
784 | frontends, 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 | ||
803 | To apply visual changes to the output of these frontends, configure the | |
804 | faces ‘company-echo’ and ‘company-echo-common’. | |
805 | ||
806 | \1f | |
807 | File: company.info, Node: Candidates Search, Next: Filter Candidates, Prev: Echo Frontends, Up: Frontends | |
808 | ||
809 | 4.4 Candidates Search | |
810 | ===================== | |
811 | ||
812 | By default, when _company-mode_ is in action, a key binding ‘C-s’ starts | |
813 | looking for matches to additionally typed characters among the displayed | |
814 | candidates. When a search is initiated, an indicator | |
815 | ‘Search: CHARACTERS’ is shown in the Emacs’s mode line. | |
816 | ||
817 | To 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 | ||
836 | Search 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 | |
842 | File: company.info, Node: Filter Candidates, Next: Quick Access a Candidate, Prev: Candidates Search, Up: Frontends | |
843 | ||
844 | 4.5 Filter Candidates | |
845 | ===================== | |
846 | ||
847 | Candidates filtering is started by typing the default key binding | |
848 | ‘C-M-s’. Filtering acts on a par with the search (*note Candidates | |
849 | Search::), indicating its activation by the text ‘Filter: CHARACTERS’ in | |
850 | the mode line and influencing the displayed candidates. The difference | |
851 | is that the filtering, as its name suggests, keeps displaying only the | |
852 | matching candidates (in addition to distinguishing the matches with a | |
853 | face). | |
854 | ||
855 | To quit the filtering, hit ‘C-g’. To toggle between search and filter | |
856 | states, use key binding ‘C-o’. | |
857 | ||
858 | \0\b[image src="./images/small/tooltip-filter.png"\0\b] | |
859 | ||
860 | \1f | |
861 | File: company.info, Node: Quick Access a Candidate, Prev: Filter Candidates, Up: Frontends | |
862 | ||
863 | 4.6 Quick Access a Candidate | |
864 | ============================ | |
865 | ||
866 | Company provides a way to choose a candidate for completion without | |
867 | having to navigate to that candidate: by hitting one of the quick-access | |
868 | keys. By default, quick-access key bindings utilize a modifier <META> | |
869 | and one of the digits, such that pressing ‘M-1’ completes with the first | |
870 | candidate on the list and ‘M-0’ with the tenth candidate. | |
871 | ||
872 | If ‘company-show-quick-access’ is enabled, _tooltip-_ and _echo-_ | |
873 | frontends 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 | ||
885 | To 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 | ||
892 | A modifier should be one of ‘meta’, ‘super’, ‘hyper’, ‘ control’. | |
893 | ||
894 | The following example applies a bit of customization and demonstrates | |
895 | how 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 | |
907 | File: company.info, Node: Backends, Next: Troubleshooting, Prev: Frontends, Up: Top | |
908 | ||
909 | 5 Backends | |
910 | ********** | |
911 | ||
912 | We can metaphorically say that each backend is like an engine. (The | |
913 | reality is even better since backends are just functions.) Fueling such | |
914 | an engine with a command causes the production of material for Company | |
915 | to move further on. Typically, moving on means outputting that material | |
916 | to a user via one or several configured frontends, *note Frontends::. | |
917 | ||
918 | Just like Company provides a preconfigured list of the enabled | |
919 | frontends, it also defines a list of the backends to rely on by default. | |
920 | This list is stored in the user option ‘company-backends’. The | |
921 | docstring of this variable has been a source of valuable information for | |
922 | years. That’s why we’re going to stick to a tradition and suggest | |
923 | reading the output of ‘C-h v company-backends’ for insightful details | |
924 | about backends. Nevertheless, the fundamental concepts are described in | |
925 | this user manual too. | |
926 | ||
927 | * Menu: | |
928 | ||
929 | * Backends Usage Basics:: | |
930 | * Grouped Backends:: | |
931 | * Package Backends:: | |
932 | * Candidates Post-Processing:: | |
933 | ||
934 | \1f | |
935 | File: company.info, Node: Backends Usage Basics, Next: Grouped Backends, Up: Backends | |
936 | ||
937 | 5.1 Backends Usage Basics | |
938 | ========================= | |
939 | ||
940 | One of the significant concepts to understand about Company is that the | |
941 | package relies on one backend at a time (1). The backends are invoked | |
942 | one by one, in the sequential order of the items on the | |
943 | ‘company-backends’ list. | |
944 | ||
945 | The name of the currently active backend is shown in the mode line and | |
946 | in the output of the command ‘M-x company-diag’. | |
947 | ||
948 | In most cases (mainly to exclude false-positive results), the next | |
949 | backend is not invoked automatically. For the purpose of invoking the | |
950 | next backend, use the command ‘company-other-backend’: either by calling | |
951 | it with ‘M-x’ or by binding the command to the keys of your choice, such | |
952 | as: | |
953 | ||
954 | (global-set-key (kbd "C-c C-/") #'company-other-backend) | |
955 | ||
956 | It 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 | |
958 | instance: ‘M-x company-capf’. As usual for Emacs, such backends calls | |
959 | can 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 | |
966 | Backends::. | |
967 | ||
968 | \1f | |
969 | File: company.info, Node: Grouped Backends, Next: Package Backends, Prev: Backends Usage Basics, Up: Backends | |
970 | ||
971 | 5.2 Grouped Backends | |
972 | ==================== | |
973 | ||
974 | In many cases, it can be desirable to receive candidates from several | |
975 | backends simultaneously. This can be achieved by configuring “grouped | |
976 | backends”: a sub-list of backends in the ‘company-backends’ list, that | |
977 | is handled specifically by Company. | |
978 | ||
979 | The most important part of this handling is the merge of the completion | |
980 | candidates from the grouped backends. (But only from the backends that | |
981 | return the same _prefix_ value, see ‘C-h v company-backends’ for more | |
982 | details.) | |
983 | ||
984 | To keep the candidates organized in accordance with the grouped backends | |
985 | order, add the keyword ‘:separate’ to the list of the grouped backends. | |
986 | The 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 | ||
995 | Another keyword ‘:with’ helps to make sure the results from major/minor | |
996 | mode agnostic backends (such as _company-yasnippet_, | |
997 | _company-dabbrev-code_) are returned without preventing results from | |
998 | context-aware backends (such as _company-capf_ or _company-clang_). For | |
999 | this feature to work, put backends dependent on a mode at the beginning | |
1000 | of the grouped backends list, then put a keyword ‘:with’, and only then | |
1001 | put context agnostic backend(s), as shown in the following concise | |
1002 | example: | |
1003 | ||
1004 | (setq company-backends '((company-capf :with company-yasnippet))) | |
1005 | ||
1006 | \1f | |
1007 | File: company.info, Node: Package Backends, Next: Candidates Post-Processing, Prev: Grouped Backends, Up: Backends | |
1008 | ||
1009 | 5.3 Package Backends | |
1010 | ==================== | |
1011 | ||
1012 | The following sections give a short overview of the commonly used | |
1013 | backends bundled with Company. Each section is devoted to one of the | |
1014 | roughly outlined groups of the backends. | |
1015 | ||
1016 | Some of the backends expose user options for customization; a few of | |
1017 | these options are introduced below. For those who would like to fetch | |
1018 | the full list of a backend’s user options, we suggest doing one of the | |
1019 | following: | |
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 | |
1037 | File: company.info, Node: Code Completion, Next: Text Completion, Up: Package Backends | |
1038 | ||
1039 | 5.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 | |
1092 | File: company.info, Node: Text Completion, Next: File Name Completion, Prev: Code Completion, Up: Package Backends | |
1093 | ||
1094 | 5.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 | |
1180 | File: company.info, Node: File Name Completion, Next: Template Expansion, Prev: Text Completion, Up: Package Backends | |
1181 | ||
1182 | 5.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 | |
1213 | File: company.info, Node: Template Expansion, Prev: File Name Completion, Up: Package Backends | |
1214 | ||
1215 | 5.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 | |
1233 | File: company.info, Node: Candidates Post-Processing, Prev: Package Backends, Up: Backends | |
1234 | ||
1235 | 5.4 Candidates Post-Processing | |
1236 | ============================== | |
1237 | ||
1238 | A list of completion candidates, supplied by a backend, can be | |
1239 | additionally manipulated (reorganized, reduced, sorted, etc) before its | |
1240 | output. This is done by adding a processing function name to the user | |
1241 | option ‘company-transformers’ list, for example: | |
1242 | ||
1243 | (setq company-transformers '(delete-consecutive-dups | |
1244 | company-sort-by-occurrence)) | |
1245 | ||
1246 | Company is bundled with several such transformer functions. They are | |
1247 | listed 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 | |
1270 | File: company.info, Node: Troubleshooting, Next: Index, Prev: Backends, Up: Top | |
1271 | ||
1272 | 6 Troubleshooting | |
1273 | ***************** | |
1274 | ||
1275 | If something goes wrong, the first thing we recommend doing is to | |
1276 | execute command ‘M-x company-diag’ and thoroughly study its output. | |
1277 | ||
1278 | This command outputs important details about the internal workings of | |
1279 | Company at the moment of the ‘company-diag’ command execution, including | |
1280 | a responsible backend and a list of completion candidates provided by | |
1281 | it. | |
1282 | ||
1283 | Based 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 | ||
1294 | If the aforementioned steps didn’t help to find the cause of the issue, | |
1295 | then file a bug report to | |
1296 | the Company Issue Tracker (https://github.com/company-mode/company-mode/issues), | |
1297 | attaching 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 | |
1311 | File: company.info, Node: Index, Prev: Troubleshooting, Up: Top | |
1312 | ||
1313 | Index | |
1314 | ***** | |
1315 | ||
1316 | * Menu: | |
1317 | ||
1318 | * Key Index:: | |
1319 | * Variable Index:: | |
1320 | * Function Index:: | |
1321 | * Concept Index:: | |
1322 | ||
1323 | \1f | |
1324 | File: company.info, Node: Key Index, Next: Variable Index, Up: Index | |
1325 | ||
1326 | Key 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 | |
1353 | File: company.info, Node: Variable Index, Next: Function Index, Prev: Key Index, Up: Index | |
1354 | ||
1355 | Variable 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 | |
1418 | File: company.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Index | |
1419 | ||
1420 | Function 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 | |
1488 | File: company.info, Node: Concept Index, Prev: Function Index, Up: Index | |
1489 | ||
1490 | Concept 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 | |
1661 | Tag Table: | |
1662 | Node: Top\7f571 | |
1663 | Node: Overview\7f1998 | |
1664 | Node: Terminology\7f2406 | |
1665 | Ref: Terminology-Footnote-1\7f3393 | |
1666 | Node: Structure\7f3599 | |
1667 | Node: Getting Started\7f5095 | |
1668 | Node: Installation\7f5373 | |
1669 | Node: Initial Setup\7f5756 | |
1670 | Node: Usage Basics\7f6602 | |
1671 | Node: Commands\7f7365 | |
1672 | Ref: Commands-Footnote-1\7f9800 | |
1673 | Node: Customization\7f9967 | |
1674 | Node: Customization Interface\7f10439 | |
1675 | Node: Configuration File\7f10972 | |
1676 | Node: Frontends\7f15638 | |
1677 | Node: Tooltip Frontends\7f16607 | |
1678 | Ref: Tooltip Frontends-Footnote-1\7f27374 | |
1679 | Node: Preview Frontends\7f27611 | |
1680 | Ref: Preview Frontends-Footnote-1\7f28867 | |
1681 | Node: Echo Frontends\7f28994 | |
1682 | Node: Candidates Search\7f30527 | |
1683 | Node: Filter Candidates\7f31861 | |
1684 | Node: Quick Access a Candidate\7f32641 | |
1685 | Node: Backends\7f34259 | |
1686 | Node: Backends Usage Basics\7f35357 | |
1687 | Ref: Backends Usage Basics-Footnote-1\7f36572 | |
1688 | Node: Grouped Backends\7f36656 | |
1689 | Node: Package Backends\7f38285 | |
1690 | Node: Code Completion\7f39214 | |
1691 | Node: Text Completion\7f41583 | |
1692 | Node: File Name Completion\7f46017 | |
1693 | Node: Template Expansion\7f47565 | |
1694 | Node: Candidates Post-Processing\7f48284 | |
1695 | Node: Troubleshooting\7f49761 | |
1696 | Node: Index\7f51434 | |
1697 | Node: Key Index\7f51597 | |
1698 | Node: Variable Index\7f53096 | |
1699 | Node: Function Index\7f57219 | |
1700 | Node: Concept Index\7f61700 | |
1701 | \1f | |
1702 | End Tag Table | |
1703 | ||
1704 | \1f | |
1705 | Local Variables: | |
1706 | coding: utf-8 | |
1707 | End: |