Skip to content

Commit cf981f4

Browse files
committed
Display output as `haskell-mode' when using :t/:i/:k from the REPL
1 parent 893a148 commit cf981f4

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

haskell-interactive-mode.el

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,12 +211,21 @@ Key bindings:
211211
(setf (cdddr state) (list (length buffer)))
212212
nil)))
213213
:complete (lambda (state response)
214-
(if haskell-interactive-mode-eval-mode
215-
(haskell-interactive-mode-eval-as-mode (car state) response)
216-
(when haskell-interactive-mode-eval-pretty
217-
(haskell-interactive-mode-eval-pretty-result (car state) response)))
214+
(cond
215+
(haskell-interactive-mode-eval-mode
216+
(haskell-interactive-mode-eval-as-mode (car state) response))
217+
((haskell-interactive-mode-line-is-query (elt state 2))
218+
(let ((haskell-interactive-mode-eval-mode 'haskell-mode))
219+
(haskell-interactive-mode-eval-as-mode (car state) response)))
220+
(haskell-interactive-mode-eval-pretty
221+
(haskell-interactive-mode-eval-pretty-result (car state) response)))
218222
(haskell-interactive-mode-prompt (car state)))))))))
219223

224+
(defun haskell-interactive-mode-line-is-query (line)
225+
"Is LINE actually a :t/:k/:i?"
226+
(and (string-match "^:[itk] " line)
227+
t))
228+
220229
(defun haskell-interactive-jump-to-error-line ()
221230
"Jump to the error line."
222231
(let ((orig-line (buffer-substring-no-properties (line-beginning-position)

0 commit comments

Comments
 (0)