From 8320e5708accb5669120cf1739391c1f36da2aa6 Mon Sep 17 00:00:00 2001 From: Gergely Polonkai Date: Tue, 19 Feb 2019 10:44:31 +0100 Subject: [PATCH] [Refactor] Refactor enclose-region MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now it doesn’t create unnecessary global variables. --- configuration.org | 52 +++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/configuration.org b/configuration.org index b56f65b..9576c48 100644 --- a/configuration.org +++ b/configuration.org @@ -282,40 +282,38 @@ copied to the kill ring." *** Enclose region in a specific character #+BEGIN_SRC emacs-lisp -(defun æ-enclose-region (character &optional start end) - "Enclose region in CHARACTER. If region is empty, simply inserts - CHARACTER two times and moves point between them. +(defun gpolonkai/enclose-region (character &optional start end) + "Enclose region between CHARACTER. - If character is present in `insert-pair-alist', this function - will enclose region in the corresponding pair. In this case, - CHARACTER must be the opening member of the pair." +If region is empty and neither START nor END is set, simply inserts CHARACTER +two times and moves point between them. + +If character is present in `insert-pair-alist', this function will enclose +region in the corresponding pair. In this case, CHARACTER must be the opening +member of the pair." (interactive "cWhat character? \nr") - (setq open character close character) - - (let ((pair (assq character insert-pair-alist))) + (let ((open character) + (close character) + (pair (assq character insert-pair-alist))) (if pair (if (nth 2 pair) (setq open (nth 1 pair) close (nth 2 pair)) - (setq open (nth 0 pair) close (nth 1 pair))))) + (setq open (nth 0 pair) close (nth 1 pair)))) + (unless (and open close) + (setq open character + close character)) + (unless (use-region-p) + (setq start (point) end (point))) + (save-excursion + (goto-char end) + (insert-char close) - (unless (and open close) - (setq open character) - (setq close character)) - - (unless (use-region-p) - (setq start (point) end (point))) - - (save-excursion - (goto-char end) - (insert-char close) - - (goto-char start) - (insert-char open)) - - (unless (use-region-p) - (forward-char))) + (goto-char start) + (insert-char open)) + (unless (use-region-p) + (forward-char)))) #+END_SRC *** Convert camelCase to snake_case @@ -3246,7 +3244,7 @@ directory. It is available from [[http://plantuml.com/download][here]]. #+BEGIN_SRC emacs-lisp (bind-keys :map global-map - ("M-(" . æ-enclose-region) + ("M-(" . gpolonkai/enclose-region) ("" . open-line-below) ("" . open-line-above) ("M-t" . nil) ;; Remove the old keybinding