我正在尝试使用ghc-mod创建一个文件。我知道ghc-mod使用hlint来实现这一点,我知道hlint接受参数来修改它报告的建议。例如,这段代码运行得很好:
eric@linux-epth: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但下面的变体都不会产生上面所示的提示:
eric@linux-epth:total-beginner-haskell$ ghc-mod lint -h hint=Generalise src/Borrower.hs
eric@linux-epth:total-beginner-haskell$ ghc-mod lint --hlintOpt hint=Generalise src/Borrower.hs
eric@linux-epth:total-beginner-haskell$ ghc-mod lint --hlintOpt "--hint=Generalise" src/Borrower.hs
eric@linux-epth:total-beginner-haskell$ ghc-mod lint --hlintOpt '--hint=Generalise' src/Borrower.hs使用ghc-mod将参数传递给hlint的正确格式是什么?
谢谢。
发布于 2017-02-13 15:29:31
这似乎是ghc-mod的一个bug:
问题:https://github.com/DanielG/ghc-mod/issues/826
它已经修复并合并到master,但还没有发布。
由于该问题的里程碑是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 buildhttps://stackoverflow.com/questions/42196771
复制相似问题