[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/objed 084c9ea 39/59: Adding toggle identifier place com
From: |
Clemens Radermacher |
Subject: |
[elpa] externals/objed 084c9ea 39/59: Adding toggle identifier place command |
Date: |
Sun, 24 Mar 2019 06:06:41 -0400 (EDT) |
branch: externals/objed
commit 084c9ea24b7ce279823ad0518d5512a115574d07
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>
Adding toggle identifier place command
---
objed.el | 34 +++++++++++++++++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)
diff --git a/objed.el b/objed.el
index d0428ed..30f4036 100644
--- a/objed.el
+++ b/objed.el
@@ -768,7 +768,7 @@ selected one."
;; direct object switches
(define-key map "." 'objed-goto-next-identifier)
(define-key map "," 'objed-goto-prev-identifier)
- (define-key map "_" 'objed-symbol-object)
+ (define-key map "_" 'objed-toggle-indentifier-place)
(define-key map "l" 'objed-line-object)
;;(define-key map "%" 'objed-contents-object)
@@ -846,6 +846,7 @@ Other single character keys are bound to `objed-undefined'."
(define-key map "x" 'objed-eval-defun)
(define-key map "e" 'objed-eval-exp)
(define-key map "y" 'objed-insert)
+ (define-key map "i" 'insert-file)
(define-key map "q"
(objed-define-op nil objed-reformat-op ignore))
(define-key map "r" ctl-x-r-map)
@@ -1996,6 +1997,37 @@ On repeat move to next."
(when (objed--switch-to 'identifier)
(goto-char (objed--beg))))
+(let (state)
+ (defun objed-toggle-indentifier-place ()
+ "Toggle between current and special places of identifier.
+
+Special places are for example defintion declarations or key
+bindings."
+ (interactive)
+ (when (eq major-mode 'emacs-lisp-mode)
+ (cond ((eq last-command 'objed-goto-definition)
+ (objed--restore-state state))
+ (t
+ (unless (eq objed--object 'identifier)
+ (objed--switch-to 'identifier)
+ (goto-char (objed--beg)))
+ (when (eq this-command 'objed-toggle-indentifier-place)
+ (setq state (objed--get-current-state)))
+ (let* ((format (objed--get-ident-format))
+ (pos (save-excursion
+ (goto-char (point-min))
+ (when (re-search-forward
+ (format "(def.*? \\(%s\\)" format) nil t)
+ (match-beginning 1)))))
+ (if (and pos (not (= pos (point))))
+ (progn (goto-char pos)
+ (objed--switch-to 'identifier)
+ (setq this-command 'objed-goto-definition))
+ (objed-top-object)
+ (when (and pos (= pos (point)))
+ (objed-bottom-object)))))))))
+
+
(defun objed-goto-next-identifier ()
"Switch to next identifier."
(interactive)
- [elpa] externals/objed 315a622 40/59: Update beg of object at point semantics, (continued)
- [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, 2019/03/24
- [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 <=
- [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
- [elpa] externals/objed bad4e56 25/59: Add objed append mode binding "W", Clemens Radermacher, 2019/03/24
- [elpa] externals/objed d2e3da3 24/59: Add objed-eval binding ":", Clemens Radermacher, 2019/03/24
- [elpa] externals/objed 23005a3 23/59: Add object to register functionality, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed a341a60 22/59: Fix identifier movement, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed 6f50de1 20/59: Add objed-append-mode for objed-copy repeat, Clemens Radermacher, 2019/03/24