hlint-plugin 1.0.0 → 1.0.1
raw patch · 3 files changed
+83/−7 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- CHANGELOG.md +4/−0
- README.md +68/−0
- hlint-plugin.cabal +11/−7
CHANGELOG.md view
@@ -1,3 +1,7 @@+1.0.1++- Small improvements to package description+ 1.0.0 - Initial release
+ README.md view
@@ -0,0 +1,68 @@+# `hlint-plugin`++This is a revival of the [`splint` project](https://github.com/tfausak/splint)+to create an `hlint` plugin for GHC.++The main advantages of doing this are:++- Better integration with GHC tooling++ Now `hlint` errors will appear directly in your tools (e.g. `cabal build`+ `ghcid`, `haskell-language-server`) instead of you having to run `hlint`+ out of band.++- You only have to lint modules that you rebuild++- You don't have to parse the module twice++In order to build this plugin, you will need to:++- build the `hlint` package with the `-f-ghc-lib` cabal configure option+- build the `ghc-lib-parser-ex` package with the `-fno-ghc-lib` cabal configure+ option++To use this plugin, add this package as a build dependency and then enable the+following GHC options (typically in the `ghc-options:` field of your `.cabal`+file):++```bash+-fplugin HLint.Plugin+```++You can pass command-line options to `hlint` using `-fplugin-opt`, like this:++```bash+-fplugin HLint.Plugin -fplugin-opt='HLint.Plugin:--ignore=Redundant guard'+```++## Development++This repository uses Nix for development. You can build this package entirely+using Nix for a specific version of `ghc` by running:++```ShellSession+$ nix develop .#ghc${MAJOR}${MINOR}+```++… replacing `${MAJOR}` and `${MINOR}` with the major and minor version of the+`ghc` that you're using. For example, if you're using GHC 9.4, then you'd run:++```ShellSession+$ nix build .#ghc94+```++If you want to develop interactively using Cabal inside of a Nix shell, run:++```ShellSession+$ nix develop .#ghc${MAJOR}${MINOR}+```++Once you are inside that Nix shell, then you can use `cabal` commands, like+`cabal build` or `cabal repl`. You can also use `ghcid` or launch your favorite+IDE from inside this shell.++To check that this plugin works for all supported GHC versions, run:++```ShellSession+$ nix flake check+```
hlint-plugin.cabal view
@@ -1,13 +1,16 @@ cabal-version: 3.0 name: hlint-plugin-version: 1.0.0+version: 1.0.1 synopsis: GHC plugin for hlint-description: This package provides an GHC plugin that runs `hlint` on the- compiled module. The main advantages of doing this are:- .- * Better integration with GHC tooling- * You only have to lint modules that you rebuild- * You don't have to parse the module twice+description:+ This package provides an GHC plugin that runs `hlint` on the compiled+ module. The main advantages of doing this are: (A) better integration with+ GHC tooling, (B) only linting modules that change, and (C) only parsing the+ module once.+ .+ Note that this package will only build if you build the @hlint@ dependency+ with @-f-ghc-lib@ and build the @ghc-lib-parser-ex@ dependency with+ @-fno-ghc-lib@ license: BSD-3-Clause license-file: LICENSE author: Mercury Technologies@@ -15,6 +18,7 @@ copyright: 2023 Mercury Technologies build-type: Simple extra-doc-files: CHANGELOG.md+extra-source-files: README.md library hs-source-dirs: src