2017-02-13 6 views
1

Ich versuche, eine Datei mit ghc-mod fint. Ich weiß, ghc-mod verwendet hlint dafür und ich weiß, dass HLINT akzeptiert, um die Vorschläge, die es berichtet, zu ändern. Zum Beispiel funktioniert das ganz gut:Korrekte Möglichkeit, HLINT-Argumente an ghc-mod zu übergeben?

[email protected]:total-beginner-haskell$ hlint src/Borrower.hs --hint=Generalise 
src/Borrower.hs:44:3: Suggestion: Use mappend 
Found: 
getName br ++ 
" (" `mappend` show (getMaxBooks br) `mappend` " books)" 
Why not: 
getName br `Data.Monoid.mappend` 
(" (" `mappend` show (getMaxBooks br) `mappend` " books)") 

1 hint 

Hier das Format ghc-mod erfordert für Argumente hlint vorbei:

Usage: ghc-mod lint [-h|--hlintOpt ARG] FILE 

Aber keine der Variationen unten erzeugen die Andeutung oben gezeigt:

[email protected]:total-beginner-haskell$ ghc-mod lint -h hint=Generalise src/Borrower.hs 
[email protected]:total-beginner-haskell$ ghc-mod lint --hlintOpt hint=Generalise src/Borrower.hs 
[email protected]:total-beginner-haskell$ ghc-mod lint --hlintOpt "--hint=Generalise" src/Borrower.hs 
[email protected]:total-beginner-haskell$ ghc-mod lint --hlintOpt '--hint=Generalise' src/Borrower.hs 

Was ist das korrekte Format, das mit ghc-mod verwendet wird, um Argumente durch es an HLT übergeben?

Vielen Dank.

Antwort

1

Es scheint, dass es ein Fehler von GHC-mod ist:

Ausgabe: https://github.com/DanielG/ghc-mod/issues/826

Es ist bereits festgelegt und verschmolzen, zu beherrschen, aber noch nicht freigegeben.

Da der Meilenstein des Problems v5.8.0.0 ist, kann es in dieser Version behoben sein.

baute ich die ghc-mod nach neuesten master Zweig von Github, und bestätigt, dass folgende Befehl funktioniert:

$ ghc-mod lint src/Borrower.hs --hlintOpt='--hint=Generalise.hs' 
src/Borrower.hs:1:8: Suggestion: Use mappendFound: getName br ++ " (" `mappend` show (getMaxBooks br) `mappend` " books)"Why not: getName br `Data.Monoid.mappend` (" (" `mappend` show (getMaxBooks br) `mappend` " books)" 

Hier ist der Schritt, den ich letzte ghc-mod von Github zu bauen ausgeführt.

$ git clone https://github.com/DanielG/ghc-mod 
$ cd ghc-mod 
$ stack init --ignore-subdirs --solver 
$ stack build 
+0

danke für Ihre Hilfe. Ich habe "stack install ghc-mod" benutzt um ghc mod zu bekommen. Ich habe: "ghc-mod Version 5.6.0.0 kompiliert von GHC 8.0.1". Kannst du mir sagen, wie du von Github Meister bauen kannst? Vielen Dank. – ericky

+1

@ericky Ich aktualisierte die Antwort und füge hinzu, wie man baut – ymonad

+0

Großartig - danke! Eine letzte Frage: Macht es einen Unterschied, in welches Verzeichnis ich den Repo kloniere? – ericky

Verwandte Themen