Haskell 模式不适用于我的项目,找不到模块

标签 haskell emacs haskell-mode

这是我的场景:

我正在开发一个具有以下目录/模块的项目:

|--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.

我也想用hlintflymake-haskell-multi-load如果我用 M-x flymake-haskell-multi-load 激活该模式, hlint总是会显示找不到模块的错误Foo.FooModule1 ,因为它不知道 .cabal文件,我在其中指定 hs-source-dirs: src .

所以我的问题是:如何制作 haskell-modeflymake/hlint注意我的项目目录/模块树,以便它找到所有模块?

或者,我怎样才能让他们知道我的 .cabal 中指定的模块?文件?

最佳答案

至于haskell-mode设置 haskell-process-typecabal-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/

相关文章:

haskell - 如何在解析 json 时从多个 GADT 构造值?

haskell - WxHaskell 认为我的字符串是 1 个字符长

r - GNUEmacs/ESS/ latex /Sweave : text displays differently when cursor is in latex code or in R code

emacs - 如何在 Emacs 中突出显示 CVS 更改?

haskell - 如何 - 使用 emacs - haskell 模式将一个程序的输出通过管道传输到另一个程序(capslocker)的输入?

haskell - haskellmode-vim 死了吗?

haskell - 禁止某些 Haskell Alex/Happy 编译消息

haskell - 在 main 中执行简单 I/O 的更好方法

search - 如何在 Emacs 中进行区分大小写的搜索?

emacs - 如何使 haskell 模式包与 Nixos 上的 Emacs 一起使用?