Lassen Sie sich von der Firma Vorschläge für Yasnippet-Namen anzeigen

13

Ich benutze die Pakete Firmenmodus und Yasnippet. Beim Eingeben eines Puffers erhalte ich Vorschläge zur automatischen Vervollständigung von Company.

Für Yasnippet habe ich ein Verzeichnis, das die Schnipsel enthält. In diesem Verzeichnis habe ich zum Beispiel die Datei foo.yasnippet.

Wenn ich fooin den Puffer Tabtippe und drücke , erhalte ich ein Popup-Menü für yasnippets, aus dem ich auswählen kann, welches Snippet ( foooder welche Snippets foo-bar) ich einfügen möchte. Ich möchte das yasnippet fooin die Unternehmensabwicklung integrieren . Wenn ich tippe foo, möchte ich das Snippet im Popup "Unternehmensabschluss" sehen.

Ist das möglich? Wenn ja, wie könnte ich das erreichen? In Vim haben Sie das mit Neocomplete und VimSnippets. Als ich herumgegoogelt habe, habe ich diese Verbindung mit Elisp gefunden, aber ich konnte mich nicht darum kümmern , wie ich sie anwenden soll.

Irgendwelche Vorschläge?

ReneFroger
quelle
1
Dieses Elisp ist ein Yasnippet-Backend für Unternehmen (im Lieferumfang von Unternehmen enthalten). Sie können es lesen, indem SieC-h f company-yasnippet RET
Kindermädchen

Antworten:

29

Ich habe das folgende Snippet in meiner Konfiguration und es scheint genau das zu sein, was Sie wollen:

;; 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))

Grundsätzlich wird das yasnippet-Backend mit jedem anderen von Ihnen aktivierten Backend eingerichtet, sodass Sie die richtige Vervollständigung für das entsprechende Backend sowie Ihre Snippets erhalten.

Patrick
quelle
1
Ich hatte keine Antwort darauf erwartet, also bin ich Patrick wirklich dankbar dafür. Dank dafür!
ReneFroger