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
|
;;;###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 ()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue