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
-
default linter configuration is on for pylint (.py), rubocop (.rb), and clang (.cpp, .hpp)
-
flake8, eslint and other linters need to be enabled (see below) explicitly.
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.16-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0b78208b995d240fa83ad3c1627a72b2bd391f1d34f11a58008cd558961913e |
|
MD5 | 55283db2ee7640298d8a94fa6bc909b4 |
|
BLAKE2b-256 | a63380965493da81010bacf9b252436e5e6f3338b4403e5d416a17cbb85f0e05 |