2014-08-09 19:25:06 -04:00
|
|
|
(use-package yasnippet :ensure t
|
2014-08-07 18:35:22 -04:00
|
|
|
:diminish (yas-minor-mode . " $")
|
|
|
|
:mode (("emacs.+/snippets/" . snippet-mode))
|
|
|
|
:pre-load (progn
|
|
|
|
;; Fix yasnippet keymaps so they only work in insert mode (why they
|
|
|
|
;; had to make this so complicated I don't know); must be defined
|
|
|
|
;; BEFORE we include yasnippet.
|
|
|
|
(defvar yas-minor-mode-map
|
|
|
|
(let ((map (make-sparse-keymap)))
|
|
|
|
(evil-define-key 'insert map [(tab)] 'yas-expand)
|
|
|
|
(evil-define-key 'insert map (kbd "TAB") 'yas-expand)
|
|
|
|
(evil-define-key 'insert map "\C-c&\C-s" 'yas-insert-snippet)
|
|
|
|
(evil-define-key 'insert map "\C-c&\C-n" 'yas-new-snippet)
|
|
|
|
(evil-define-key 'insert map "\C-c&\C-v" 'yas-visit-snippet-file)
|
|
|
|
map)))
|
|
|
|
:config
|
|
|
|
(progn
|
|
|
|
;; Only load personal snippets
|
|
|
|
(setq yas-snippet-dirs `(,my/snippets-dir))
|
|
|
|
|
|
|
|
(yas-reload-all))
|
|
|
|
:init
|
|
|
|
(progn
|
|
|
|
(add-hook 'prog-mode-hook 'yas-minor-mode)
|
2014-08-07 19:49:47 -04:00
|
|
|
(add-hook 'snippet-mode-hook 'yas-minor-mode)
|
2014-08-07 18:35:22 -04:00
|
|
|
(add-hook 'org-mode-hook 'yas-minor-mode)))
|
|
|
|
|
|
|
|
;;
|
|
|
|
(provide 'init-snippets)
|