Runs one or more linters, but only outputs errors if diffs have lint issues.
Project description
lint-diffs
lint-diffs is a simple command line tool for running a set of arbitrarty linters on a set of 'unified diffs'.
Errors on diff-lines will always be reported. Errors on non-diff lines can also be reported, depending on severity.
First you need some diffs, then you pipe it to lint-diffs:
git diff -U0 origin/master | lint-diffs
... or in mercurial: hg outgoing -p | lint-diffs
The default and only preconfigured tool for python is "pylint".
Configuration:
lint-diffs
will read a config files from ~/.config/lint-diffs
and/or ./.lint-diffs
.
Example:
[pylint]
always_report=E.*
[flake8]
extensions=.py
[rubocop]
extensions=.rb
always_report=(E.*|W.*)
[eslint]
extensions=.js
[shellcheck]
extensions=.sh
In this example, a flake8 and pylint are run on every diff file ending in .py
.
Additionally, ruby, eslint and shell script linters have been enabled. The
ruby linter has been modified to always report warnings, on any changed file,
not just changed lines.
To add new linters:
- The linter has to report to stdout
- The linter has to have a regex that produces a full file path, a line number and an error class
- The line numbers and file paths have to match diff target file paths
To enable or disable linters change the 'extensions' config.
Goals:
- Runs with good defaults for many people
- Should be easy to modify the config for any linter
- Should be easy to use with any vcs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for lint_diffs-0.1.14-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 99595f258fb6b0a070c82ebca041d1e6825de7c6b91d2b02e6581ce2b4998bbd |
|
MD5 | 4ac3a0acf181dec166e83348c828dd7b |
|
BLAKE2b-256 | 97136ce2fabdac0168f0d69ac7f93bff0f596ad40cb40d54cf3a32158d829b70 |