[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/objed 951af46 28/59: Convert eval op to eval-context
From: |
Clemens Radermacher |
Subject: |
[elpa] externals/objed 951af46 28/59: Convert eval op to eval-context |
Date: |
Sun, 24 Mar 2019 06:06:39 -0400 (EDT) |
branch: externals/objed
commit 951af46bae595a2312b82c78ed29cffa70632430
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>
Convert eval op to eval-context
---
objed-objects.el | 4 ++++
objed.el | 21 +++++++++++++++------
2 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/objed-objects.el b/objed-objects.el
index 1138909..fa8f055 100644
--- a/objed-objects.el
+++ b/objed-objects.el
@@ -511,6 +511,10 @@ OBJ is the object to use and defaults to
`objed--current-obj'."
(filter-buffer-substring (objed--beg)
(objed--end)))
+(defun objed--at-object-p (obj)
+ "Return non nil when point is at object OBJ."
+ (funcall (objed--name2func obj) :atp))
+
(defun objed--goto-char (pos)
"Move to position POS possibly skipping leading whitespace."
diff --git a/objed.el b/objed.el
index fa95f64..eaa718b 100644
--- a/objed.el
+++ b/objed.el
@@ -784,8 +784,9 @@ selected one."
;; TODO: start query replace in current object,
;; or for all
(define-key map "%" 'objed-replace)
- (define-key map ":" 'objed-eval)
- ;; (objed-define-op nil objed-replace current))
+ ;; TODO: objed-eval-expression
+ (define-key map ":" 'eval-expression)
+
(define-key map "&"
(objed-define-op nil objed-pipe-region))
@@ -843,7 +844,7 @@ Other single character keys are bound to `objed-undefined'."
(define-key map "q"
(objed-define-op nil objed-reformat-op ignore))
- (define-key map "e" 'objed-eval)
+ (define-key map "e" 'objed-eval-context)
(define-key map "r" ctl-x-r-map)
(define-key map "n" 'objed-narrow)
@@ -2787,7 +2788,7 @@ If REPLACE is non-nil replace the region with the result."
(objed-indent beg end))))
-(defun objed-eval (&optional replace)
+(defun objed-eval-context (&optional replace)
"Eval objects.
If REPLACE is non-nil replace evaluated code with result."
@@ -2801,8 +2802,16 @@ If REPLACE is non-nil replace evaluated code with
result."
(when (and beg end)
(goto-char beg)
(funcall 'objed--eval-func beg end replace)))))
- (apply 'objed--eval-func
- (append (objed--current) (list replace)))))
+ (when (and (objed--at-object-p 'bracket)
+ (not (eq objed--object 'bracket)))
+ (objed--switch-to 'bracket))
+ (unless (and (not (eq last-command this-command))
+ (apply 'objed--eval-func
+ (append (objed--current) (list replace))))
+ (objed--switch-to 'defun)
+ (apply 'objed--eval-func
+ (append (objed--current) (list replace))))))
+
(defun objed-pipe-region (beg end cmd &optional variant)
"Pipe region text between BEG and END through a shell CMD.
- [elpa] externals/objed dc86d31 45/59: Change bindings for duplicate ops, (continued)
- [elpa] externals/objed dc86d31 45/59: Change bindings for duplicate ops, Clemens Radermacher, 2019/03/24
- [elpa] externals/objed a46a1e5 46/59: Add binding for including leading ws, Clemens Radermacher, 2019/03/24
- [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 <=
- [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, 2019/03/24
- [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