[Haskell-cafe] Haskell + emacs + Ghc-mod 4.0.1
Arnaud Bailly
arnaud.oqube at gmail.com
Mon Apr 7 23:04:35 UTC 2014
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 <arnaud.oqube at gmail.com>
Build-Depends: base
Cabal-version: >= 1.8
Executable tdd-qc
build-depends: base
hs-source-dirs: src
main-is: tdd-qc.hs
ghc-options: -Wall
Test-Suite tdd-qc-test
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: tdd-qc-test.hs
build-depends: base,
QuickCheck >= 2.6,
tdd-qc
And here is my emacs settings:
;; haskell coding
(require 'auto-complete)
(require 'haskell-mode)
(require 'haskell-cabal)
(autoload 'ghc-init "ghc" nil t)
(add-hook 'haskell-mode-hook (lambda () (ghc-init)))
(eval-after-load "haskell-mode"
'(progn
(setq haskell-stylish-on-save t)
(setq haskell-process-args-cabal-repl '("--ghc-option=-ferror-spans"
"--with-ghc=ghci-ng"))
(define-key haskell-mode-map (kbd "C-,") 'haskell-move-nested-left)
(define-key haskell-mode-map (kbd "C-.") 'haskell-move-nested-right)
(define-key haskell-mode-map (kbd "C-c v c") 'haskell-cabal-visit-file)
(define-key haskell-mode-map (kbd "C-c C-c") 'haskell-compile)
(define-key haskell-mode-map (kbd "C-x C-d") nil)
(setq haskell-font-lock-symbols t)
;; Do this to get a variable in scope
(auto-complete-mode)
;; from http://pastebin.com/tJyyEBAS
(ac-define-source ghc-mod
'((depends ghc)
(candidates . (ghc-select-completion-symbol))
(symbol . "s")
(cache)))
(defun my-ac-haskell-mode ()
(setq ac-sources '(ac-source-words-in-same-mode-buffers
ac-source-dictionary
ac-source-ghc-mod)))
(add-hook 'haskell-mode-hook 'my-ac-haskell-mode)
(defun my-haskell-ac-init ()
(when (member (file-name-extension buffer-file-name) '("hs" "lhs"))
(auto-complete-mode t)
(setq ac-sources '(ac-source-words-in-same-mode-buffers
ac-source-dictionary
ac-source-ghc-mod))))
(add-hook 'find-file-hook 'my-haskell-ac-init)))
(add-hook 'haskell-mode-hook 'turn-on-haskell-decl-scan)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indentation)
(eval-after-load "which-func"
'(add-to-list 'which-func-modes 'haskell-mode))
(eval-after-load "haskell-cabal"
'(define-key haskell-cabal-mode-map (kbd "C-c C-c") 'haskell-compile))
Thanks in advance for any advice....
--
Arnaud Bailly
FoldLabs Associate: http://foldlabs.com
On Sat, Apr 5, 2014 at 9:03 AM, Arnaud Bailly <arnaud.oqube at gmail.com>wrote:
> 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 (山本和彦) <kazu at iij.ad.jp> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20140408/06ce5c5c/attachment.html>
More information about the Haskell-Cafe
mailing list