Awesome
README
Overview
"haskell-linter" is a wrapper for hlint. It highlights hlint warnings and errors inline and provides a code-action to accept hlint suggestions.
Dependencies
It expects a version of hlint >= 1.9.1 to be installed and already added to the path. If it is installed but cannot be found, add the path to your preferences as seen below.
{
"haskell.hlint.executablePath": "Path\To\Executable"
}
Configuration:
There are various options that can be configured by making changes to your user or workspace preferences.
Lint onType or onSave
By default the linter will lint as you type. Alternatively, set haskell.hlint.run
to onSave
or never
if you want to lint only when the file is saved (works best if auto-save is on) or disable it for a workspace or entirely.
{
"haskell.hlint.run": "onType" // also: "onSave", "never"
}
Hints
By default the linter simply calls the hlint
command without arguments. To specify a set of hints to use or a set of hints to ignore, add them to the configuration as shown below.
{
"haskell.hlint.hints": ["Default", "Dollar", "Generalise"],
"haskell.hlint.ignore": ["Redundant do"]
}
Troubleshooting
Make sure you have a hlint installed and that the version is 1.9.1 or newer. If you're having issues with the extension, set the logLevel setting to log
and check the output in the developer tools console.
{
"haskell.hlint.logLevel": "log"
}
Acknowledgements
The extension architecture is based off of the PHPValidationProvider from the built-in php extension.
Changelog
0.0.6:
- Fixed issue #11 Incorrect Type in settings.json
0.0.4:
- Added
hlint.ignore
configuration (Thanks to @vigoo)
0.0.3:
- Fixed bug where linting was always being performed on save
- Added option to disable linting
- Added configuration schema to
package.json
which helps users when changing preferences
0.0.2:
- Fixed configuration, setting
haskell.hlint.executablePath
should work - Fixed code actions in response to this VS Code issue
- Made issues more readable
- Get information/choose from multiple suggestions
- Default linting is now onType
- Removed ignoreSeverity setting