Skip to content

Commit

Permalink
Create default hlint configuration (with tidy up)
Browse files Browse the repository at this point in the history
* hlint --default -j . > .hlint.yaml

* Ignore modules that #include "MachDeps.h"

  Warning: Can't find file "MachDeps.h" in directories
	./cabal-testsuite/PackageTests/CmmSources/src
	.
  Asked for by: ./cabal-testsuite/PackageTests/CmmSources/src/Demo.hs  at line 8 col 1

  Warning: Can't find file "MachDeps.h" in directories
	./cabal-testsuite/PackageTests/CmmSourcesDyn/src
	.
  Asked for by: ./cabal-testsuite/PackageTests/CmmSourcesDyn/src/Demo.hs  at line 8 col 1

* Ignore the manually generated Lexer.hs

	templates/Lexer.x:10:1-20: Warning: Use fewer LANGUAGE pragmas
	Found:
	  {-# LANGUAGE CPP #-}
	  {-# LANGUAGE CPP #-}

	Perhaps:
	  {-# LANGUAGE CPP #-}

	1 hint

* Ignore templates/Paths_pkg.template.hs for its parse error

* Ignore templates/SPDX*.hs for their parse errors

* Add a linting workflow and rename the formatting one

* Redo default configuration with hlint-3.5

	I had mistakenly used a development build before:

	$ hlint --version
	HLint v3.6.20230213, (C) Neil Mitchell 2006-2022

* Shorten github workflow
  • Loading branch information
philderbeast authored and ulysses4ever committed Jul 10, 2023
1 parent be2fd1a commit 31ae312
Show file tree
Hide file tree
Showing 3 changed files with 124 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Linting
name: Formatting

on:
pull_request:
Expand Down
18 changes: 18 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Linting

on:
pull_request:
push:

jobs:
hlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: haskell/actions/hlint-setup@v2
with:
version: "3.5"
- uses: haskell/actions/hlint-run@v2
with:
path: "."
fail-on: suggestion
105 changes: 105 additions & 0 deletions .hlint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# Warnings currently triggered by your code
- ignore: {name: "Avoid lambda"} # 49 hints
- ignore: {name: "Avoid lambda using `infix`"} # 19 hints
- ignore: {name: "Eta reduce"} # 91 hints
- ignore: {name: "Evaluate"} # 9 hints
- ignore: {name: "Functor law"} # 14 hints
- ignore: {name: "Fuse concatMap/map"} # 3 hints
- ignore: {name: "Fuse foldr/map"} # 3 hints
- ignore: {name: "Fuse mapMaybe/map"} # 2 hints
- ignore: {name: "Fuse traverse_/map"} # 1 hint
- ignore: {name: "Hoist not"} # 30 hints
- ignore: {name: "Missing NOINLINE pragma"} # 1 hint
- ignore: {name: "Monoid law, left identity"} # 3 hints
- ignore: {name: "Monoid law, right identity"} # 3 hints
- ignore: {name: "Move brackets to avoid $"} # 25 hints
- ignore: {name: "Move guards forward"} # 4 hints
- ignore: {name: "Redundant $"} # 125 hints
- ignore: {name: "Redundant $!"} # 4 hints
- ignore: {name: "Redundant <$>"} # 6 hints
- ignore: {name: "Redundant =="} # 1 hint
- ignore: {name: "Redundant bracket"} # 206 hints
- ignore: {name: "Redundant guard"} # 2 hints
- ignore: {name: "Redundant if"} # 1 hint
- ignore: {name: "Redundant lambda"} # 22 hints
- ignore: {name: "Redundant list comprehension"} # 3 hints
- ignore: {name: "Redundant map"} # 1 hint
- ignore: {name: "Redundant multi-way if"} # 1 hint
- ignore: {name: "Redundant return"} # 4 hints
- ignore: {name: "Redundant where"} # 3 hints
- ignore: {name: "Replace case with fromMaybe"} # 5 hints
- ignore: {name: "Replace case with maybe"} # 10 hints
- ignore: {name: "Unused LANGUAGE pragma"} # 121 hints
- ignore: {name: "Use $>"} # 5 hints
- ignore: {name: "Use ++"} # 4 hints
- ignore: {name: "Use :"} # 28 hints
- ignore: {name: "Use <$"} # 2 hints
- ignore: {name: "Use <$>"} # 67 hints
- ignore: {name: "Use <&>"} # 14 hints
- ignore: {name: "Use <=<"} # 5 hints
- ignore: {name: "Use =<<"} # 6 hints
- ignore: {name: "Use =="} # 2 hints
- ignore: {name: "Use >=>"} # 3 hints
- ignore: {name: "Use ?~"} # 1 hint
- ignore: {name: "Use Just"} # 2 hints
- ignore: {name: "Use all"} # 8 hints
- ignore: {name: "Use bimap"} # 1 hint
- ignore: {name: "Use camelCase"} # 68 hints
- ignore: {name: "Use catMaybes"} # 3 hints
- ignore: {name: "Use concatMap"} # 1 hint
- ignore: {name: "Use const"} # 38 hints
- ignore: {name: "Use elem"} # 3 hints
- ignore: {name: "Use fewer imports"} # 13 hints
- ignore: {name: "Use first"} # 2 hints
- ignore: {name: "Use fmap"} # 28 hints
- ignore: {name: "Use fold"} # 1 hint
- ignore: {name: "Use for"} # 1 hint
- ignore: {name: "Use forM_"} # 1 hint
- ignore: {name: "Use for_"} # 1 hint
- ignore: {name: "Use fromMaybe"} # 2 hints
- ignore: {name: "Use fromRight"} # 1 hint
- ignore: {name: "Use fst"} # 1 hint
- ignore: {name: "Use if"} # 4 hints
- ignore: {name: "Use infix"} # 19 hints
- ignore: {name: "Use isAsciiLower"} # 2 hints
- ignore: {name: "Use isAsciiUpper"} # 2 hints
- ignore: {name: "Use isDigit"} # 2 hints
- ignore: {name: "Use isJust"} # 2 hints
- ignore: {name: "Use isNothing"} # 3 hints
- ignore: {name: "Use lambda-case"} # 49 hints
- ignore: {name: "Use lefts"} # 1 hint
- ignore: {name: "Use list comprehension"} # 11 hints
- ignore: {name: "Use list literal"} # 3 hints
- ignore: {name: "Use list literal pattern"} # 11 hints
- ignore: {name: "Use map"} # 5 hints
- ignore: {name: "Use map once"} # 6 hints
- ignore: {name: "Use mapMaybe"} # 11 hints
- ignore: {name: "Use max"} # 1 hint
- ignore: {name: "Use maybe"} # 10 hints
- ignore: {name: "Use newtype instead of data"} # 19 hints
- ignore: {name: "Use notElem"} # 11 hints
- ignore: {name: "Use null"} # 3 hints
- ignore: {name: "Use or"} # 1 hint
- ignore: {name: "Use record patterns"} # 16 hints
- ignore: {name: "Use replicateM"} # 1 hint
- ignore: {name: "Use replicateM_"} # 6 hints
- ignore: {name: "Use rights"} # 2 hints
- ignore: {name: "Use second"} # 7 hints
- ignore: {name: "Use section"} # 19 hints
- ignore: {name: "Use sortOn"} # 15 hints
- ignore: {name: "Use traverse"} # 1 hint
- ignore: {name: "Use traverse_"} # 1 hint
- ignore: {name: "Use tuple-section"} # 28 hints
- ignore: {name: "Use typeRep"} # 2 hints
- ignore: {name: "Use unless"} # 17 hints
- ignore: {name: "Use unwords"} # 8 hints
- ignore: {name: "Use void"} # 17 hints
- ignore: {name: "Use when"} # 1 hint

- arguments:
- --ignore-glob=cabal-testsuite/PackageTests/CmmSources/src/Demo.hs
- --ignore-glob=cabal-testsuite/PackageTests/CmmSourcesDyn/src/Demo.hs
- --ignore-glob=Cabal-syntax/src/Distribution/Fields/Lexer.hs
- --ignore-glob=templates/Paths_pkg.template.hs
- --ignore-glob=templates/SPDX.LicenseExceptionId.template.hs
- --ignore-glob=templates/SPDX.LicenseId.template.hs

0 comments on commit 31ae312

Please sign in to comment.