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

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

[elpa] externals/objed 85019a8 14/21: Add raise command


From: Clemens Radermacher
Subject: [elpa] externals/objed 85019a8 14/21: Add raise command
Date: Sun, 17 Mar 2019 15:00:18 -0400 (EDT)

branch: externals/objed
commit 85019a8c9cf7f037e65d8d4c57ea4ce8cef44e45
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>

    Add raise command
---
 README.asc |  3 +++
 objed.el   | 21 ++++++++++++++++++---
 2 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/README.asc b/README.asc
index 2b335e7..36a54f2 100644
--- a/README.asc
+++ b/README.asc
@@ -321,6 +321,9 @@ once you can mark them first (see the "Misc commands" 
below):
 |kbd:[%]
 |Query replace narrowed to current object.
 
+|kbd:[^]
+|Replace object with inner part (raise).
+
 |kbd:[!]
 |Replace object(s) with minibuffer input.
 
diff --git a/objed.el b/objed.el
index 9358cd0..557dd25 100644
--- a/objed.el
+++ b/objed.el
@@ -789,8 +789,7 @@ to the selected one."
        nil objed-run-or-eval ignore))
     (define-key map (kbd "<M-return>")
       'objed-insert-new-object)
-    ;; TODO:
-    ;; (define-key map "^" 'objed-raise-inner)
+    (define-key map "^" 'objed-raise)
     map)
   "Keymap for commands when `objed' is active.")
 
@@ -3160,7 +3159,23 @@ If nil ‘eval-region’ is used instead.")
               (eval-region beg end t))
              ((and (require lib nil t)
                    (commandp cmd))
-             (call-interactively cmd))))))
+              (call-interactively cmd))))))
+
+
+(defun objed-raise ()
+  "Replace object with inner part."
+  (interactive)
+  (let* ((ibeg (objed--ibeg))
+         (iend (objed--iend))
+         (istring (buffer-substring ibeg iend))
+         (obeg (objed--obeg))
+         (oend (objed--oend)))
+    (objed--reset)
+    (delete-region obeg oend)
+    (save-excursion
+      (insert istring))))
+
+
 
 
 ;; * Exit active state



reply via email to

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