2015-04-01 69 views
6

我在我的Haskell代码上使用HLint,但并非所有的警告/错误都非常有用。特别是箭头提示,因为我从不使用箭头。如何忽略HLint的箭头提示?

如何让HLint忽略所有箭头提示?

+0

[这](https://github.com/ndmitchell/hlint#customizing-the-hints)表明您可以使用源代码顶部的注释或者可以使用'--hint'标志传递的提示文件来执行此操作。 – bheklilr 2015-04-01 22:15:36

+0

@bheklilr是的,我读过,但并不表示我如何指定我想忽略的提示。我特别想忽略所有与箭头有关的提示。 – Ana 2015-04-01 22:20:20

回答

6

举例来说,如果你有代码:

map (\a -> (head a, length a)) someList 

HLint会打印出:

Warning: Use &&& 
Found: 
    \a -> (head a, length a) 
Why not: 
    head Control.Arrow.&&& length 

然后,你可以忽略这个加:

{-# ANN module "HLint: ignore Use &&&" #-} 

在顶部的文件。另外,您可以创建一个包含文件ana.hlint

ignore "Use &&&" 

然后用hlint为:

> hlint --hint=ana.hlint source_code.hs 
+0

谢谢。这是我正在寻找的。但是,您如何知道使用字符串“Use &&&”?我没有在[Default.hs](https://github.com/ndmitchell/hlint/blob/master/data/Default.hs)中的任何地方看到该字符串。 – Ana 2015-04-01 22:52:51

+0

@Ana:也让我困惑。我认为这只是基于错误消息,它是根据提示定义的右侧生成的。 – 2015-04-01 22:53:33

+0

我不确定它是在哪里定义的,但是我知道它是因为它说“警告:使用&&&”。 – bheklilr 2015-04-01 22:53:34