突然 Jslint 插件拒绝工作(JSLint 只能在 JavaScript 上运行......)

Suddenly Jslint plugin refuses to work (JSLint can operate only on JavaScript....)

我的记事本++的JSLint插件突然停止工作了。 每当我尝试解析 .js 文件时,它都会输出此警告:

JSLint can operate only on JavaScript, HTML or CSS files.

文件名为main.js,显然是javascript文件。 它拒绝 任何 扩展名为 .js 的文件。 它在 .css.html 文件上正常工作,但在 .json个.

我没有更改任何扩展名,有任何解决此问题的建议吗?

这是 Notepad++ 的 JSLint 插件与最新的 Notepad++ 版本之间的不兼容性。 Notepad++ 的 JSLint 插件需要修复才能在 Notepad++ 中正确使用新文件类型。

如果勾选 the JSLint Plugin for Notepad++ source code:

    if (type != L_JS && type != L_HTML && type != L_CSS) {
        ::MessageBox(
            g_nppData._nppHandle, 
            TEXT("JSLint can operate only on JavaScript, HTML or CSS files."),
            TEXT("JSLint"),
            MB_OK | MB_ICONINFORMATION
        );
        return;
    }

您还可以在 Notepad_plus_msgs.h 文件中看到插件中包含的文件类型列表:

enum LangType {L_TXT, L_PHP , L_C, L_CPP, L_CS, L_OBJC, L_JAVA, L_RC,\
           L_HTML, L_XML, L_MAKEFILE, L_PASCAL, L_BATCH, L_INI, L_NFO, L_USER,\
           L_ASP, L_SQL, L_VB, L_JS, L_CSS, L_PERL, L_PYTHON, L_LUA,\
           L_TEX, L_FORTRAN, L_BASH, L_FLASH, L_NSIS, L_TCL, L_LISP, L_SCHEME,\
           L_ASM, L_DIFF, L_PROPS, L_PS, L_RUBY, L_SMALLTALK, L_VHDL, L_KIX, L_AU3,\
           L_CAML, L_ADA, L_VERILOG, L_MATLAB, L_HASKELL, L_INNO, L_SEARCHRESULT,\
           L_CMAKE, L_YAML,\
           // The end of enumated language type, so it should be always at the end
           L_EXTERNAL};

插件正在尝试确保该文件是受支持的文件类型之一,直到现在都没有问题。

但最新的 Notepad++ 版本包括 these changes,其中添加了几个与此问题相关的新 'file types'(L_JSONL_JAVASCRIPT)。现在最新的Notepad++版本中的文件类型列表是:

enum LangType {L_TEXT, L_PHP , L_C, L_CPP, L_CS, L_OBJC, L_JAVA, L_RC,\
           L_HTML, L_XML, L_MAKEFILE, L_PASCAL, L_BATCH, L_INI, L_ASCII, L_USER,\
           L_ASP, L_SQL, L_VB, L_JS, L_CSS, L_PERL, L_PYTHON, L_LUA,\
           L_TEX, L_FORTRAN, L_BASH, L_FLASH, L_NSIS, L_TCL, L_LISP, L_SCHEME,\
           L_ASM, L_DIFF, L_PROPS, L_PS, L_RUBY, L_SMALLTALK, L_VHDL, L_KIX, L_AU3,\
           L_CAML, L_ADA, L_VERILOG, L_MATLAB, L_HASKELL, L_INNO, L_SEARCHRESULT,\
           L_CMAKE, L_YAML, L_COBOL, L_GUI4CLI, L_D, L_POWERSHELL, L_R, L_JSP,\
           L_COFFEESCRIPT, L_JSON, L_JAVASCRIPT,\
           // The end of enumated language type, so it should be always at the end
           L_EXTERNAL};

总而言之,需要修改 Notepad++ 的 JSLint 插件以正确识别 javascript/json 文件。如果是一个活跃的项目,我想解决这个问题的正确方法应该是 open an issue。我想您尝试过直接从菜单中指定一种语言作为解决方法,但它没有用。

为了阐明其他评论中提到的解决方法,请使用“语言”菜单将 .js 文件的语言设置为 CSS。该插件按预期识别并检查 javascript。

将语言设置为 HTML 似乎也可行,但 CSS 突出显示更有用 IMO。

这适用于 Notepad++ v6.8.6、JSLint v0.8.1.117。

上一版JSLint Plugin已解决,您可以在sourceforge下载并安装上一版JSLint Plugin for Notepad++,并手动安装(下载后见txt文件)

最佳。