2015-04-01 3 views
6

Io uso HLint sul mio codice Haskell, ma non tutti gli avvisi/errori sono molto utili. In particolare, la freccia suggerisce perché non uso mai le frecce.Come ignorare i suggerimenti freccia di HLint?

Come si ottiene che HLint ignori tutti i suggerimenti freccia?

+0

[Questo] (https://github.com/ndmitchell/hlint#customizing-the-hints) indica che è possibile farlo con un'annotazione nella parte superiore dell'origine o in un file di suggerimenti che è possibile passare con il flag '--hint'. – bheklilr

+0

@bheklilr Sì, l'ho letto, ma non indica come posso specificare quali suggerimenti voglio ignorare. Mi piacerebbe in particolare ignorare tutti i suggerimenti relativi alle frecce. – Ana

risposta

6

Ad esempio, se si ha il codice:

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

HLint sarebbe stampare:

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

allora si potrebbe ignorare questo con l'aggiunta di:

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

Nella parte superiore del tuo file. In alternativa, è possibile creare un file contenente ana.hlint:

ignore "Use &&&" 

Quindi utilizzare hlint come:

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

Grazie. Questo è quello che stavo cercando. Ma come fai a sapere di usare la stringa "Usa &&&"? Non vedo quella stringa in [Default.hs] (https://github.com/ndmitchell/hlint/blob/master/data/Default.hs) ovunque. – Ana

+0

@Ana: questo ha confuso anche me. Penso che sia basato solo sul messaggio di errore che viene prodotto in base al lato destro della definizione del suggerimento. –

+0

Non sono sicuro di dove sia definito, ma l'ho capito perché dice "Attenzione: usa &&&". – bheklilr