
OK, so now opening each file in emacs works correctly but when I try to
load the test file in haskell repl, it fails complaining it cannot find the
local package.
Here is my cabal file:
Name: tdd-qc
Version: 1.0
Build-type: Simple
Synopsis: This is a sample project
License: BSD3
License-file: LICENSE
Author: Arnaud Bailly
OK, I forgot the —enable-tests flag to cabal install…
However, there seems to be some strange interactions I do not understand fully with the test section of cabal. Here is the cabal file:
name: Thermometre version: 0.1.0.0 synopsis: synopsis -- description: license: PublicDomain license-file: LICENSE author: Black -- maintainer: -- copyright: -- category: build-type: Simple cabal-version: >= 1.8
library hs-source-dirs: src exposed-modules: Thermometre build-depends: base == 4.*
test-suite spec type: exitcode-stdio-1.0 ghc-options: -Wall -Werror hs-source-dirs: test main-is: Spec.hs build-depends: base == 4.* , Thermometre , hspec >= 1.3
When I remove the test-suite section and open src/Thermometre.hs I got errors highlighting which is fine. C-c C-t does not give me types however ('Cannot guess type’ message).
When I leave the test-suite section then opening Thermometre.hs gives me a package error: ‘cannot satisfy -package Thermometre’ as there is a dependency from the tests to the main library.
How can I solve that?
Thanks Arnaud
On 03 Apr 2014, at 23:30, Kazu Yamamoto (山本和彦)
wrote: I upgrade my emacs configuration with latest ghc-mod and all of sudden nothing works (again). When I try to load a .hs file from a project I got the first line highlighted with the error "cannot satisfy -package spec" and I cannot got type, info or doc from that file. Also I do not have anymore syntax errors highlighting I used to see.
As this message suggests, you need to install spec for testing.
% cabal install spec
# I don't know what the spec package is. A typo for hspec?
This is because ghc-mod obtains dependency for executables, libraries *and* testing.
In general, % cabal install --only-dependencies would help you.
--Kazu