branch: elpa/haskell-mode commit 80054782bf1f981d448e542975ea59ea6407f5d1 Merge: 495fb9688e 238bb62622 Author: Steve Purcell <st...@sanityinc.com> Commit: GitHub <nore...@github.com>
Merge pull request #1863 from zaz/load-and-run-expr Load and run expr --- haskell.el | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/haskell.el b/haskell.el index 1b358051c9..eae8d2b9f8 100644 --- a/haskell.el +++ b/haskell.el @@ -38,6 +38,7 @@ (defvar interactive-haskell-mode-map (let ((map (make-sparse-keymap))) (define-key map (kbd "C-c C-l") 'haskell-process-load-file) + (define-key map (kbd "C-c RET") 'haskell-load-and-run) ;; == C-c C-m (define-key map (kbd "C-c C-r") 'haskell-process-reload) (define-key map (kbd "C-c C-t") 'haskell-process-do-type) (define-key map (kbd "C-c C-i") 'haskell-process-do-info) @@ -397,6 +398,17 @@ Give optional NEXT-P parameter to override value of nil (current-buffer))) +(defvar haskell-load-and-run-expr-history nil + "History of expressions used in `haskell-load-and-run'.") + +(defun haskell-load-and-run (expr) + "Load the current buffer and run EXPR, e.g. \"main\"." + (interactive (list (read-string "Run expression: " + (car haskell-load-and-run-expr-history) + 'haskell-load-and-run-expr-history))) + (haskell-process-load-file) + (haskell-interactive-mode-run-expr expr)) + ;;;###autoload (defun haskell-process-reload () "Re-load the current buffer file."