Отримайте компанію, щоб показати пропозиції щодо імен Yasnippet


13

Я використовую пакети компанії режим і Yasnippet. Коли я набираю буфер, я отримую пропозиції від автозаповнення від компанії.

Для Yasnippet у мене є каталог, який містить фрагменти. У цьому каталозі я маю, наприклад, файл foo.yasnippet.

Коли я набираю fooбуфер і натискаю Tab, я отримую спливаюче меню для ясніппетів, яке я можу вибрати, який фрагмент ( fooабо foo-bar) я хочу вставити. Я хотів би інтегрувати ясніппет fooу завершення роботи компанії. Коли я набираю текст foo, я хотів би побачити фрагмент у спливаючому вікні завершення компанії.

Чи можливо це? Якщо так, то як я можу цього досягти? У Vim у вас це є з Neocomplete та VimSnippets. Коли я гуглився, я знайшов цей зв’язок із Еліспом, але не зміг обернутись головою, як його застосувати.

Будь-які пропозиції?


1
Цей елісп - це яснеппет "бекенд" для компанії (входить до складу компанії). Про це можна прочитати, набравшиC-h f company-yasnippet RET
няня

Відповіді:


29

У мене в конфігурації є такий фрагмент, і, здається, це саме те, що ви хочете:

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

В основному, він встановлює сервер yasnippet з усіма іншими активованими бекендами, тому ви отримуєте належне завершення для відповідного бекенда, а також ваших фрагментів.


1
Я не очікував на це жодної відповіді, тому Патріку, я дуже вдячний за це. Дякую за це!
ReneFroger
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.