33

我已经看到其他文本编辑器使用扩展来允许语法检查器,例如JSLint,这可以使用 Notepad++ 吗?

4

3 回答 3

44

我已经设法让两个 lint 程序使用notepad++NppExec插件运行。

NppExec 插件通常默认安装,可以在 plugins -> NppExec 下找到。(使用 NppExec 0.3 RC1 和 Notepad++ 5.1+)。

1) JSLint

首先从http://www.jslint.com下载jslint 的 WSH 版本。 修改文件最后部分如下:

(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);
    }
}());

(此处为预修改版本)
这会导致 JSLint 输出所有错误,而不仅仅是第一个错误。

接下来,Notepad++ 的 NppExec 不允许使用 StdIn,所以我编写了一个批处理文件来实际执行命令。
这也允许我添加一个插入所有 javascript 文件之前的配置文件。选项可以在这里看到。批处理文件如下所示:

@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 皮棉

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++ 中引起了问题,所以我把它关掉了)

希望这可以帮助某人,
干杯,
安迪。

于 2009-06-26T00:23:14.520 回答
41

你可以试试记事本++的 JSLint 插件:

https://sourceforge.net/projects/jslintnpp/

于 2010-12-02T17:00:18.327 回答
4

安装插件后,您应该转到:

插件 -> JSLint -> JSLint 选项

并将“选择 JavaScript lint 工具:”更改为JSHint

JSHint 给出了很多没有意义的“错误”。

于 2014-06-19T12:40:05.310 回答