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.
