packages feed

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 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