Подтвердить что ты не робот

Вдруг плагин Jslint отказывается работать (JSLint может работать только на JavaScript...)

Внезапно плагин JSLint моего блокнота ++ прекратил работать. Всякий раз, когда я пытаюсь разобрать файл .js, он выводит это предупреждение:

JSLint может работать только с файлами JavaScript, HTML или CSS.

Файл имеет имя main.js, и это явно файл javascript. Он отказывается от любого файла с расширением .js. Он регулярно работает в файлах .css или .html, но не на .json.

Я не изменял расширение, какое-либо предложение исправить это?

4b9b3361

Ответ 1

Это несовместимость между плагином JSLint для Notepad ++ и последними версиями Notepad ++. Плагин JSLint для Notepad ++ должен быть исправлен для правильной работы с новыми типами файлов в Notepad ++.

Если вы проверите плагин JSLint для исходного кода Notepad ++:

    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 ++ включают эти изменения, которые добавляют пару новых "типов файлов" (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};

В целом, JSLint Plugin для Notepad ++ необходимо изменить, чтобы правильно определить файлы javascript/json. Если это активный проект, правильный способ решить это должен быть открыть проблему, я думаю. Я полагаю, что вы попытались присвоить язык непосредственно из меню в качестве обходного пути, но это не сработало.

Ответ 2

Это решается в последней версии JSLint Plugin, вы можете загрузить и установить последнюю версию JSLint Plugin для Notepad ++ на sourceforge и вручную установить ее ( см. txt файл при загрузке)

Бест.

Ответ 3

Чтобы прояснить обходное решение, упомянутое в других комментариях, используйте меню "Язык", чтобы установить язык .js файла в CSS. Плагин распознает и выравнивает javascript, как ожидалось.

Настройка языка HTML также работает, но подсветка CSS более полезна IMO.

Это работает с Notepad ++ v6.8.6, JSLint v0.8.1.117.