: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.
33 lines
1.2 KiB
EmacsLisp
33 lines
1.2 KiB
EmacsLisp
;;; editor/evil/autoload/embrace.el -*- lexical-binding: t; -*-
|
|
|
|
;;;###autoload
|
|
(defun +evil--embrace-get-pair (char)
|
|
(if-let* ((pair (cdr-safe (assoc (string-to-char char) evil-surround-pairs-alist))))
|
|
pair
|
|
(if-let* ((pair (assoc-default char embrace--pairs-list)))
|
|
(if-let* ((real-pair (and (functionp (embrace-pair-struct-read-function pair))
|
|
(funcall (embrace-pair-struct-read-function pair)))))
|
|
real-pair
|
|
(cons (embrace-pair-struct-left pair) (embrace-pair-struct-right pair)))
|
|
(cons char char))))
|
|
|
|
;;;###autoload
|
|
(defun +evil--embrace-escaped ()
|
|
"Backslash-escaped surround character support for embrace."
|
|
(let ((char (read-char "\\")))
|
|
(if (eq char 27)
|
|
(cons "" "")
|
|
(let ((pair (+evil--embrace-get-pair (string char)))
|
|
(text (if (sp-point-in-string) "\\\\%s" "\\%s")))
|
|
(cons (format text (car pair))
|
|
(format text (cdr pair)))))))
|
|
|
|
;;;###autoload
|
|
(defun +evil--embrace-latex ()
|
|
"LaTeX command support for embrace."
|
|
(cons (format "\\%s{" (read-string "\\")) "}"))
|
|
|
|
;;;###autoload
|
|
(defun +evil--embrace-elisp-fn ()
|
|
"Elisp function support for embrace."
|
|
(cons (format "(%s " (or (read-string "(") "")) ")"))
|