Poproś firmę, aby pokazała sugestie dotyczące nazw Yasnippet

13

Korzystam z pakietów Tryb firmowy i Yasnippet. Kiedy piszę w buforze, otrzymuję sugestie autouzupełniania od firmy.

W przypadku Yasnippet mam katalog zawierający fragmenty. W tym katalogu mam na przykład plik foo.yasnippet.

Kiedy piszę foow buforze i naciskam Tab, pojawia się wyskakujące menu dla yasnippets, które mogę wybrać, który fragment ( foolub foo-bar) chcę wstawić. Chciałbym zintegrować yasnippet fooz ukończeniem firmy. Kiedy piszę foo, chciałbym zobaczyć fragment w wyskakującym okienku Zakończenie firmy.

czy to możliwe? Jeśli tak, jak mogę to osiągnąć? W Vimie masz to dzięki Neocomplete i VimSnippets. Kiedy googlowałem, znalazłem ten link z Elisp, ale nie mogłem się otulić, jak go zastosować.

Jakieś sugestie?

ReneFroger
źródło
1
Ten elisp to yasnippetowy „backend” dla firmy (dołączony do firmy). Możesz o tym przeczytać piszącC-h f company-yasnippet RET
niania

Odpowiedzi:

29

Mam następujący fragment kodu w mojej konfiguracji i wygląda na to, że dokładnie tego chcesz:

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

Zasadniczo konfiguruje backend yasnippet z każdym innym aktywowanym backendem, dzięki czemu uzyskujesz odpowiednie uzupełnienie odpowiedniego backendu, a także fragmentów kodu.

Patrick
źródło
1
Nie spodziewałem się, że dostanę na to odpowiedź, więc Patrick, jestem naprawdę za to wdzięczny. Dziękuję za to!
ReneFroger,