2017-02-13 6 views
1

私はghc-modを使用してファイルをリントしようとしています。私はghc-modがこれにhlintを使用していることを知っており、hlintはそれが報告する提案を変更する引数を受け入れることを知っています。例えば、これはうまく動作します:ghc-modにhlint引数を渡す適切な方法?

[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-modがhlintに引数を渡すために必要となるのです。

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-MODのバグだと思わ:

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

それはすでに固定されており、マスターするために合併し、まだリリースされていません。

問題のマイルストーンはv5.8.0.0であるため、そのリリースで修正されることがあります。私はGitHubのから最新のmasterブランチからghc-modを構築し、コマンドの動作を、次のことを確認した

$ 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 8.0.1でコンパイルされたghc-modバージョン5.6.0.0"。あなたのようにGithubマスターからビルドする方法を教えてください。ありがとうございました。 – ericky

+1

@ericky答えを更新し、ビルドの方法を追加 – ymonad

+0

すごく感謝!最後の1つの質問:それは私がレポをクローンするディレクトリとは違いますか? – ericky

関連する問題