Así es como funciona la finalización en la empresa (estoy simplificando un poco una descripción más detallada se puede encontrar en la documentación de company-backends
C-hvcompany-backends
RET.
Usted tiene una lista de backends (motores de finalización) que la empresa debería intentar proporcionarle en el momento. La compañía intenta cada uno de estos backend uno tras otro y el primero que devuelve cualquier candidato se usa para completar y el resto de los backends se ignoran. Entonces, de manera predeterminada, solo se usa un back-end a la vez.
En su caso (parece que está en modo emacs-lisp), el backend de emacs-lisp está devolviendo candidatos para su finalización y, por company-dabbrev
lo tanto, nunca es utilizado por la empresa para la finalización y nunca se foobarsentence
completa. Por lo tanto, es posible que desee cambiar los backends de la compañía para que eso ocurra company-dabbrev
antes company-elisp
(o company-capf
en emacsen reciente). Pero supongo que eso no es lo que desea, ya que revertiría la situación actual y no obtendrá terminaciones del backend de emacs-lisp (en cuyo caso siga leyendo).
La compañía proporciona una forma de combinar terminaciones de múltiples fuentes usando lo que llama grouped
backends. Por lo general, los miembros company-backends
son backends individuales, pero también puede ser una lista de backends, en cuyo caso la finalización de los backends se fusiona siempre que se devuelva prefix
o el texto que se completará (consulte la documentación company-backends
para obtener una descripción detallada).
Entonces, si desea fusionar las terminaciones de company-elisp
(en emacsen reciente company-capf
se usa) y company-dabbrev
simplemente haga esto
(add-to-list 'company-backends '(company-capf company-dabbrev))
Además, puede combinar diferentes backends con la :with
palabra clave
(add-to-list 'company-backends '(company-capf :with company-dabbrev))
Esto es diferente del ejemplo sin una lista de backends :with
ya que la compañía usará solo los backends antes :with
para determinar el prefix
(el texto que se completará). Esto implica que los candidatos de backends posteriores :with
serán ignorados por la compañía, independientemente de si los backends devuelven a prefix
o no, si ninguno de los backends antes :with
devuelve a prefix
.
Es posible que desee configurar esto localmente en el búfer emacs-lisp (prefiero hacerlo)