Installer:
Version GUI GNU Emacs 25.0.50.1 (x86_64-w64-mingw32) du 2015-07-25 sur KAEL
, en utilisant la dernière version de MELPA
Windows 7 x64 bits.
Situation:
Par exemple, je tape dans le tampon foobarsentence.
Et puis commencez une nouvelle ligne en dessous, et en tapant fooba, je m'attendais à être foobarsentence
suggéré dans la fenêtre de complétion de la société. Mais il n'y en a pas foobarsentence
.
Je l' ai trouvé à partir d'une autre réponse que je pourrais utiliser pour cela, l' entreprise dabbrev`` liée, M-/. Mais je ne pouvais pas comprendre comment je pouvais «alimenter» les suggestions company-dabbrev
dans la fenêtre contextuelle. J'ai fait un gif screencast pour clarifier ma question.
Comme vous pouvez le voir, les M-/appels company-dabbrev
. Mais j'aimerais voir cela suggéré dans la fenêtre contextuelle d'achèvement de l'entreprise. Cela m'a surpris ce n'est pas par défaut.
Une suggestion afin de «nourrir» les suggestions de la company-dabbrev
fenêtre contextuelle de l'entreprise?
la source
Réponses:
Voici comment fonctionne l'achèvement en entreprise (je simplifie un peu une description plus détaillée peut être trouvée dans la documentation de
company-backends
C-hvcompany-backends
RET.Vous avez une liste de backends (moteurs de complétion) que la société doit essayer de fournir au moment voulu. La société essaie chacun de ces backends l'un après l'autre et le premier qui retourne les candidats est utilisé pour l'achèvement et les autres backends sont ignorés. Donc, par défaut, un seul backend est utilisé à la fois.
Dans votre cas (vous semblez en mode emacs-lisp), le backend emacs-lisp renvoie les candidats à l'achèvement et
company-dabbrev
n'est donc jamais utilisé par l'entreprise pour l'achèvement et vous n'obtenez jamais l'foobarsentence
achèvement. Donc, vous voudrez peut-être changer les backends de l' entreprise afin que celacompany-dabbrev
précèdecompany-elisp
(oucompany-capf
dans les emacsen récents). Mais je suppose que ce n'est pas ce que vous voulez, car cela inverserait la situation actuelle et vous n'obtiendrez pas les compléments du backend emacs-lisp (auquel cas lisez la suite).La société fournit un moyen de fusionner les complétions à partir de plusieurs sources en utilisant ce qu'elle appelle des
grouped
backends. Habituellement, les membres decompany-backends
sont des backends individuels, mais il peut également s'agir d'une liste de backends auquel cas l'achèvement des backends est fusionné à condition qu'ils retournent le mêmeprefix
ou le texte à compléter (veuillez consulter la documentation decompany-backends
pour une description détaillée).Donc, si vous voulez fusionner les finitions de
company-elisp
(sur Emacsen récentcompany-capf
est utilisé) etcompany-dabbrev
faites simplement celaDe plus, vous pouvez fusionner différents backends à l'aide du
:with
mot cléCeci est différent de l'exemple sans liste de backends
:with
car la société n'utilisera que les backends avant:with
pour déterminer leprefix
(le texte à compléter). Cela implique que les candidats des backends après:with
seront ignorés par la société, que les backends retournentprefix
ou non, si aucun des backends avant:with
retour aprefix
.Vous voudrez peut-être définir cela localement dans le tampon emacs-lisp (je préfère le faire)
la source
:with