diff options
author | Doro Rose <doroerose@gmail.com> | 2017-12-02 22:25:54 +0100 |
---|---|---|
committer | Nicolas Goaziou <mail@nicolasgoaziou.fr> | 2017-12-11 15:11:56 +0100 |
commit | b4678774375251927d002811ff1d32426503eef8 (patch) | |
tree | 82980bdc6487b790e10a2f3bee040b0a68141764 | |
parent | 1187538a212112708993b44e6b814f1a70e9f6ce (diff) | |
download | org-mode-b4678774375251927d002811ff1d32426503eef8.tar.gz |
Fix ob-haskell.el to work with custom ghci prompts
* lisp/ob-haskell.el (haskell-prompt-regexp): Define defvar
`haskell-prompt-regexp`. This variable will override the variable set by
inf-haskell, when `org-babel-execute:haskell` is called.
(org-babel-execute:haskell): Make sure that
`comint-prompt-regexp` is set appropriately to enable correct parsing
of "λ"-prompts. Set `comint-preoutput-filter-functions` appropriately to
enable correct parsing of coloured ghci prompts.
The problem was that code sent back from the inf-haskell buffer to
org-babel wasn't parsed correctly in `org-babel-comint-with-output`.
This occured when the user uses the commonly used "λ"-prompt.
TINYCHANGE
-rw-r--r-- | lisp/ob-haskell.el | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lisp/ob-haskell.el b/lisp/ob-haskell.el index cc78bec..faf976b 100644 --- a/lisp/ob-haskell.el +++ b/lisp/ob-haskell.el @@ -59,14 +59,23 @@ (defvar org-babel-haskell-eoe "\"org-babel-haskell-eoe\"") +(defvar haskell-prompt-regexp) + (defun org-babel-execute:haskell (body params) "Execute a block of Haskell code." + (require 'inf-haskell) + (add-hook 'inferior-haskell-hook + (lambda () + (setq-local comint-prompt-regexp + (concat haskell-prompt-regexp "\\|^λ?> ")))) (let* ((session (cdr (assq :session params))) (result-type (cdr (assq :result-type params))) (full-body (org-babel-expand-body:generic body params (org-babel-variable-assignments:haskell params))) (session (org-babel-haskell-initiate-session session params)) + (comint-preoutput-filter-functions + (cons 'ansi-color-filter-apply comint-preoutput-filter-functions)) (raw (org-babel-comint-with-output (session org-babel-haskell-eoe t full-body) (insert (org-trim full-body)) |