让公司显示Yasnippet名称的建议


13

我使用公司模式和Yasnippet软件包。当我在缓冲区中键入内容时,我会从Company获得自动完成建议。

对于Yasnippet,我有一个包含摘要的目录。例如,在该目录中,我有file foo.yasnippet

当我foo在缓冲区中键入内容并Tab按时,会弹出yasnippet的弹出菜单,我可以选择要插入的摘录(foofoo-bar)。我想将yasnippet集成到foo公司完成中。输入时foo,我想在“公司完成”弹出窗口中查看摘要。

这可能吗?如果是这样,我怎么能做到这一点?在Vim中,您可以使用Neocomplete和VimSnippets实现。当我四处搜索时,我发现了与Elisp的链接,但是我无法确定如何应用它。

有什么建议么?


1
该elisp是公司(包括在公司中)的yasnippet“后端”。您可以通过键入以下内容阅读有关内容C-h f company-yasnippet RET
nanny

Answers:


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 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.