Extending jshint with custom checks
Asked Answered
D

2

11

In the Python world there are multiple static code analysis tools that can be easily extended with custom checks via writing plugins or extensions, for example:

In the JavaScript world, as far as I understand, jshint is the number one tool for static code analysis. I've been using it for a while and it definitely helps to find lots of code style violations, but, recently, I've encountered the need to extend jshint with a custom check. How can I do that? Is it extendable?


I've looked through the documentation and the only thing I've found is how to write a custom reporter which is not what I'm looking for.

As a workaround, I guess I can fork the jshint repo, implement the check, and use the fork in the project maintaining updates from the upstream.

Dilapidation answered 3/12, 2014 at 17:31 Comment(1)
Of course, you can also fork it, add your check and create a pull request if you think it's a generally worthy check. :)Jody
H
3

The ability to create custom JSHint rules has been discussed on the JSHint Google group, but that thread has had no activity in 17 months. Your only at this time is to use ESLint. ESLint was created with the explicit purpose of making each of the JSHint rules pluggable, and I think at this time, every JSHint rules is available in ESLint.

Hanhana answered 14/12, 2014 at 1:40 Comment(1)
Decided to accept your answer as being more specific, but award a bounty to @Bradgnar for the initial idea about ESLint. Hope this sounds fair to you. Thanks again.Dilapidation
P
7

If I were you I would try to use something like ESLint. The ES stands for ECMAScript, which is where the rules for the JS language come from. Every single rule in ESLint is standalone (so you can use what you like), and you can use the default rules as a guideline or skeleton to create your own rule and plug it in.

Try ESLint.

Polymer answered 7/12, 2014 at 20:23 Comment(1)
Great! ESLint is easily customizeable, you can plug in and out built-in rules, custom rules - awesome. Thank you very much!Dilapidation
H
3

The ability to create custom JSHint rules has been discussed on the JSHint Google group, but that thread has had no activity in 17 months. Your only at this time is to use ESLint. ESLint was created with the explicit purpose of making each of the JSHint rules pluggable, and I think at this time, every JSHint rules is available in ESLint.

Hanhana answered 14/12, 2014 at 1:40 Comment(1)
Decided to accept your answer as being more specific, but award a bounty to @Bradgnar for the initial idea about ESLint. Hope this sounds fair to you. Thanks again.Dilapidation

© 2022 - 2024 — McMap. All rights reserved.