Configure embrace.el and evil-surround
This commit is contained in:
parent
35199496d4
commit
94b63e9e34
3 changed files with 43 additions and 28 deletions
|
@ -346,23 +346,22 @@
|
||||||
evil-Surround-edit
|
evil-Surround-edit
|
||||||
evil-surround-region)
|
evil-surround-region)
|
||||||
:config
|
:config
|
||||||
(global-evil-surround-mode 1)
|
(global-evil-surround-mode 1))
|
||||||
|
|
||||||
;; Escaped surround characters
|
|
||||||
(setq-default evil-surround-pairs-alist
|
|
||||||
(cons '(?\\ . narf/evil-surround-escaped)
|
|
||||||
evil-surround-pairs-alist))
|
|
||||||
|
|
||||||
(add-hook! emacs-lisp-mode
|
|
||||||
(push '(?\` . ("`" . "'")) evil-surround-pairs-alist))
|
|
||||||
(add-hook! python-mode
|
|
||||||
(push '((?d . ("\"\"\"" . "\"\"\""))) evil-surround-pairs-alist)))
|
|
||||||
|
|
||||||
(use-package evil-embrace
|
(use-package evil-embrace
|
||||||
:after evil-surround
|
:after evil-surround
|
||||||
:config
|
:config
|
||||||
(evil-embrace-enable-evil-surround-integration)
|
(evil-embrace-enable-evil-surround-integration)
|
||||||
(embrace-add-pair-regexp ?\\ "\\[[{(]" "\\[]})]" 'narf/evil-surround-escaped))
|
;; Escaped surround characters
|
||||||
|
(embrace-add-pair-regexp ?\\ "\\[[{(]" "\\[]})]" 'narf/embrace-escaped)
|
||||||
|
(add-hook 'LaTeX-mode-hook 'embrace-LaTeX-mode-hook)
|
||||||
|
(add-hook 'org-mode-hook 'embrace-org-mode-hook)
|
||||||
|
(add-hook! emacs-lisp-mode
|
||||||
|
(embrace-add-pair ?\` "`" "'"))
|
||||||
|
(add-hook! (emacs-lisp-mode lisp-mode)
|
||||||
|
(embrace-add-pair-regexp ?f "([^ ]+ " ")" 'narf/embrace-elisp-fn))
|
||||||
|
(add-hook! (org-mode latex-mode)
|
||||||
|
(embrace-add-pair-regexp ?l "\\[a-z]+{" "}" 'narf/embrace-latex)))
|
||||||
|
|
||||||
(use-package evil-visualstar
|
(use-package evil-visualstar
|
||||||
:commands (global-evil-visualstar-mode
|
:commands (global-evil-visualstar-mode
|
||||||
|
|
32
core/defuns/defuns-embrace.el
Normal file
32
core/defuns/defuns-embrace.el
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
;;; defuns-embrace.el
|
||||||
|
|
||||||
|
(defun narf--embrace-get-pair (char)
|
||||||
|
(acond ((cdr-safe (assoc (string-to-char char) evil-surround-pairs-alist))
|
||||||
|
`(,(car it) . ,(cdr it)))
|
||||||
|
((assoc-default char embrace--pairs-list)
|
||||||
|
(if (functionp (embrace-pair-struct-read-function it))
|
||||||
|
(let ((pair (funcall (embrace-pair-struct-read-function it))))
|
||||||
|
`(,(car pair) . ,(cdr pair)))
|
||||||
|
`(,(embrace-pair-struct-left it) . ,(embrace-pair-struct-right it))))
|
||||||
|
(t `(,char . ,char))))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun narf/embrace-escaped ()
|
||||||
|
"Escaped surround characters."
|
||||||
|
(let* ((char (string (read-char "\\")))
|
||||||
|
(pair (narf--embrace-get-pair char))
|
||||||
|
(text (if (sp-point-in-string) "\\\\%s" "\\%s")))
|
||||||
|
(cons (format text (car pair))
|
||||||
|
(format text (cdr pair)))))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun narf/embrace-latex ()
|
||||||
|
"LaTeX commands"
|
||||||
|
(cons (format "\\%s{" (read-string "\\")) "}"))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun narf/embrace-elisp-fn ()
|
||||||
|
(cons (format "(%s " (or (read-string "(") "")) ")"))
|
||||||
|
|
||||||
|
(provide 'defuns-embrace)
|
||||||
|
;;; defuns-embrace.el ends here
|
|
@ -42,22 +42,6 @@
|
||||||
(when evil-exchange--overlays
|
(when evil-exchange--overlays
|
||||||
(evil-exchange-cancel)))
|
(evil-exchange-cancel)))
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun narf/evil-surround-escaped ()
|
|
||||||
"Escaped surround characters."
|
|
||||||
(let* ((char (string (read-char "\\")))
|
|
||||||
(pair (acond ((cdr-safe (assoc (string-to-char char) evil-surround-pairs-alist))
|
|
||||||
`(,(car it) . ,(cdr it)))
|
|
||||||
(t `(,char . ,char))))
|
|
||||||
(text (if (sp-point-in-string) "\\\\%s" "\\%s")))
|
|
||||||
(cons (format text (car pair))
|
|
||||||
(format text (cdr pair)))))
|
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun narf/evil-surround-latex ()
|
|
||||||
"LaTeX commands"
|
|
||||||
(cons (format "\\%s{" (read-string "\\")) "}"))
|
|
||||||
|
|
||||||
;;;###autoload (autoload 'narf/evil-macro-on-all-lines "defuns-evil" nil t)
|
;;;###autoload (autoload 'narf/evil-macro-on-all-lines "defuns-evil" nil t)
|
||||||
(evil-define-operator narf/evil-macro-on-all-lines (beg end &optional macro)
|
(evil-define-operator narf/evil-macro-on-all-lines (beg end &optional macro)
|
||||||
"Apply macro to each line."
|
"Apply macro to each line."
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue