[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/objed dc8c569 033/216: Improve surround op
From: |
Stefan Monnier |
Subject: |
[elpa] externals/objed dc8c569 033/216: Improve surround op |
Date: |
Tue, 8 Jan 2019 12:29:06 -0500 (EST) |
branch: externals/objed
commit dc8c569ede43efcf8757028dd9a2f35ae9dbac24
Author: Clemera <address@hidden>
Commit: Clemera <address@hidden>
Improve surround op
---
objed.el | 46 +++++++++++++++++++++++++++++-----------------
1 file changed, 29 insertions(+), 17 deletions(-)
diff --git a/objed.el b/objed.el
index ed763b0..0ecac2c 100644
--- a/objed.el
+++ b/objed.el
@@ -2002,11 +2002,12 @@ append it to the `kill-ring'."
(defun objed-electric (beg end &optional event)
- "Wrap region between BEG and END like `electric'.
+ "Wrap region between BEG and END using `elec-pair'.
EVENT is used for wrapping according to
`electric-pair-post-self-insert-function' and defaults to
-`last-command-event'."
+`last-command-event'. If event is not an electric event fallback
+to sourround region string representation of event."
(interactive "r")
(require 'elec-pair)
(let ((electric-pair-mode t)
@@ -2015,18 +2016,29 @@ EVENT is used for wrapping according to
;; make sure to go to beginning
(rbeg (if (> beg end) end beg))
(rend (if (> beg end) beg end)))
- (save-mark-and-excursion
- ;; skip ws optionally?
- (push-mark (objed--skip-backward rend 'ws) t t)
- (goto-char rbeg)
- (objed--skip-ws)
- (insert last-command-event)
- (setq epos (point))
- (electric-pair-post-self-insert-function))
- ;; leave point like electric would for region
- (goto-char epos)))
-
-
+ (if (not (memq (car (electric-pair-syntax-info last-command-event))
+ '(?\( ?\) ?\" ?\$)))
+ (objed--surround beg end
+ (char-to-string last-command-event))
+ (save-mark-and-excursion
+ ;; skip ws optionally?
+ (push-mark (objed--skip-backward rend 'ws) t t)
+ (goto-char rbeg)
+ (objed--skip-ws)
+ (insert last-command-event)
+ (setq epos (point))
+ (electric-pair-post-self-insert-function))
+ ;; leave point like electric would for region
+ (goto-char epos))))
+
+(defun objed--surround (beg end str)
+ "Surround region BEG,END with string STR."
+ (goto-char end)
+ (insert str)
+ (save-excursion
+ (goto-char beg)
+ (insert str)))
+
(defun objed-yank (arg)
"Yank and indent.
@@ -2070,7 +2082,7 @@ ARG is passed to `yank'. On repreat `yank-pop'."
(defun objed-indent (beg end)
"Indent region between BEG and END.
- Moves point over any whitespace afterwards."
+Moves point over any whitespace afterwards."
(interactive "r")
(indent-region beg end)
(objed--switch-to 'region))
@@ -2078,8 +2090,8 @@ ARG is passed to `yank'. On repreat `yank-pop'."
(defun objed--indent (f &optional arg)
"Execute indent function F.
- If arg is given pass it on to the indent function. Switches
- temporary to `objed--indent-map'"
+If arg is given pass it on to the indent function. Switches
+temporary to `objed--indent-map'"
;; init
(unless (memq last-command
objed--indent-commands)
- [elpa] externals/objed 630d2de 028/216: Improve/add indentation commands, (continued)
- [elpa] externals/objed 630d2de 028/216: Improve/add indentation commands, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 61bb3eb 031/216: Fixup bindings and docs, Stefan Monnier, 2019/01/08
- [elpa] externals/objed ca32294 038/216: Ensure value for cursor color, #5, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 430d858 037/216: Add more command to move objects around and change bindings for them, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 64dc38b 035/216: More on indent/move commands, Stefan Monnier, 2019/01/08
- [elpa] externals/objed d5dd1d0 045/216: Fix function name, Stefan Monnier, 2019/01/08
- [elpa] externals/objed f33147d 043/216: Add syntax object adjusted from laishulu/evil-textobj-syntax, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 8c3ba86 040/216: Add note about changing bindings, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 95503ca 046/216: Fix syntax object, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 7ad08e2 052/216: Set C-h to work as usual, Stefan Monnier, 2019/01/08
- [elpa] externals/objed dc8c569 033/216: Improve surround op,
Stefan Monnier <=
- [elpa] externals/objed 1f09072 064/216: Improve file object, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 96c6b8f 065/216: Add DEL key for in buffer replacement, fixes #6, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 41be963 054/216: Adjust textblock and block object order, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 843d843 059/216: Remove textblock from context objects, Stefan Monnier, 2019/01/08
- [elpa] externals/objed de241e3 048/216: Start to support mc, Stefan Monnier, 2019/01/08
- [elpa] externals/objed ebad1ac 061/216: Fix face object, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 042c3bb 051/216: Change some bindings, Stefan Monnier, 2019/01/08
- [elpa] externals/objed f605604 057/216: Rename syntax object to face object, Stefan Monnier, 2019/01/08
- [elpa] externals/objed e94dc45 049/216: Remove :get-inner, Stefan Monnier, 2019/01/08
- [elpa] externals/objed ad88f19 074/216: Fix markup!!!, Stefan Monnier, 2019/01/08