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

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

[elpa] externals/objed 82c27ed 5/9: Refactor identifier code


From: Clemens Radermacher
Subject: [elpa] externals/objed 82c27ed 5/9: Refactor identifier code
Date: Mon, 18 Mar 2019 13:20:57 -0400 (EDT)

branch: externals/objed
commit 82c27ed10ecc62760a785a8e6a30024f8a6ef010
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>

    Refactor identifier code
---
 objed-objects.el | 45 +++++++++++++--------------------------------
 objed.el         | 28 ++++++++++++++++++++++++----
 2 files changed, 37 insertions(+), 36 deletions(-)

diff --git a/objed-objects.el b/objed-objects.el
index bb3b1a0..2f48528 100644
--- a/objed-objects.el
+++ b/objed-objects.el
@@ -51,6 +51,10 @@
 
 (declare-function objed--install-advices "ext:objed")
 (declare-function objed--install-advices-for "ext:objed")
+(declare-function objed-goto-next-identifier "ext:objed")
+(declare-function objed-goto-prev-identifier "ext:objed")
+(declare-function objed-next-identifier "ext:objed")
+(declare-function objed-prev-identifier "ext:objed")
 
 
 
@@ -1081,26 +1085,6 @@ object."
           (objed--update-current-object obj)
           (objed--goto-char (objed--beg obj)))))))
 
-
-(defun objed-goto-prev-identifier (arg)
-  "Switch to nth previous identifier.
-
-nth is given by ARG."
-  (interactive "P")
-  (unless (eq objed--object 'identifier)
-    (objed--switch-to 'identifier))
-  (objed--goto-previous arg))
-
-(defun objed-goto-next-identifier (arg)
-  "Switch to nth next identifier.
-
-nth is given by ARG."
-  (interactive "P")
-  (if (eq objed--object 'identifier)
-      (objed--goto-next arg)
-    (objed--switch-to 'identifier)))
-
-
 (defun objed--make-object-overlay (&optional obj)
   "Create an overlay to mark current object.
 
@@ -2073,14 +2057,13 @@ non-nil the indentation block can contain empty lines."
   :get-obj
   (bounds-of-thing-at-point 'symbol)
   :try-next
-  (objed-next-identifier)
+  (objed--next-identifier)
   :try-prev
-  (objed-prev-identifier))
+  (objed--prev-identifier))
+
 
-;;;###autoload
-(defun objed-next-identifier ()
+(defun objed--next-identifier ()
   "Move to next identifier."
-  (interactive)
   (let ((bds nil))
     (if (not (setq bds (bounds-of-thing-at-point 'symbol)))
         (re-search-forward  "\\_<" nil t)
@@ -2091,14 +2074,12 @@ non-nil the indentation block can contain empty lines."
         (if (re-search-forward (format "\\_<%s\\_>" sym) nil t)
             (goto-char (match-beginning 0))
           (goto-char (car bds))
-          (when (or (eq real-this-command #'objed-current-or-next-context)
-                    (eq real-this-command #'objed-next-identifier))
+          (when (or (eq real-this-command #'objed-next-identifier)
+                    (eq real-this-command #'objed-goto-next-identifier))
             (run-at-time 0 nil (apply-partially #'message "Last one!"))))))))
 
-;;;###autoload
-(defun objed-prev-identifier ()
+(defun objed--prev-identifier ()
   "Move to previous identifier."
-  (interactive)
   (let ((bds nil))
     (if (not (setq bds (bounds-of-thing-at-point 'symbol)))
         (re-search-backward  "\\_<" nil t)
@@ -2110,8 +2091,8 @@ non-nil the indentation block can contain empty lines."
           (if (re-search-backward (format "\\_<%s\\_>" sym) nil t)
               (goto-char (match-beginning 0))
             (goto-char (car bds))
-            (when (or (eq real-this-command 
#'objed-current-or-previous-context)
-                      (eq real-this-command #'objed-prev-identifier))
+            (when (or (eq real-this-command #'objed-prev-identifier)
+                      (eq real-this-command #'objed-goto-prev-identifier))
               (run-at-time 0 nil (apply-partially #'message "First 
one!")))))))))
 
 
diff --git a/objed.el b/objed.el
index 264aafe..f6ad139 100644
--- a/objed.el
+++ b/objed.el
@@ -1919,11 +1919,31 @@ back to `objed-initial-object' if no match found."
       (re-search-backward ident nil t))))
 
 ;;;###autoload
-(defun objed-identifier ()
+(defun objed-next-identifier ()
   "Activate object with identifier at point."
   (interactive)
-  (objed--init 'identifier)
-  (goto-char (objed--beg)))
+  (objed--next-identifier))
+
+;;;###autoload
+(defun objed-prev-identifier ()
+  "Activate object with identifier at point."
+  (interactive)
+  (objed--prev-identifier))
+
+(defun objed-goto-prev-identifier ()
+  "Switch to previous identifier."
+  (interactive)
+  (objed--prev-identifier)
+  (when (objed--switch-to 'identifier)
+    (goto-char (objed--beg))))
+
+(defun objed-goto-next-identifier ()
+  "Switch to next identifier."
+  (interactive)
+  (when (eq objed--object 'identifier)
+    (objed--next-identifier))
+  (when (objed--switch-to 'identifier)
+    (goto-char (objed--beg))))
 
 (defun objed-toggle-side ()
   "Move to other side of object.
@@ -3407,7 +3427,7 @@ whitespace they build a sequence."
     (define-key map (kbd "M-[") 'objed-beg-of-object-at-point)
     (define-key map (kbd "M-]") 'objed-end-of-object-at-point)
     (define-key map (kbd "C-,") 'objed-prev-identifier)
-    (define-key map (kbd "C-.") 'objed-identifier)
+    (define-key map (kbd "C-.") 'objed-next-identifier)
     (define-key map (kbd "C-<") 'objed-first-identifier)
     (define-key map (kbd "C->") 'objed-last-identifier)
     map)



reply via email to

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