[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/objed c17de45 48/59: Convert toggle state to shrink con
From: |
Clemens Radermacher |
Subject: |
[elpa] externals/objed c17de45 48/59: Convert toggle state to shrink context command |
Date: |
Sun, 24 Mar 2019 06:06:43 -0400 (EDT) |
branch: externals/objed
commit c17de455d5190d2381cb852d100b62e8eb26103e
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>
Convert toggle state to shrink context command
---
objed.el | 45 ++++++++++++++++++++++++++++++++++-----------
1 file changed, 34 insertions(+), 11 deletions(-)
diff --git a/objed.el b/objed.el
index 1f59b81..501dd0c 100644
--- a/objed.el
+++ b/objed.el
@@ -710,7 +710,7 @@ selected one."
(define-key map "o" 'objed-expand-context)
(define-key map "i" 'objed-del-insert)
- (define-key map "t" 'objed-toggle-state)
+ (define-key map "t" 'objed-shrink-context)
(define-key map "j" 'objed-toggle-side)
;; marking/unmarking
@@ -1714,11 +1714,27 @@ to an object containing the current one."
(or (objed--switch-to 'defun 'inner)
(objed--switch-to 'line 'inner))))))
+(defun objed--toggle-state ()
+ "Toggle state of object.
+
+Shrinks to inner objects on repeat if possible."
+ (interactive)
+ (when (eq objed--object 'sexp)
+ (save-excursion
+ (objed-context-object)))
+ (let ((sdiff (abs (- (point) (objed--beg))))
+ (ediff (abs (- (point) (objed--end)))))
+ (objed--reverse)
+ (goto-char (cond ((> ediff sdiff)
+ (objed--beg))
+ (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--toggle-state))
(objed--change-to :iend (point) :end (point))
(goto-char (objed--beg))))
@@ -1726,7 +1742,7 @@ to an object containing the current one."
"Goto object inner end and activate part moved over."
(interactive)
(when (save-excursion (objed-context-object)
- (objed-toggle-state))
+ (objed--toggle-state))
(objed--change-to :ibeg (point) :beg (point))
(goto-char (objed--end))))
@@ -1802,6 +1818,7 @@ postitive prefix argument ARG move to the nth next
object."
(objed--update-current-object bot)
(objed--goto-char (objed--beg)))))))
+
(defun objed-toggle-side ()
"Move to other side of object.
@@ -1816,12 +1833,17 @@ Default to sexp at point."
(t
(goto-char (objed--beg)))))))
-(defun objed-toggle-state ()
- "Toggle state of object."
+
+(defun objed-shrink-context ()
+ "Toggle state of object.
+
+Shrinks to inner objects on repeat if possible."
(interactive)
- (when (eq objed--object 'sexp)
- (save-excursion
- (objed-context-object)))
+ (if (eq objed--object 'sexp)
+ (save-excursion
+ (objed-context-object))
+ (if (objed--inner-p)
+ (objed--switch-to 'sexp)))
(let ((sdiff (abs (- (point) (objed--beg))))
(ediff (abs (- (point) (objed--end)))))
(objed--reverse)
@@ -1831,6 +1853,7 @@ Default to sexp at point."
(objed--end))))))
+
(defun objed-expand-context ()
"Expand to objects based on context.
@@ -1845,13 +1868,13 @@ On expand move to start of object."
(objed-context-object)
(when (< (objed--skip-forward (objed--beg) 'ws)
pos (objed--end))
- (objed-toggle-state)))
+ (objed--toggle-state)))
(when (or (< (objed--beg) (point) (objed--end))
(< (point) (objed--beg)))
(goto-char (objed--beg))))
(if (objed--inner-p)
(let ((curr (objed--current)))
- (objed-toggle-state)
+ (objed--toggle-state)
(when (equal curr (objed--current))
(objed-context-object)
(goto-char (objed--beg))))
@@ -1870,7 +1893,7 @@ Object is choosen based on context."
(objed--toggle-ends
(lambda ()
(objed-context-object)
- (objed-toggle-state))))
+ (objed--toggle-state))))
;; * General object commands
- [elpa] externals/objed b5e68c9 33/59: Add objed insert command, (continued)
- [elpa] externals/objed b5e68c9 33/59: Add objed insert command, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed 1d116bd 42/59: Improve objed context object, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed fef1621 47/59: Reorder few defuns by topic, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed dc86d31 45/59: Change bindings for duplicate ops, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed a46a1e5 46/59: Add binding for including leading ws, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed 315a622 40/59: Update beg of object at point semantics, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed a09e198 36/59: Improve objed-eval-exp, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed 5af62e2 35/59: Default to char if current buffer has no objed--object set, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed 26cd732 32/59: Exit with exit code or op name, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed 4c878f8 21/59: Change objed-append-mode activation rules, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed c17de45 48/59: Convert toggle state to shrink context command,
Clemens Radermacher <=
- [elpa] externals/objed fe2b5f1 34/59: Improve objed-copy, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed 08cb11c 31/59: Eval op improvements/fixes, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed 951af46 28/59: Convert eval op to eval-context, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed 20d776a 04/59: Improve identifier command, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed 084c9ea 39/59: Adding toggle identifier place command, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed d35abd5 30/59: Improve eval context op for comments and change its binding, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed 26235a7 44/59: Improve duplicate op, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed 5f9a7f6 37/59: Give feedback message on reformat, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed bc5aa6c 26/59: Add left/right char to cmd-alist, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed 041109d 27/59: Change object at point semantics (rules for o/[/]), Clemens Radermacher, 2019/03/24