회사에서 야스 니펫 이름에 대한 제안을 보여주십시오


13

회사 모드 및 Yasnippet 패키지를 사용합니다. 버퍼에 입력하면 회사에서 자동 완성 제안을받습니다.

Yasnippet의 경우 스 니펫이 포함 된 디렉토리가 있습니다. 그 디렉토리에는 파일이 foo.yasnippet있습니다.

foo버퍼에 입력 Tab하고을 누르면 yasnippets에 대한 팝업 메뉴가 나타납니다 . 삽입 할 스 니펫 ( foo또는 foo-bar)을 선택할 수 있습니다. foo회사 완성에 yasnippet을 통합하고 싶습니다 . 를 입력하면 foo회사 완료 팝업의 스 니펫이 표시됩니다.

이게 가능해? 그렇다면 어떻게 이것을 달성 할 수 있습니까? Vim에는 Neocomplete 및 VimSnippets가 있습니다. 내가봤을 때 Elisp 와이 링크를 찾았 지만 적용 방법에 대해 머리를 감쌀 수 없었습니다.

어떤 제안?


1
그 elisp는 회사 (회사에 포함되어 있음)를위한 욕설 "백엔드"입니다. C-h f company-yasnippet RET
nanny

답변:


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
나는 이것에 대한 어떤 대답도 기대하지 않았기 때문에 Patrick, 나는 이것에 정말로 감사합니다. 고마워요!
ReneFroger
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.