Aman Agrawal
05aa3bcbc1
lint: Make `--fix` a default arg for zulint.
...
Since the check for `--fix` is in `zulint/command.py`,
we should keep it as an arg for zulint.
2019-07-03 14:57:31 -07:00
Aman Agrawal
aa5a1cb509
lint: Make zulint independent of extra lint options in `./tools/lint`.
...
Check `options.full` in `pyflakes.py` instead of `linters.py` to
make zulint independent of `./tools/lint`.
2019-07-03 14:57:31 -07:00
Aman Agrawal
7a3e8c4868
zulint: Add option to list groups using `--list-groups`.
2019-06-27 14:42:33 -07:00
Aman Agrawal
4424867adc
zulint: Show errors in `--verbose` in a more readable format.
2019-06-27 14:42:33 -07:00
Aman Agrawal
e275457387
zulint: Avoid changing the color of next line by using ENDC.
...
ENDC was not being applied due to missing `{}` in the end.
2019-06-27 14:42:33 -07:00
Thomas Ip
a2de8ab44f
lint: Add --fix option to ./tools/lint.
...
Linters with the fix option are stylelint, eslint and puppet-lint.
2019-06-24 14:13:04 -07:00
Aman Agrawal
8fc7c89874
zulint: Add `--verbose` arg to print good/bad lines in error.
...
This argument probably still needs some iteration, but it's already
useful.
2019-06-23 22:24:46 -07:00
Aman Agrawal
6d42b2392b
zulint: Print description of linter with it in `--list`.
2019-06-23 22:23:15 -07:00
Aman Agrawal
e236d39ef1
zulint: Add option to specify description of linter functions.
...
Extract description of function from __doc__ if used as wrapper.
2019-06-23 22:23:15 -07:00
Aman Agrawal
e9ff9e34b3
lint: Use --groups to specify specific groups to run.
...
This helps generalize the use of groups inside zulint.
Introduce list_files to return `by_lang` files dict.
Add feature to create custom groups.
Make custom groups for backend and frontend files.
2019-06-23 22:23:15 -07:00
Aman Agrawal
b5b3d9bd5f
zulint: Refactor duplicate error printing code into print_error.
2019-06-23 21:59:00 -07:00
Aman Agrawal
7b7e887386
lint: Pass args to LinterConfig when initializing it.
...
This makes it easy to use args inside LinterConfig.
2019-06-23 21:55:02 -07:00
Aman Agrawal
0b12ec1417
lint: Initialize logger inside zulint.
...
This also helps move verbose_timing logic inside zulint.
2019-06-23 21:55:02 -07:00
Aman Agrawal
b6d4438726
lint: Pass `args` instead of passing individual attributes to do_lint.
...
Pass the args to linter_config.do_lint.
2019-06-23 21:55:02 -07:00
Tim Abbott
4818011199
zulint: Add a basic README.
2019-06-18 12:25:46 -07:00
Aman Agrawal
6d040d330c
lint: Add --list arg which lists all the registered linters.
2019-06-18 11:32:04 -07:00
Aman Agrawal
6457c1f7c6
lint: Generalize --skip arg and move logic to zulint/command.
2019-06-18 11:32:04 -07:00
Aman Agrawal
995b357cde
lint: Add --only agr to run only the specified linters.
2019-06-18 11:32:04 -07:00
Aman Agrawal
6b73926e93
lint: Add --skip arg to replace --no-gitlint/mypy.
...
Use --skip=gitlint,mypy instead of --no-gitlint/mypy.
2019-06-18 11:32:04 -07:00
Aman Agrawal
426a222b7e
lint: Rename --verbose to --verbose-timing.
2019-06-18 11:32:04 -07:00
Aman Agrawal
dcd46f1c11
lint: Move shebang_rules out of `RuleList` class to generalize it.
...
shebang_rules was moved to custom_check.py. Also add shebang_rules only
to those rules which need it.
2019-06-18 11:27:59 -07:00
Aman Agrawal
db25c0c2ca
lint: Combine functions in custom_rules into RuleList class.
...
This makes linting rules in zulint more general. Make necessary
changes in tools/lint and tools/custom_check.py to run with the new
RuleList class.
Modify tests for `RuleList` class. Tests only include minor changes to
test with the new class.
2019-06-18 11:27:50 -07:00
Aman Agrawal
a1fadc28ba
lint: Make `custom_rules.py` pass all lint checks.
...
The functions here weren't checked by all linters when they were in
`custom_check.py`. Hence, modified to pass all lint checks.
2019-05-29 16:53:59 -07:00
Aman Agrawal
90c3578a88
lint: Move `custom_check_file` from `custom_check.py` to `custom_rules.py`.
2019-05-29 16:53:59 -07:00
Aman Agrawal
42efb60665
lint: Extract general funcs from custom_check.py to zulint/custom_rules.py.
2019-05-29 16:53:59 -07:00
Aman Agrawal
337060de01
lint: Move runnable code form `pyflakes.py` to `zulint/linters`.
...
Extract runnable code from `linter_lib/pyflakes.py` and move it to
`zulint/linters`. This keeps zulip specific pyflakes config separate
form zulint.
2019-05-29 16:53:59 -07:00
Rohitt Vashishtha
eb44b7d69d
linter: Do not lint scripts parsed with tail (like dev-motd).
2019-05-27 12:40:02 -07:00
Anders Kaseorg
ee8ff4df66
tools: Remove unused imports.
...
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2019-02-02 17:10:31 -08:00
Tim Abbott
2558f101af
docs: Add documentation for `if False` mypy pattern in scripts.
...
This should help make it clear what's going on with these scripts.
2018-12-17 11:12:53 -08:00
Tim Abbott
209df75ffa
lint: Enforce use of Python 2 style typing in zulint.
...
This is intended to be extracted as an external project that supports
Python 2+3.
2018-12-17 11:00:08 -08:00
Tim Abbott
6b69cc0b39
lint: Run mypy as part of main linter.
...
To support this, we add a pass_targets option to the main linter
library, because with current mypy, it's generally counterproductive
to pass the list of files in (can produce spurious errors; isn't
faster).
2018-12-16 21:52:53 -08:00
Tim Abbott
458c17868f
zulint: Move pycodestyle runner code to library.
...
This way, only the Zulip project's specific configuration ends up
living in pep8.py.
2018-08-04 19:54:18 -07:00
Tim Abbott
3b53ddf779
zulint: Stop importing color codes from zulip_tools.py.
...
This is I think the final dependency that zulint/ has on the rest of
the project.
2018-08-04 19:53:53 -07:00
Tim Abbott
c0beeebc3e
zulint: Move printer.py module to tools/zulint.
...
At this point, tools/linter_lib is intended to be the directory of
Zulip-specific code.
2018-08-04 19:53:53 -07:00
Tim Abbott
55ba434ecb
zulint: Extract LinterConfig class to zulint.
2018-08-04 19:53:53 -07:00
Tim Abbott
f74bb8a9b2
zulint: Extract run_parallel and do_lint.
2018-08-04 19:53:53 -07:00
Tim Abbott
acf8ec492d
zulint: Extract common linter argument parsing logic.
...
The remaining code is Zulip-specific business logic.
2018-08-04 19:53:53 -07:00
Tim Abbott
1fcc2a6ea4
zulint: Move lister.py to tools/zulint.
...
This is preparatory refactoring work for being able to extract the
linter as an external project called "zulint".
2018-08-04 19:53:53 -07:00