javascript - 在 Notepad++ 中使用 JSLint

标签 javascript notepad++ jslint lint

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

最佳答案

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

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

1) JSLint

先下载WSH version of jslint来自 http://www.jslint.com .
修改文件的最后部分如下:

(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 代码检查

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++ 中引起问题,所以我将其关闭)

希望这对某人有帮助,
干杯,
安迪。

关于javascript - 在 Notepad++ 中使用 JSLint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1046810/

相关文章:

从 CRM 4 升级到 CRM 2011 后出现 Javascript 错误

javascript - if 语句阻止套接字向客户端发送消息

javascript - JQuery AJAX async false 在 Chrome 上不起作用

merge - Notepad++ 合并两行

regex - 删除除包含一个点的行之外的所有行

javascript - 在 CodeMirror 中禁用 JSHint 警告

javascript - 将日期时间设置为 Jquery 日期时间选择器

null - 删除 "NUL"字符

javascript - 返回语句上的 JSLint 错误

javascript - 什么是 javascript 中的数组字面量表示法,什么时候应该使用它?