简体   繁体   中英

Emacs hangs in haskell-mode with inferior-haskell-load-file call

When in a Haskell file, I use Cc Cl to run the command inferior-haskell-load-file which is intended to load the current file into the GHCI interpreter but Emacs just hangs until I hit Cg . Anyone know how I can get this to work?

GNU Emacs 23.3.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.5) of 2011-08-14 on allspice, modified by Debian

Using haskell-mode version v2.7.0

inferior-haskell-mode does some parsing based upon the expected ghci prompt. As such, if you change the prompt in a .ghci file, then it can't detect it.

For more information, see where haskell-ghci.el sets the comint-prompt-regexp value to determine what a prompt is .

;; GHCi prompt should be of the form `ModuleName> '.
(setq comint-prompt-regexp
      "^\\*?[[:upper:]][\\._[:alnum:]]*\\( \\*?[[:upper:]][\\._[:alnum:]]*\\)*> ")

If you want to keep the setting in your .ghci file, then it may be possible to customise this settings.

Old question, but as I just ran into this today, I wanted to share how to actually customize comint-prompt-regexp since I had to figure it out.

This customization will recognize λ> prompts, or actually any single character before > ), but it doesn't break the existing regex. In your .emacs :

(load-library "inf-haskell")

(defun my-inf-haskell-hook ()
  (setq comint-prompt-regexp 
        (concat comint-prompt-regexp "\\|^.> ")))

(add-to-list 'inferior-haskell-mode-hook 'my-inf-haskell-hook)

You can add more dots to "\\\\|^.> " to recognize a longer prompt, but I wanted to keep it fixed-length for simplicity.

I got the same error message when I tried to use stack with emacs. For me, adding this line to my .emacs/init.el resolved the problem:

(setq haskell-program-name "stack ghci")

I had a similar problem caused by GHCi reporting some kind of error on startup, causing the Emacs haskell mode to wait for the GHCi prompt indefinitely (GHCi didn't show the standard prompt ( Prelude> ), but rather just showed > ). You can try running GHCi externally and see if it reports any errors.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM