Pregunta:
Utilizo los paquetes Modo Empresa y Yasnippet. Cuando escribo en un búfer, recibo sugerencias de autocompletado de la empresa.
Para Yasnippet, tengo un directorio que contiene los fragmentos. En ese directorio tengo, por ejemplo, el archivo foo.yasnippet
.
Cuando estoy escribiendo foo
en el buffer y presione Tab, aparece un menú emergente para yasnippets, que Chan elegir qué fragmento de código ( foo
o foo-bar
) Quiero insertar. Me gustaría integrar el yasnippet foo
en la finalización de la empresa. Cuando foo
, me gustaría ver el fragmento en la ventana emergente de finalización de la empresa.
es posible? Si es así, ¿cómo podría lograrlo? En Vim tienes eso con Neocomplete y VimSnippets. Cuando busqué en Google, encontré este enlace con Elisp pero no pude entender cómo aplicarlo.
¿Alguna sugerencia?
Respuesta:
Tengo el siguiente fragmento en mi configuración y parece que es exactamente lo que quieres:
;; Add yasnippet support for all company backends
;; https://github.com/syl20bnr/spacemacs/pull/179
(defvar company-mode/enable-yas t
"Enable yasnippet for all backends.")
(defun company-mode/backend-with-yas (backend)
(if (or (not company-mode/enable-yas) (and (listp backend) (member 'company-yasnippet backend)))
backend
(append (if (consp backend) backend (list backend))
'(:with company-yasnippet))))
(setq company-backends (mapcar #'company-mode/backend-with-yas company-backends))
Básicamente, configura el backend de yasnippet con todos los demás backend que haya activado, por lo que obtiene la finalización adecuada para el backend correspondiente, así como sus fragmentos.