[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/objed a7b9df6 183/216: Add C-RET, M-RET for eval-in-rep
From: |
Stefan Monnier |
Subject: |
[elpa] externals/objed a7b9df6 183/216: Add C-RET, M-RET for eval-in-repl and inserting new object |
Date: |
Tue, 8 Jan 2019 12:29:35 -0500 (EST) |
branch: externals/objed
commit a7b9df6aea526032ac52aafb536e02c1d9529d93
Author: Clemera <address@hidden>
Commit: Clemera <address@hidden>
Add C-RET, M-RET for eval-in-repl and inserting new object
---
README.asc | 10 ++++++++--
objed.el | 52 ++++++++++++++++++++++++++++++++++++++++++++++++----
2 files changed, 56 insertions(+), 6 deletions(-)
diff --git a/README.asc b/README.asc
index 164d05c..d57f835 100644
--- a/README.asc
+++ b/README.asc
@@ -332,10 +332,16 @@ commands" below):
|Pipe object region through shell command.
|kbd:[|]
-|Interactively pipe object region through shell or region command.
+|Incrementally construct command chain to replace text (with live view of
output).
+
+|kbd:[Ctrl - RET]
+|Evaluate current object using `eval-in-repl`.
+
+|kbd:[M - RET]
+|Insert new (empty) instance of current object type. This inserts the current
object without the inner content.
|kbd:[$]
-|Flyspell textual content of object.
+|Spell check textual content of object using `flyspell`.
|kbd:[~]
|Undo in current object region.
diff --git a/objed.el b/objed.el
index 8948738..69c43fa 100644
--- a/objed.el
+++ b/objed.el
@@ -629,10 +629,10 @@ BEFORE and AFTER are forms to execute before/after
calling the command."
(define-key map (kbd "<M-right>") 'objed-indent-to-right-tab-stop)
(define-key map (kbd "<M-left>") 'objed-indent-to-left-tab-stop)
- (define-key map "`" 'objed-top-object);;'objed-backward-symbol)
(define-key map (kbd "<home>") 'objed-top-object)
- (define-key map (kbd "´") 'objed-bottom-object);;'objed-forward-symbol)
(define-key map (kbd "<end>") 'objed-bottom-object)
+ (define-key map "`" 'objed-top-object);'objed-backward-symbol)
+ (define-key map "´" 'objed-bottom-object);'objed-forward-symbol)
;; block expansions
(define-key map "l" 'objed-expand-block)
(define-key map "a" 'objed-beg-of-block)
@@ -712,8 +712,13 @@ BEFORE and AFTER are forms to execute before/after calling
the command."
(define-key map "|"
(objed-define-op nil objed-ipipe))
- ;; (define-key map (kbd "<C-return>") 'objed-quickrun)
- (define-key map (kbd "<M-return>") 'objed-insert-new-object)
+ (define-key map (kbd "<C-return>")
+ (objed-define-op
+ nil objed-run-or-eval))
+ (define-key map (kbd "<M-return>")
+ 'objed-insert-new-object)
+
+ ;; (define-key map "^" 'objed-raise-inner)
(define-key map "!"
(objed-define-op nil objed-replace-op))
@@ -2801,6 +2806,45 @@ Commands can be shell commands or region commands."
;; goto ref if there is one...
(objed--exit-objed)))
+
+(defvar objed--eir-alist
+ '((emacs-lisp-mode . ielm)
+ (lisp-interaction-mode . ielm)
+ (clojure-mode . cider)
+ (lisp-mode . slime)
+ (racket-mode . racket)
+ (scheme-mode . scheme)
+ (hy-mode . hy)
+ (python-mode . python)
+ (ruby-mode . ruby)
+ (sml-mode . sml)
+ (scala-mode . scala)
+ (lua-mode . lua)
+ (erlang-mode . erlang)
+ (elixir-mode . iex)
+ (ocaml-mode . ocaml)
+ (prolog-mode . prolog)
+ (js3-mode . javascript)
+ (js2-mode . javascript)
+ (js-mode . javascript)
+ (sh-mode . shell))
+ "Map major mode symbols to `eval-in-repl' REPL names.")
+
+
+(defun objed-run-or-eval (beg end)
+ "Evalate region between beg and end using `eval-in-repl'."
+ (interactive "r")
+ (if (not (require 'eval-in-repl nil t))
+ (error "eval-in-repl not found")
+ (let* ((name (symbol-name (cdr (assq major-mode objed--eir-alist))))
+ (lib (intern (concat "eval-in-repl-" name)))
+ (cmd (intern (concat "eir-eval-in-" name))))
+ (when (and lib
+ (require lib nil t)
+ (commandp cmd))
+ (call-interactively cmd)))))
+
+
;; * Exit active state
(defun objed--line-p (text)
- [elpa] externals/objed 6951f1b 177/216: Add convenience bindings for forward/backward until buffer, (continued)
- [elpa] externals/objed 6951f1b 177/216: Add convenience bindings for forward/backward until buffer, Stefan Monnier, 2019/01/08
- [elpa] externals/objed fbabb7a 178/216: Add command to insert new object of current type, Stefan Monnier, 2019/01/08
- [elpa] externals/objed d792eb0 160/216: Dont reinit object for first extend, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 7f575aa 180/216: Fix dispatch, when no object found, Stefan Monnier, 2019/01/08
- [elpa] externals/objed f643281 171/216: Correct key names, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 639dc87 163/216: Add interactive pipe op, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 179ac60 185/216: Update docs for exit-op, Stefan Monnier, 2019/01/08
- [elpa] externals/objed de09955 153/216: Markup fixes again, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 4489ea3 187/216: Fixup forward word extend when already at word end pos, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 9a0ea65 192/216: Fix override of default for comint-prompt-regexp, Stefan Monnier, 2019/01/08
- [elpa] externals/objed a7b9df6 183/216: Add C-RET, M-RET for eval-in-repl and inserting new object,
Stefan Monnier <=
- [elpa] externals/objed 5ca0678 195/216: Indent for tab command should not activate objed, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 93db5bc 215/216: Fix last commit, Stefan Monnier, 2019/01/08
- [elpa] externals/objed cd7be8b 211/216: Improve objed-extend, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 10de1ad 189/216: Comment about commandline test, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 77d1691 157/216: Update extend behavior, Stefan Monnier, 2019/01/08
- [elpa] externals/objed a277292 191/216: Add option to wrap the region with any string(using universal arg), Stefan Monnier, 2019/01/08
- [elpa] externals/objed 043ec68 198/216: Adjust some bindings (q should quit window for convenience), Stefan Monnier, 2019/01/08
- [elpa] externals/objed 90af56a 203/216: Adjust objed-activate, Stefan Monnier, 2019/01/08
- [elpa] externals/objed 1bbd30f 210/216: Dont activate in minibuffer, Stefan Monnier, 2019/01/08
- [elpa] externals/objed b006b28 213/216: Change toggle state binding, Stefan Monnier, 2019/01/08