如果你願意,你可以自己添加這個到JSLint,儘管這是Evil的邊界。
這裏有一個快速和骯髒的方式與當前版本:
我會走的路線是劫持token
功能的switch
塊/*
風格的註釋。這是at line 1276 currently:
case '/*':
for (;;) {
i = source_row.search(lx);
...
讓我們改變,要尋找那些看起來像/*ignore:true */
上線自己(雖然在技術上的true
一半可以在這種情況下,線上的任何地方的意見,雖然/*ignore:false */
線有到本身就是一條線,所以讓我們假裝兩者都成立)。
例不良,不起毛的失敗代碼:
function spam()
{
var sand = "sand";
/*ignore:true */
var spud = "spud";
/*ignore:false */
window.console.log(sand);
}
如果我們發現/*ignore:true */
,讓我們跳過線,直到我們找到一個與/*ignore:false */
與/*ignore:...
就行的第一個字符。在此之前,我們忽略的所有內容。
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;
這是醜陋的,但似乎工作。
現在這可能會導致問題。例如,如果你在你忽略了,後來用它一節一var
聲明,JSLint_Hacked會抱怨myVar was used before it was defined.
例子:
/*jslint white:true, sloppy:true, browser:true */
function spam()
{
var sand = "spam";
/*ignore:true */
var spud = "spud";
/*ignore:false */
window.console.log(sand + spud);
}
這樣那樣的東西能得到討厭。
而且我只會在你瘋狂地被迫擦掉所有東西的情況下使用它,但由於某種原因,你沒有權力修復每個文件中的內容,儘管你可以編輯它奇怪的是,就像在這種情況下使用混淆代碼一樣。這整個ignore
的事情是waaay seedy。
我需要花更多時間在JSLint裏面來了解它是如何工作的,但next_line()
函數似乎是非破壞性的。也就是說,在「實」 /*jslint ignore:true */
風格指令的do_jslint()
功能,您可以(也應該)處理這個問題,但你必須在調用advance()
函數來處理的副作用。我在這裏使用的黑客更容易,但也是很多醜陋。
檢查此 [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 2012-11-01 15:01:36