Preparar:
Versión GUI GNU Emacs 25.0.50.1 (x86_64-w64-mingw32) de 2015-07-25 en KAEL
, utilizando la última versión de MELPA
Windows 7 x64 bit.
Situación:
Por ejemplo, estoy escribiendo en el buffer foobarsentence.
Y luego comience una nueva línea debajo de eso, y escribiendo fooba, esperaba que me foobarsentencesugirieran desde la ventana emergente de finalización de la Compañía. Pero allí no está foobarsentence.
Lo encontré hacia fuera de otra respuesta que podría utilizar sociedad-dabbrev`` para que, unidos, M-/. Pero no pude entender cómo podría 'alimentar' las sugerencias desde company-dabbrevla ventana emergente. Hice un gif de screencast para aclarar mi pregunta.
Como puedes ver, M-/llamadas company-dabbrev. Pero me gustaría ver eso sugerido en la ventana emergente de finalización de la empresa. Me sorprendió que esto no sea por defecto.
¿Alguna sugerencia para 'alimentar' las sugerencias desde la company-dabbrevventana emergente de la empresa?
fuente


Respuestas:
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-backendsC-hvcompany-backendsRET.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-dabbrevlo tanto, nunca es utilizado por la empresa para la finalización y nunca sefoobarsentencecompleta. Por lo tanto, es posible que desee cambiar los backends de la compañía para que eso ocurracompany-dabbrevantescompany-elisp(ocompany-capfen 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
groupedbackends. Por lo general, los miembroscompany-backendsson 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 devuelvaprefixo el texto que se completará (consulte la documentacióncompany-backendspara obtener una descripción detallada).Entonces, si desea fusionar las terminaciones de
company-elisp(en emacsen recientecompany-capfse usa) ycompany-dabbrevsimplemente haga estoAdemás, puede combinar diferentes backends con la
:withpalabra claveEsto es diferente del ejemplo sin una lista de backends
:withya que la compañía usará solo los backends antes:withpara determinar elprefix(el texto que se completará). Esto implica que los candidatos de backends posteriores:withserán ignorados por la compañía, independientemente de si los backends devuelven aprefixo no, si ninguno de los backends antes:withdevuelve aprefix.Es posible que desee configurar esto localmente en el búfer emacs-lisp (prefiero hacerlo)
fuente
:with