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