Refactor +file-templates--expand

This commit is contained in:
Henrik Lissner 2018-06-22 01:06:37 +02:00
parent fe44d71965
commit 0d19b9e61c
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -55,33 +55,30 @@ these properties:
;;
;;;###autoload
(defun +file-templates--expand (pred &rest plist)
(cl-defun +file-templates--expand (pred &key project mode trigger ignore)
"Auto insert a yasnippet snippet into current file and enter insert mode (if
evil is loaded and enabled)."
(when (and pred (not (plist-get plist :ignore)))
(let ((project (plist-get plist :project))
(mode (plist-get plist :mode))
(trigger (plist-get plist :trigger)))
(when (if project (doom-project-p) t)
(unless mode
(setq mode (if (symbolp pred) pred major-mode)))
(unless mode
(user-error "Couldn't determine mode for %s file template" pred))
(unless trigger
(setq trigger +file-templates-default-trigger))
(require 'yasnippet)
(unless yas-minor-mode
(yas-minor-mode-on))
(when (and yas-minor-mode
(yas-expand-snippet
(yas--template-content
(cl-find trigger (yas--all-templates (yas--get-snippet-tables mode))
:key #'yas--template-key :test #'equal)))
(and (featurep 'evil) evil-mode)
(and yas--active-field-overlay
(overlay-buffer yas--active-field-overlay)
(overlay-get yas--active-field-overlay 'yas--field)))
(evil-initialize-state 'insert))))))
(when (and pred (not ignore))
(when (if project (doom-project-p) t)
(unless mode
(setq mode (if (symbolp pred) pred major-mode)))
(unless mode
(user-error "Couldn't determine mode for %s file template" pred))
(unless trigger
(setq trigger +file-templates-default-trigger))
(require 'yasnippet)
(unless yas-minor-mode
(yas-minor-mode-on))
(when (and yas-minor-mode
(yas-expand-snippet
(yas--template-content
(cl-find trigger (yas--all-templates (yas--get-snippet-tables mode))
:key #'yas--template-key :test #'equal)))
(and (featurep 'evil) evil-mode)
(and yas--active-field-overlay
(overlay-buffer yas--active-field-overlay)
(overlay-get yas--active-field-overlay 'yas--field)))
(evil-initialize-state 'insert)))))
;;;###autoload
(defun +file-templates-get-short-path ()