From fda63a8547a2668c409f127897af2d84e33962ac Mon Sep 17 00:00:00 2001 From: James Nguyen Date: Tue, 28 Nov 2017 21:55:19 -0800 Subject: Slime: Support eval when evil-move-beyond-eol is nil --- evil-slime.el | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/evil-slime.el b/evil-slime.el index b976934..2dbdcfd 100644 --- a/evil-slime.el +++ b/evil-slime.el @@ -33,8 +33,24 @@ (defvar sldb-mode-map) (defvar slime-inspector-mode-map) +(defun evil-slime-last-sexp (command &rest args) + "In normal-state or motion-state, last sexp ends at point." + (if (and (not evil-move-beyond-eol) + (or (evil-normal-state-p) (evil-motion-state-p))) + (save-excursion + (unless (or (eobp) (eolp)) (forward-char)) + (apply command args)) + (apply command args))) + (defun evil-slime-setup () "Set up `evil' bindings for `slime'." + (unless evil-move-beyond-eol + (advice-add 'slime-eval-last-expression :around 'evil-slime-last-sexp) + (advice-add 'slime-pprint-eval-last-expression :around 'evil-slime-last-sexp) + (advice-add 'slime-eval-print-last-expression :around 'evil-slime-last-sexp) + (advice-add 'slime-eval-last-expression-in-repl + :around 'evil-slime-last-sexp)) + (evil-collection-util-evilify-map sldb-mode-map :mode sldb-mode -- cgit v1.0