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



该文件名为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,它添加了几个与此问题相关的新“文件类型”(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,我想。我想您尝试过直接从菜单中分配一种语言作为解决方法,但是它没有用。

关于notepad++ - 突然Jslint插件无法正常工作(JSLint只能在JavaScript上运行...),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33568740/

10-13 07:30