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."

Reply via email to