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.
