2015-04-01 16 views
6

Używam HLint na moim kodzie Haskella, ale nie wszystkie ostrzeżenia/błędy są bardzo przydatne. W szczególności strzałka podpowiada, ponieważ nigdy nie używam strzał.Jak zignorować wskazówki strzałki HLint?

Jak ustawić HLint, aby ignorował wszystkie wskazówki strzałek?

+0

[To] (https://github.com/ndmitchell/hlint#customizing-the-hints) wskazuje, że możesz to zrobić za pomocą adnotacji u góry źródła lub w pliku podpowiedzi, który możesz przekazać z flagą '--hint'. – bheklilr

+0

@bheklilr Tak, przeczytałem, ale nie wskazuje, w jaki sposób mogę określić, które podpowiedzi chcę zignorować. Chciałbym zignorować wszystkie wskazówki związane ze strzałami. – Ana

Odpowiedz

6

Na przykład, jeśli miał kod:

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

HLint by wydrukować:

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

Następnie można ignorować tego, dodając:

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

Na szczycie twojego pliku. Alternatywa, można utworzyć plik ana.hlint zawierającą:

ignore "Use &&&" 

następnie użyć hlint jak:

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

Dzięki. Tego właśnie szukałem. Ale skąd wiesz, aby użyć ciągu "Use &&&"? Nie widzę tego ciągu w [Default.hs] (https://github.com/ndmitchell/hlint/blob/master/data/Default.hs) w dowolnym miejscu. – Ana

+0

@Ana: To też mnie zdezorientowało. Myślę, że jest to oparte na komunikacie o błędzie, który jest tworzony w oparciu o prawą stronę definicji podpowiedzi. –

+0

Nie jestem pewien, gdzie jest zdefiniowany, ale znalazłem go, ponieważ mówi "Ostrzeżenie: Użyj &&&". – bheklilr