So would there be any way to write a rule to check for eslint-disable
blocks, or would the disabled rule always block me?

On Thu, Sep 25, 2014 at 7:57 PM, Nicholas Zakas <[email protected]>
wrote:

> Oh yeah, this makes absolute sense. /*eslint-disable*/ disables all rules,
> including your rule that finds the comments.
> On Sep 25, 2014 2:18 PM, "Peter deHaan" <[email protected]> wrote:
>
>> Ah, OK, it only works when I specify a rule in the /* eslint-disable */
>> block. Seems fishy:
>>
>>     /*eslint-disable */
>>     var Baz = 3;
>>     /* eslint-enable */
>>
>> Gives me this (which is bad):
>>     $ eslint --rulesdir rules app.js; echo $?
>>     0
>>
>>
>> But...
>>
>>     /*eslint-disable no-unused-vars */
>>     var Baz = 3;
>>     /* eslint-enable */
>>
>> Gives me this (which is good):
>>     $ eslint --rulesdir rules app.js; echo $?
>>
>>     app.js
>>       12:0  error  Unexpected `eslint-disable` in content
>>  no-eslint-disable
>>       14:0  error  Unexpected `eslint-enable` in content
>> no-eslint-disable
>>
>>     ✖ 2 problems
>>
>>     1
>>
>>
>> On Thu, Sep 25, 2014 at 2:02 PM, Peter deHaan <[email protected]>
>> wrote:
>>
>>> That gives me:
>>>
>>> $ DEBUG=eslint:* eslint --rulesdir rules app.js
>>>   eslint:cli-engine Loading rules from rules +0ms
>>>   eslint:cli-engine Processing app.js +8ms
>>>   eslint:cli-engine Linting /Users/pdehaan/dev/tmp/eslint-custom/app.js
>>> +0ms
>>>   eslint:config Constructing config for
>>> /Users/pdehaan/dev/tmp/eslint-custom/app.js +1ms
>>>   eslint:config Using .eslintrc files +0ms
>>>   eslint:config Using /Users/pdehaan/dev/tmp/eslint-custom/.eslintrc +0ms
>>>   eslint:config Merging command line environment settings +4ms
>>> errata! `eslint-disable`
>>> errata! `eslint-enable`
>>>
>>> app.js
>>>   5:4  error  foo is defined but never used  no-unused-vars
>>>
>>> ✖ 1 problem
>>>
>>>
>>> It's a bit perplexing.
>>> My console log works, but not the context.report(). The context.report()
>>> works if I move it outside of that `if` block, but then obviously throws
>>> too many warnings (naturally)...
>>>
>>> OK, I think I sorted it out. It just doesn't work.
>>> Changing my source code (and rule) from "eslint-disable" to
>>> "fslint-disable" makes it work as expected, and now I get this:
>>>
>>>   12:0   error  Unexpected `eslint-disable` or `eslint-enable` in
>>> content  no-eslint-disable
>>>   14:0   error  Unexpected `eslint-disable` or `eslint-enable` in
>>> content  no-eslint-disable
>>>
>>>
>>> :shrug:
>>>
>>>
>>> On Thu, Sep 25, 2014 at 1:41 PM, Nicholas Zakas <
>>> [email protected]> wrote:
>>>
>>>> Try running with
>>>>
>>>> ```
>>>> $ DEBUG=eslint:* eslint --rulesdir rules app.js
>>>> ```
>>>>
>>>> And see what info you find.
>>>>
>>>> On Thu, Sep 25, 2014 at 12:37 PM, Peter deHaan <[email protected]>
>>>> wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> I'm trying to create a custom ESLint rule (v0.8.2) which prevents the
>>>>> use of /* eslint-disable */ comments, but for some reason my
>>>>> context.report() is not reporting violations as errors/warnings.
>>>>> Does anybody have a couple minutes to take a look?
>>>>>
>>>>> My .eslintrc file is pretty simple:
>>>>>
>>>>> env:
>>>>>   node: true
>>>>> rules:
>>>>>   no-alert: 1
>>>>>   no-eslint-disable: 2
>>>>>
>>>>>
>>>>>
>>>>> My rules/no-eslint-disable.js is:
>>>>>
>>>>> "use strict";
>>>>> module.exports = function (context) {
>>>>>   var eslintEnableDisable = /^eslint-(enable|disable)/;
>>>>>
>>>>>   function checkComment(node) {
>>>>>     var value = node.value.trim();
>>>>>     if (eslintEnableDisable.test(value)) {
>>>>>       context.report(node, "Unexpected `eslint-disable` or 
>>>>> `eslint-enable` in content.");
>>>>>       console.error("errata!");
>>>>>     }
>>>>>   }
>>>>>
>>>>>   return {
>>>>>     "BlockComment": checkComment,
>>>>>     "LineComment": checkComment
>>>>>   };};
>>>>>
>>>>>
>>>>>
>>>>> My app.js test case is:
>>>>>
>>>>> /** * This is a copyright header. */
>>>>> var foo = "bar"; // nice var bro
>>>>> /*and a regular doc comment which may span multiple lines or include 
>>>>> commented out code.var bar = "foo"; // circular much? */
>>>>> /* eslint-disable */var window = alert;/* eslint-enable */
>>>>>
>>>>>
>>>>>
>>>>> When I run ESLint with my custom rule, I see my console.error()s but
>>>>> not the warnings/errors via context.report().
>>>>>
>>>>> $ eslint --rulesdir rules app.js
>>>>> errata! `eslint-disable`
>>>>> errata! `eslint-enable`
>>>>>
>>>>> app.js
>>>>>   5:4  error  foo is defined but never used  no-unused-vars
>>>>>
>>>>> ✖ 1 problem
>>>>>
>>>>> $ eslint -v # v0.8.2
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "ESLint" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> ______________________________
>>>> Nicholas C. Zakas
>>>> @slicknet
>>>>
>>>> Author, Professional JavaScript for Web Developers
>>>> Buy it at Amazon.com:
>>>> http://www.amazon.com/Professional-JavaScript-Developers-Nicholas-Zakas/dp/1118026691/ref=sr_1_3
>>>>
>>>
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"ESLint" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to