2017-02-13 6 views
1

ghc-mod를 사용하여 파일을 보충하려고합니다. 나는 ghc-mod가 이것을 위해 hlint를 사용한다는 것을 알고 있으며, hlint는 그것이 제안한 제안을 수정하기위한 인수를 허용한다는 것을 알고 있습니다. hlint에 인수를 전달하는 필요 여기 올바른 방법으로 hlint 인수를 ghc-mod에 전달 하시겠습니까?

[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 

의 형식 GHC-모드입니다 : 예를 들어,이 잘 작동

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

그러나 변화의 아무도 아래 생산하지 않는 힌트 위 :

[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 

ghc-mod에서 hlint를 통해 인수를 전달하는 올바른 형식은 무엇입니까?

감사합니다.

답변

1

GHC-모드의 버그 것 같다 :

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

그것은 이미 고정 마스터 합병, 아직 공개 아닙니다.

문제의 중요 시점은 v5.8.0.0이므로 해당 릴리스에서 수정 될 수 있습니다.

나는 Github에서에서 ghc-mod 최신에서 master 지점을 구축하고, 다음 명령이 작동 확인 :

$ 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)" 

가 여기에 내가 Github에서에서 ghc-mod을 최신 빌드로 실행되는 단계입니다.

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

감사합니다. ghc mod를 얻으려면 "stack install ghc-mod"를 사용했습니다. 나는 가지고있다 : "ghc-mod 버전 5.6.0.0 GHC 8.0.1에 의해 컴파일 된". 당신이 Github 주인에게서 건축하는 방법을 말해 줄 수 있습니까? 고맙습니다. – ericky

+1

@ericky 답변을 업데이트하고 빌드하는 방법을 추가하십시오 – ymonad

+0

대단히 감사합니다! 하나의 마지막 질문 : 내가 복제본을 복제 할 디렉토리를 변경합니까? – ericky