Puede agregarlo usted mismo a JSLint si lo desea, aunque ese límite es Evil.
Aquí hay una manera rápida y sucia con la versión actual:
La ruta que voy a tomar es secuestrar bloque de la función token
switch
para /*
comentarios de estilo. Eso es at line 1276 currently:
case '/*':
for (;;) {
i = source_row.search(lx);
...
cambio de dejar que eso para buscar los comentarios que se parecen a /*ignore:true */
en una línea por sí mismos (aunque técnicamente la true
medio puede estar en cualquier lugar en la línea en este caso, aunque la línea /*ignore:false */
tiene a estar en línea por sí mismo, así que pretendamos que eso es válido para ambos).
Ejemplo mal, no pelusa-código:
function spam()
{
var sand = "sand";
/*ignore:true */
var spud = "spud";
/*ignore:false */
window.console.log(sand);
}
Si encontramos /*ignore:true */
, Saltémonos líneas hasta que encontremos uno con /*ignore:false */
con /*ignore:...
como los primeros caracteres de la línea. Hasta esa declaración falsa en una línea en sí misma, ignoramos todo.
case '/*':
// Opening /* has already been sliced.
if (source_row.startsWith("ignore:true")) {
do {
if (console.log) { console.log(source_row) };
} while (next_line() && !source_row.trim().startsWith("/*ignore:false"));
} else {
// Put in the code that was originally there
}
break;
Eso es feo, pero parece estar funcionando.
Ahora esto puede causar problemas. Por ejemplo, si usted tiene una declaración var
en una sección se ignora y utilizarlo más adelante, JSLint_Hacked se quejará de que myVar was used before it was defined.
Ejemplo:
/*jslint white:true, sloppy:true, browser:true */
function spam()
{
var sand = "spam";
/*ignore:true */
var spud = "spud";
/*ignore:false */
window.console.log(sand + spud);
}
Así que ese tipo de cosas podría ser mala.
Y solo usaría esto en los casos en los que está forzosamente forzado a hilar todo, pero por alguna razón no tiene el poder de arreglar lo que está en cada archivo, aunque usted tiene la capacidad de editarlo , curiosamente, como en este caso con código ofuscado. Todo este asunto de ignore
es waaay cutre.
Necesito pasar más tiempo dentro de JSLint para saber cómo funciona realmente, pero la función next_line()
parece no ser destructiva. Es decir, podría (y debería) manejar esto en la función do_jslint()
con directivas de estilo "reales" /*jslint ignore:true */
, pero luego debe manejar los efectos secundarios cuando llama a la función advance()
. El truco que estoy usando aquí fue mucho más fácil, pero también es mucho más más feo.
Marque esta [http://stackoverflow.com/questions/599859/jslint-control-comments-selective-ignore/13175495#13175495][1] [1]: http://stackoverflow.com/questions/599859/jslint-control-comments-selective-ignore/13175495#13175495 – napoleonss