Refactor +file-templates--expand
This commit is contained in:
parent
fe44d71965
commit
0d19b9e61c
1 changed files with 22 additions and 25 deletions
|
@ -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 ()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue