Вот мой сценарий:
Я работаю над проектом со следующими каталогами/модулями:
|--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
?