Crates.io | lint-emit |
lib.rs | lint-emit |
version | 0.3.3 |
source | src |
created_at | 2019-02-17 08:56:05.282298 |
updated_at | 2019-02-19 10:01:03.386075 |
description | Lint your git diffs! |
homepage | |
repository | https://github.com/ragone/lint-emit |
max_upload_size | |
id | 115326 |
size | 37,037 |
This tool aims to run multiple linters on a commit range compatible with git
.
Inspired by lint-diff and lint-staged
Linters are great tools to enforce code style in your code, but it has some limitations: it can only lint entire files.
When working with legacy code, we often have to make changes to very large files (which would be too troublesome to fix all lint errors)
and thus it would be good to lint only the lines changed and not the entire file.
lint-emit
receives a commit range and uses the specified linters to lint the changed files and filter only the errors introduced in the commit range (and nothing more).
You can add a linter by editing the config file found in your user path.
/home/alice/.config/lint-emit
C:\Users\Alice\AppData\Roaming\ragone\lint-emit
/Users/Alice/Library/Preferences/io.ragone.lint-emit
If no config file is found, you will be asked which default linters you would like to add.
[[linters]]
name = "eslint"
cmd = "eslint"
args = ["{file}", "-f=compact"]
regex = '(?P<file>.*): line (?P<line>\d*), col \d*, (?P<message>.*)'
ext = ["js", "jsx"]
cargo install lint-emit
$ lint-emit HEAD^..HEAD
$ lint-emit HEAD~3..HEAD
$ lint-emit HEAD
# or
$ lint-emit
phpmd
and phpcs
$ lint-emit --linters phpmd phpcs