这是我的场景:
我正在开发一个具有以下目录/模块的项目:
|--proj
|-- src
|-- Foo
|-- FooModule1.hs
|-- FooModule2.hs
|-- Bar
|-- BarModule1.hs
BarModule1.hs
看起来像这样:module BarModule1 where
import Foo.FooModule1
...
我还有一个
.cabal
文件指定 src
作为 hs-source-dirs
当然,这两个模块都在其中列出。当我在文件
BarModule1.hs
在 Emacs 中,我执行 C-c C-l 它说:proj/src/Bar/BarModule1.hs:3:8:
Could not find module `Foo.FooModule1'
Use -v to see a list of the files searched for.
Failed, modules loaded: none.
我也想用
hlint
与 flymake-haskell-multi-load
如果我用 M-x flymake-haskell-multi-load
激活该模式, hlint
总是会显示找不到模块的错误Foo.FooModule1
,因为它不知道 .cabal
文件,我在其中指定 hs-source-dirs: src
.所以我的问题是:如何制作
haskell-mode
和 flymake
/hlint
注意我的项目目录/模块树,以便它找到所有模块?或者,我怎样才能让他们知道我的
.cabal
中指定的模块?文件?
最佳答案
至于haskell-mode
设置 haskell-process-type
至cabal-repl
在您的 emacs 初始化文件中并确保使用 interactive-haskell-mode
(不是 inf-haskell-mode
):
(add-hook 'haskell-mode-hook 'interactive-haskell-mode)
(setq haskell-process-type 'cabal-repl)
关于Haskell 模式不适用于我的项目,找不到模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24441661/