emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/objed e5dfba1 096/216: Add extend commands


From: Stefan Monnier
Subject: [elpa] externals/objed e5dfba1 096/216: Add extend commands
Date: Tue, 8 Jan 2019 12:29:19 -0500 (EST)

branch: externals/objed
commit e5dfba12a9706f066958091ca8dbcfe53dca363f
Author: Clemera <address@hidden>
Commit: Clemera <address@hidden>

    Add extend commands
---
 README.asc |  3 +++
 objed.el   | 28 +++++++++++++++++++++++++++-
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/README.asc b/README.asc
index 004d546..7a04589 100644
--- a/README.asc
+++ b/README.asc
@@ -397,6 +397,9 @@ You can add your own prefix bindings using 
`objed-define-dispatch`.
 
 |kbd:[>]
 |Activate part from point forward until boundary of some object.
+
+|kbd:[-/+]
+|Extend current object forward/backward until boundary of some object.
 |===
 
 
diff --git a/objed.el b/objed.el
index edb9adb..6e546a0 100644
--- a/objed.el
+++ b/objed.el
@@ -887,6 +887,8 @@ Use `objed-define-dispatch' to define a dispatch command.")
 (objed-define-dispatch ">" objed--forward-until)
 (objed-define-dispatch "*" objed--mark-all-inside)
 (objed-define-dispatch "#" objed--ace-switch-object)
+(objed-define-dispatch "+" objed--extend-forward)
+(objed-define-dispatch "-" objed--extend-backward)
 
 (defun objed--backward-until (name)
   "Activate part from point backward until object NAME."
@@ -900,6 +902,18 @@ Use `objed-define-dispatch' to define a dispatch command.")
       :ibeg (objed--min o)
       :iend start))))
 
+(defun objed--extend-backward (name)
+  "Activate part from point backward until object NAME."
+  (let* ((start (objed--end))
+         (o (objed--until name t)))
+    (objed--switch-to
+     name nil
+     (objed-make-object
+      :beg  (point)
+      :end start
+      :ibeg (objed--min o)
+      :iend start))))
+
 (defun objed--forward-until (name)
   "Activate part from point forward until object NAME."
   (let* ((start (point))
@@ -913,8 +927,20 @@ Use `objed-define-dispatch' to define a dispatch command.")
        :beg start
        :end (objed--max o))))))
 
+(defun objed--extend-forward (name)
+  "Activate part from point backward until object NAME."
+  (let* ((start (objed--beg))
+         (o (objed--until name)))
+    (objed--switch-to
+     name nil
+      (objed-make-object
+       :ibeg start
+       :beg start
+       :iend (point)
+       :end (point)))))
+
 (defmacro objed--save-state (&rest body)
-  "Preserve state during execution of BODY."
+ " Preserve state during execution of BODY."
   `(let ((state (objed--get-current-state)))
      (unwind-protect (progn ,@body )
        (prog1 nil (objed--restore-state state)))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]