我已经设法让两个 lint 程序使用 notepad++ 的 NppExec 插件运行。
NppExec插件通常默认安装,可以在plugins -> NppExec下找到。 (使用 NppExec 0.3 RC1 和 Notepad++ 5.1+)。
1) JSLint
首先从http://www.jslint.com下载WSH version of jslint。
修改文件最后部分如下:
(function() {
if(!JSLINT(WScript.StdIn.ReadAll(),{passfail:false})) {
var e;
for(var i in JSLINT.errors) {
e=JSLINT.errors[i];
WScript.StdOut.WriteLine('Lint at line '+(e.line+1)+' character '+(e.character+1)+': '+e.reason);
WScript.StdOut.WriteLine(' '+(e.evidence||'').replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1"));
}
WScript.Quit(1);
}
}());
(Pre-modified version here)
这会导致 JSLint 输出所有错误,而不仅仅是第一个错误。
接下来,Notepad++ 的 NppExec 不允许使用 StdIn,所以我写了一个 batch file 来实际执行命令。
这也允许我添加一个插入所有 javascript 文件之前的配置文件。选项可见here。
批处理文件如下所示:
@copy /b "C:\Program Files\jslint\conf.txt"+%1 "C:\Program Files\jslint\lastoutput.txt" > temp.txt
@cscript /Nologo "C:\Program Files\jslint\jslint.js" < "C:\Program Files\jslint\lastoutput.txt"
您可能需要根据您放置 jslint.js 文件的位置来修改路径。
conf.txt 文件如下所示:
/*jslint forin:true*/
确保此行末尾没有回车。如果有回车,则所有行数都会减一。
最后,我在 NppExec 中输入的命令是:
"C:\Program Files\jslint\jslint.bat" "$(FULL_CURRENT_PATH)"
2) Javascript Lint
Javascript lint 是一个稍微不那么严格的解析器,并且更容易实现。
首先从http://www.javascriptlint.com/download.htm 获取windows 版本的副本并解压缩。
那么NppExec命令就是:
"C:\Program Files\JavascriptLint\jsl.exe" -conf "C:\Program Files\JavascriptLint\jsl.default.conf" -process "$(FULL_CURRENT_PATH)"
(注意:大多数 Javascript Lint 指令都会在命令末尾添加“pauseatend”,我发现这会导致 Notepad++ 出现问题,所以我将其关闭)
希望这对某人有所帮助,
干杯,
安迪。