web-dev-qa-db-ja.com

突然、Jslintプラグインが機能しなくなりました(JSLintはJavaScriptでのみ動作できます...)

突然、notepad ++のJSLintプラグインが機能しなくなりました。 .jsファイルを解析しようとすると、次の警告が出力されます。

JSLintは、JavaScript、HTML、またはCSSファイルでのみ動作します。

このファイルの名前はmain.jsで、明らかにjavascriptファイルです。 。js拡張子のanyファイルを拒否します。 。cssまたは。htmlファイルでは定期的に機能しますが、。jsonファイルでは機能しません。

私は拡張機能を変更しませんでした、これを修正するための提案はありますか?

21
gerryino

これは、Notepad ++用のJSLintプラグインと最後のNotepad ++バージョンの間の非互換性です。 Notepad ++用のJSLintプラグインは、Notepad ++の新しいファイルタイプで正しく機能するように修正する必要があります。

チェックした場合 Notepad ++ソースコード用のJSLintプラグイン

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

プラグインは、ファイルがサポートされているファイルタイプの1つであることを確認しようとしていますが、これまでは問題ありませんでした。

しかし、最後のNotepad ++バージョンには これらの変更 が含まれており、この問題に関連するいくつかの新しい「ファイルタイプ」(L_JSONおよびL_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ファイルを正しく識別するように変更する必要があります。がアクティブなプロジェクトである場合、これを解決する適切な方法は 問題を開く であるはずです。回避策としてメニューから直接言語を割り当てようとしたが、うまくいかなかったと思います。

19
artberri

これはJSLintプラグインの最後のバージョンで解決されています。Notepad++用のJSLintプラグインの最後のバージョンを sourceforge でダウンロードしてインストールし、手動でインストールできます(ダウンロード時にtxtファイルを参照)

ベスト。

11
David

他のコメントに記載されている回避策を明確にするには、[言語]メニューを使用して.jsファイルの言語をCSSに設定します。プラグインは、JavaScriptを認識し、期待どおりにリントします。

言語をHTMLに設定することも機能しているようですが、CSSの強調表示はIMOの方が便利です。

これは、Notepad ++ v6.8.6、JSLintv0.8.1.117で機能します。

5
Trevedhek