[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/objed 4de1520 008/166: Improve paren insertion and wrap
From: |
Clemens Radermacher |
Subject: |
[elpa] externals/objed 4de1520 008/166: Improve paren insertion and wrapping in lisp modes |
Date: |
Sun, 29 Dec 2019 08:20:51 -0500 (EST) |
branch: externals/objed
commit 4de1520a104f3fb247c3534508c0437ea4186736
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>
Improve paren insertion and wrapping in lisp modes
---
objed.el | 50 +++++++++++++++++++++++++++++++++++---------------
1 file changed, 35 insertions(+), 15 deletions(-)
diff --git a/objed.el b/objed.el
index 95cb723..6f8c404 100644
--- a/objed.el
+++ b/objed.el
@@ -1741,21 +1741,32 @@ Shrinks to inner objects on repeat if possible."
(t
(objed--end))))))
-(defun objed-backward-until-context ()
- "Goto object inner beginning and activate part moved over."
- (interactive)
- (when (save-excursion (objed-context-object)
- (objed--toggle-state))
- (objed--change-to :iend (point) :end (point))
- (goto-char (objed--beg))))
+(defun objed-backward-until-context (arg)
+ "Goto object inner beginning and activate part moved over.
-(defun objed-forward-until-context ()
- "Goto object inner end and activate part moved over."
- (interactive)
- (when (save-excursion (objed-context-object)
- (objed--toggle-state))
- (objed--change-to :ibeg (point) :beg (point))
- (goto-char (objed--end))))
+At bracket or string self insert ARG times."
+ (interactive "p")
+ (if (or (objed--at-object-p 'bracket)
+ (objed--at-object-p 'string))
+ (self-insert-command arg)
+ (when (save-excursion
+ (objed-context-object)
+ (objed--toggle-state))
+ (objed--change-to :iend (point) :end (point))
+ (goto-char (objed--beg)))))
+
+(defun objed-forward-until-context (arg)
+ "Goto object inner end and activate part moved over.
+
+At bracket or string self insert ARG times."
+ (interactive "p")
+ (if (or (objed--at-object-p 'bracket)
+ (objed--at-object-p 'string))
+ (self-insert-command arg)
+ (when (save-excursion (objed-context-object)
+ (objed--toggle-state))
+ (objed--change-to :ibeg (point) :beg (point))
+ (goto-char (objed--end)))))
(defun objed-current-or-previous-context (&optional arg)
"Move to end of object at point and activate it.
@@ -2578,7 +2589,8 @@ else query for key event and use `electric'."
(goto-char beg)
(insert left))
(let ((event (or objed--electric-event
- (setq objed--electric-event (read-event "Wrap with: ")))))
+ (setq objed--electric-event
+ (read-event "Wrap with: ")))))
(objed-electric-event beg end event))))
@@ -2607,6 +2619,14 @@ to sourround region string representation of event."
(goto-char rbeg)
(objed--skip-ws)
(insert last-command-event)
+ ;; add space after wrapping with paren in lispy modes
+ (when (and (or (derived-mode-p 'lisp-mode)
+ (derived-mode-p 'emacs-lisp-mode))
+ (eq (car (electric-pair-syntax-info last-command-event))
+ ?\())
+ (save-excursion
+ (insert " ")
+ (objed--reset)))
(setq epos (point))
(electric-pair-post-self-insert-function))
;; leave point like electric would for region
- [elpa] externals/objed 40f5799 007/166: Don't reinit when op exited objed, (continued)
- [elpa] externals/objed 40f5799 007/166: Don't reinit when op exited objed, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 9376f3d 004/166: Use block object for backward-element in org mode, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 36bddbd 009/166: Fix map staying active when op exited objed, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 225267f 011/166: Don't reinit on object dispatch when objed is active, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed c9d4f12 013/166: Don't always update current object with marker positions, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 3d6f50b 012/166: Fix some indent operation issues, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 87da25e 018/166: Fix mc available test on exit, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed a2cbe3b 015/166: Create fake cursors when using insertion op for marked objects, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed cb1a6ca 019/166: Add continuation object feature, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 6a91b16 023/166: Improve mc exit behavior, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 4de1520 008/166: Improve paren insertion and wrapping in lisp modes,
Clemens Radermacher <=
- [elpa] externals/objed 25111a3 010/166: Dont check buffer whe objed--buffer is gone, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 333b58c 014/166: Change indentation object to include leading ws, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 89e1e18 016/166: Also activate mc if only one fake cursor, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 0cb2593 017/166: Tweak sexp object, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed dc673b8 022/166: Fix for mc counting non fake cursor as cursor, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 252a1d3 021/166: For brackets, strings and comments switch to sexp on continuation, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 0fa1ea3 024/166: Default to sexp for continuation object, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed be2c78c 027/166: Fix word object for subword-mode, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 0956db5 029/166: Don't add additional undo bounds for numeric repeats, Clemens Radermacher, 2019/12/29
- [elpa] externals/objed 781f0ee 031/166: Make word object behave correctly with superword/subword-mode, Clemens Radermacher, 2019/12/29