Hier finden ist mein Szenario:Haskell-Modus nicht für mein Projekt arbeiten, können nicht Modul
Ich bin mit den folgenden Verzeichnissen/Module an einem Projekt arbeiten:
|--proj
|-- src
|-- Foo
|-- FooModule1.hs
|-- FooModule2.hs
|-- Bar
|-- BarModule1.hs
BarModule1.hs
sieht aus wie dies:
module BarModule1 where
import Foo.FooModule1
...
ich habe auch eine .cabal
Datei src
als hs-source-dirs
und natürlich die Angabe beide Module darin aufgeführt sind.
Wenn ich in der Datei BarModule1.hs
in Emacs bin und ich Cc Cl heißt es:
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.
Auch ich will hlint
mit flymake-haskell-multi-load
verwenden, und wenn ich aktivieren diesen Modus mit Mxflymake-haskell-multi-load
, hlint
zeigt immer den Fehler, dass es Modul Foo.FooModule1
nicht finden kann, weil es die .cabal
Datei nicht kennt, in der ich das hs-source-dirs: src
spezifiziere.
Also meine Frage ist: Wie kann ich haskell-mode
und flymake
/hlint
meines Projektverzeichnis/Modulbaum darüber im Klaren sein, so dass es alle Module findet? Wie kann ich sie auf die in meiner Datei .cabal
angegebenen Module aufmerksam machen?
Wenn Sie eine Kabalen-Datei verwenden, dann warum Benutze Cabal nicht selbst? Stellen Sie zunächst sicher, dass Ihr aktueller Puffer eine Datei im selben Ordner wie Ihre .cabal-Datei ist, dann 'C-u M-x kompilieren RET cabal repl RET' – user2407038
Welche Version des Haskell-Modus verwenden Sie? Das Neueste und Beste ist sehr kabellos. Das Gleiche gilt für GHC-Modus IIRC – jozefg
C-u M-x RET Kabale repl RET arbeitet für die repl kompilieren, aber nicht beheben die flymake/hlint Ausgabe Ich bin mit Haskell-Modus 13,7 – Stephen