From 19eee5d17f320078e9db2f593b263fd7a6d0ac0d Mon Sep 17 00:00:00 2001 From: Kosyrev Serge <_deepfire@feelingofgreen.ru> Date: Thu, 6 Aug 2015 10:28:47 +0300 Subject: [PATCH 1/3] haskell-session-interactive-buffer: sometimes we just want to get the buffer --- haskell-interactive-mode.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/haskell-interactive-mode.el b/haskell-interactive-mode.el index fddd525b8..4106f5e07 100644 --- a/haskell-interactive-mode.el +++ b/haskell-interactive-mode.el @@ -512,7 +512,7 @@ FILE-NAME only." ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Misc -(defun haskell-session-interactive-buffer (s) +(defun haskell-session-interactive-buffer (s &optional no-window-popup) "Get the session interactive buffer." (let ((buffer (haskell-session-get s 'interactive-buffer))) (if (and buffer (buffer-live-p buffer)) @@ -522,7 +522,8 @@ FILE-NAME only." (with-current-buffer buffer (haskell-interactive-mode) (haskell-session-assign s)) - (switch-to-buffer-other-window buffer) + (unless no-window-popup + (switch-to-buffer-other-window buffer)) buffer)))) (defun haskell-process-cabal-live (state buffer) From b075cbe4b1861587c2d3409a6da2c4c955a16bd3 Mon Sep 17 00:00:00 2001 From: Kosyrev Serge <_deepfire@feelingofgreen.ru> Date: Thu, 6 Aug 2015 11:05:30 +0300 Subject: [PATCH 2/3] haskell-process-load-file: conditionalise windop popup --- haskell-interactive-mode.el | 4 ++-- haskell.el | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/haskell-interactive-mode.el b/haskell-interactive-mode.el index 4106f5e07..3cded9eef 100644 --- a/haskell-interactive-mode.el +++ b/haskell-interactive-mode.el @@ -499,10 +499,10 @@ FILE-NAME only." t))))) ;;;###autoload -(defun haskell-interactive-mode-reset-error (session) +(defun haskell-interactive-mode-reset-error (session &optional no-window-popup) "Reset the error cursor position." (interactive) - (with-current-buffer (haskell-session-interactive-buffer session) + (with-current-buffer (haskell-session-interactive-buffer session no-window-popup) (haskell-interactive-mode-goto-end-point) (let ((mrk (point-marker))) (haskell-session-set session 'next-error-locus nil) diff --git a/haskell.el b/haskell.el index 706683853..9db528392 100644 --- a/haskell.el +++ b/haskell.el @@ -377,11 +377,11 @@ If `haskell-process-load-or-reload-prompt' is nil, accept `default'." (pop-to-buffer buffer))) ;;;###autoload -(defun haskell-process-load-file () +(defun haskell-process-load-file (&optional no-window-popup) "Load the current buffer file." (interactive) (save-buffer) - (haskell-interactive-mode-reset-error (haskell-session)) + (haskell-interactive-mode-reset-error (haskell-session) no-window-popup) (haskell-process-file-loadish (format "load \"%s\"" (replace-regexp-in-string "\"" "\\\\\"" From 4fb6e16640040bb7e8fc2c398f1c9953ae517a4d Mon Sep 17 00:00:00 2001 From: Kosyrev Serge <_deepfire@feelingofgreen.ru> Date: Fri, 7 Aug 2015 13:33:37 +0300 Subject: [PATCH 3/3] haskell-process | file loading: haskell-load-opens-repl: new custom --- haskell-customize.el | 6 ++++++ haskell.el | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/haskell-customize.el b/haskell-customize.el index e97f4c284..768274c0e 100644 --- a/haskell-customize.el +++ b/haskell-customize.el @@ -105,6 +105,12 @@ when showing type information about symbols." :link '(custom-manual "(haskell-mode)haskell-interactive-mode") :group 'haskell) +;;;###autoload +(defcustom haskell-load-opens-repl t + "Whether `haskell-process-load-file' should open the REPL." + :group 'haskell-interactive + :type 'boolean) + ;;;###autoload (defcustom haskell-process-path-ghci "ghci" diff --git a/haskell.el b/haskell.el index 9db528392..d3e47c64b 100644 --- a/haskell.el +++ b/haskell.el @@ -381,7 +381,8 @@ If `haskell-process-load-or-reload-prompt' is nil, accept `default'." "Load the current buffer file." (interactive) (save-buffer) - (haskell-interactive-mode-reset-error (haskell-session) no-window-popup) + (haskell-interactive-mode-reset-error (haskell-session) (or no-window-popup + (not haskell-load-opens-repl))) (haskell-process-file-loadish (format "load \"%s\"" (replace-regexp-in-string "\"" "\\\\\"" @@ -407,7 +408,8 @@ If `haskell-process-load-or-reload-prompt' is nil, accept `default'." (if haskell-reload-p "Now running :reload." "Now running :load ."))) - (if haskell-reload-p (haskell-process-reload-file) (haskell-process-load-file)))) + (if haskell-reload-p (haskell-process-reload-file) (haskell-process-load-file + (not haskell-load-opens-repl))))) ;;;###autoload (defun haskell-process-cabal-build ()