Dapatkan Perusahaan untuk menampilkan saran untuk nama Yasnippet

13

Saya menggunakan mode paket Perusahaan dan Yasnippet. Ketika saya mengetik buffer, saya mendapatkan saran pelengkapan otomatis dari Perusahaan.

Untuk Yasnippet, saya memiliki direktori yang berisi cuplikan. Dalam direktori itu saya punya misalnya file foo.yasnippet.

Ketika saya mengetikkan foobuffer, dan tekan Tab, saya mendapatkan menu popup untuk yasnippet, yang saya pilih snipet mana ( fooatau foo-bar) yang ingin saya masukkan. Saya ingin mengintegrasikan yasnippet foodalam penyelesaian Perusahaan. Ketika saya mengetik foo, maka saya ingin melihat potongan di popup penyelesaian Perusahaan.

Apakah ini mungkin? Jika demikian, bagaimana saya bisa mencapai ini? Di Vim Anda memilikinya dengan Neocomplete dan VimSnippets. Ketika saya mencari di Google, saya menemukan tautan ini dengan Elisp tetapi saya tidak dapat membungkus kepala saya bagaimana menerapkannya.

Ada saran?

ReneFroger
sumber
1
Elisp itu adalah "backend" yasnippet untuk perusahaan (termasuk dengan perusahaan). Anda dapat membacanya dengan mengetikC-h f company-yasnippet RET
pengasuh

Jawaban:

29

Saya memiliki cuplikan berikut dalam konfigurasi saya dan sepertinya itulah yang Anda inginkan:

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

Pada dasarnya itu mengatur backend yasnippet dengan backend lainnya yang telah Anda aktifkan, sehingga Anda mendapatkan penyelesaian yang tepat untuk backend yang sesuai serta snippet Anda.

Patrick
sumber
1
Saya tidak berharap mendapat jawaban tentang ini, jadi Patrick, saya sangat berterima kasih untuk ini. Terima kasih untuk itu!
ReneFroger