:feature was a "catch-all" category. Many of its modules fit better in other categories, so they've been moved: - feature/debugger -> tools/debugger - feature/evil -> editor/evil - feature/eval -> tools/eval - feature/lookup -> tools/lookup - feature/snippets -> editor/snippets - feature/file-templates -> editor/file-templates - feature/workspaces -> ui/workspaces More potential changes in the future: - A new :term category for terminal emulation modules (eshell, term and vterm). - A new :os category for modules dedicated to os-specific functionality. The :tools macos module would fit here, but so would modules for nixos and arch. - A new :services category for web-service integration, like wakatime, twitter, elfeed, gist and pastebin services.
16 lines
659 B
EmacsLisp
16 lines
659 B
EmacsLisp
;;; editor/snippets/autoload/evil.el -*- lexical-binding: t; -*-
|
|
;;;###if (featurep! :editor evil)
|
|
|
|
;;;###autoload
|
|
(defun +snippets/expand-on-region ()
|
|
"Only use this with `evil-mode'. Expands a snippet around a selected region
|
|
and switches to insert mode if there are editable fields."
|
|
(interactive)
|
|
(when (evil-visual-state-p)
|
|
(evil-visual-select evil-visual-beginning evil-visual-end 'inclusive))
|
|
(cl-letf (((symbol-function 'region-beginning) (lambda () evil-visual-beginning))
|
|
((symbol-function 'region-end) (lambda () evil-visual-end)))
|
|
(yas-insert-snippet))
|
|
(when (yas-active-snippets)
|
|
(evil-insert-state +1)))
|
|
|