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-backendsRET.
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-dabbrevn'est donc jamais utilisé par l'entreprise pour l'achèvement et vous n'obtenez jamais l' foobarsentenceachèvement. Donc, vous voudrez peut-être changer les backends de l' entreprise afin que cela company-dabbrevprécède company-elisp(ou company-capfdans 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 groupedbackends. Habituellement, les membres de company-backendssont 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ême prefixou le texte à compléter (veuillez consulter la documentation de company-backendspour une description détaillée).
Donc, si vous voulez fusionner les finitions de company-elisp(sur Emacsen récent company-capfest utilisé) et company-dabbrevfaites simplement cela
(add-to-list 'company-backends '(company-capf company-dabbrev))
De plus, vous pouvez fusionner différents backends à l'aide du :withmot clé
(add-to-list 'company-backends '(company-capf :with company-dabbrev))
Ceci est différent de l'exemple sans liste de backends :withcar la société n'utilisera que les backends avant :withpour déterminer le prefix(le texte à compléter). Cela implique que les candidats des backends après :withseront ignorés par la société, que les backends retournent prefixou non, si aucun des backends avant :withretour a prefix.
Vous voudrez peut-être définir cela localement dans le tampon emacs-lisp (je préfère le faire)