diff options
author | John Pallister <john@synchromesh.com> | 2019-04-10 21:33:34 +0100 |
---|---|---|
committer | John Mastro <john.b.mastro@gmail.com> | 2019-04-10 16:33:34 -0400 |
commit | b3512c3252e21e89f38487d96fc9bd259cf756bf (patch) | |
tree | ab8acdf667092a5f2f010170a25746f65990fd06 | |
parent | a128f766e1138e6e04146312b7c8ebbad0dae131 (diff) | |
download | trident-mode.el-b3512c3252e21e89f38487d96fc9bd259cf756bf.tar.gz trident-mode.el-b3512c3252e21e89f38487d96fc9bd259cf756bf.tar.bz2 trident-mode.el-b3512c3252e21e89f38487d96fc9bd259cf756bf.zip |
Added trident-eval-print-last-expression. (#3)
* Added trident-eval-print-last-expression.
-rw-r--r-- | trident-mode.el | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/trident-mode.el b/trident-mode.el index 125e82a..82c52af 100644 --- a/trident-mode.el +++ b/trident-mode.el @@ -347,10 +347,30 @@ sent to the browser via `skewer-eval'." (interactive) (trident-eval (slime-sexp-at-point))) -(defun trident-eval-last-expression () - "Evaluate the expression preceding point as Parenscript." +(defun trident-eval-last-expression (&optional prefix) + "Evaluate the expression preceding point as Parenscript. If +invoked with a prefix argument, insert the result into the +current buffer." + (interactive "P") + (if prefix + (trident-eval-print-last-expression) + (trident-eval (slime-last-expression)))) + +(defun trident-eval-print-last-expression () + "Evaluate sexp before point as Parenscript; print value into +the current buffer." (interactive) - (trident-eval (slime-last-expression))) + (cl-destructuring-bind (start end) + (slime-region-for-defun-at-point) + (let ((string (buffer-substring-no-properties start end))) + (skewer-flash-region start end) + (unless (zerop (current-column)) + (newline)) + (trident-with-expansion (code string) + (let* ((request (skewer-eval code #'skewer-post-print :verbose t)) + (id (cdr (assoc 'id request))) + (pos (cons (current-buffer) (point)))) + (setf (cache-table-get id skewer-eval-print-map) pos)))))) (defun trident-eval-defun () "Evaluate the current toplevel form as Parenscript." |