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

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

[elpa] externals/objed 9f7f6e5 23/34: Improve include commands to also c


From: Stefan Monnier
Subject: [elpa] externals/objed 9f7f6e5 23/34: Improve include commands to also cover punctuation and constituents
Date: Mon, 15 Mar 2021 22:21:11 -0400 (EDT)

branch: externals/objed
commit 9f7f6e5b4164a33dd33cc57595bcd904083f98bd
Author: Clemens Radermacher <clemera@posteo.net>
Commit: Clemens Radermacher <clemera@posteo.net>

    Improve include commands to also cover punctuation and constituents
---
 objed.el | 31 ++++++++++++++++++++-----------
 1 file changed, 20 insertions(+), 11 deletions(-)

diff --git a/objed.el b/objed.el
index 94fb001..ae8cb6b 100644
--- a/objed.el
+++ b/objed.el
@@ -817,8 +817,8 @@ BEFORE and AFTER are forms to execute before/after calling 
the command."
 
     (define-key map "@" 'objed-extend)
     ;; TODO: second + include more
-    (define-key map "+" 'objed-include-trailing-ws)
-    ;; (define-key map "" 'objed-include-leading-ws)
+    (define-key map "+" 'objed-include-forward)
+    ;; (define-key map "" 'objed-include-backward)
 
     ;; basic edit ops
     (define-key map "k" 'objed-kill)
@@ -2400,18 +2400,27 @@ objed operation is used."
                  (objed--end))
                t t)))
 
-(defun objed-include-trailing-ws ()
-  "Include trailing ws for current object."
+(defun objed-include-forward ()
+  "Include trailing punctuation or whitespace of object."
   (interactive)
-  (objed--change-to
-   :end (objed--skip-forward (objed--end) 'ws)))
+  (let ((end
+         (save-excursion
+           (goto-char (objed--end))
+           (when (= 0 (skip-syntax-forward "_."))
+             (objed--skip-ws))
+           (point))))
+    (objed--change-to :end end)))
 
-(defun objed-include-leading-ws ()
-  "Include leading ws for current object."
+(defun objed-include-backward ()
+  "Include leading punctuation or whitespace of object."
   (interactive)
-  (objed--change-to
-   :beg
-   (objed--skip-backward (objed--beg) 'ws)))
+  (let ((beg
+         (save-excursion
+           (goto-char (objed--beg))
+           (when (= 0 (skip-syntax-backward "_."))
+             (objed--skip-ws 'back))
+           (point))))
+    (objed--change-to :beg beg)))
 
 (defun objed-contents-object ()
   "Switch to reference of an object.



reply via email to

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