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


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.