Nhận Công ty để hiển thị đề xuất cho tên Yasnippet


13

Tôi sử dụng gói Chế độ công ty và Yasnippet. Khi tôi gõ vào bộ đệm, tôi nhận được đề xuất tự động hoàn thành từ Công ty.

Đối với Yasnippet, tôi có một thư mục chứa các đoạn mã. Trong thư mục đó tôi có ví dụ, tập tin foo.yasnippet.

Khi tôi gõ foovào bộ đệm và nhấn Tab, tôi nhận được một menu bật lên cho yasnippets, mà tôi chọn chọn đoạn mã ( foohoặc foo-bar) mà tôi muốn chèn. Tôi muốn tích hợp yasnippet fookhi hoàn thành Công ty. Khi tôi nhập foo, sau đó tôi muốn xem đoạn trích trong cửa sổ bật lên hoàn thành Công ty.

Điều này có thể không? Nếu vậy, làm thế nào tôi có thể đạt được điều này? Trong Vim bạn có điều đó với Neocomplete và VimSnippets. Khi tôi đi vòng quanh, tôi thấy liên kết này với Elisp nhưng tôi không thể nào biết cách áp dụng nó.

Bất kỳ đề xuất?


1
Elisp đó là một "phụ trợ" yasnippet cho công ty (bao gồm công ty). Bạn có thể đọc về nó bằng cách gõC-h f company-yasnippet RET
mẫu

Câu trả lời:


29

Tôi có đoạn mã sau trong cấu hình của mình và có vẻ như đó chính xác là những gì bạn muốn:

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

Về cơ bản, nó thiết lập phần phụ trợ yasnippet với mọi phần phụ trợ khác mà bạn đã kích hoạt, do đó bạn có được sự hoàn thành thích hợp cho phần phụ trợ tương ứng cũng như đoạn trích của bạn.


1
Tôi đã không mong đợi nhận được bất kỳ câu trả lời về điều này, vì vậy Patrick, tôi thực sự biết ơn về điều này. Cảm ơn vì điều đó!
ReneFroger
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.