2015-11-06 32 views
20

突然,我的記事本++的JSLint插件停止工作。 每當我試圖解析.js文件,它輸出這樣的警告:突然Jslint插件拒絕工作(JSLint只能在JavaScript上操作....)

的JSLint只能於JavaScript,HTML和CSS文件進行操作。

文件名爲main.js,這顯然是一個JavaScript文件。 它拒絕任何文件與.js擴展名。 它定期工作於.css.html文件,但不在.json ones。

我沒有更改任何擴展名,任何解決此問題的建議?

+0

第一次安裝它,我得到相同的錯誤信息。 – Olesma

+0

安裝最新更新後發生這種情況。我認爲我在6.8。3,現在我在6.8.6上,所以它可能與版本有關。 – Necreaux

+0

剛剛在記事本6.7.3上安裝了JsLint 0.8.1.117:我沒有收到錯誤信息。 –

回答

19

這是用於Notepad ++的JSLint插件和最後一個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)。現在,在最新的記事本++版本是文件類型列表:

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的插件記事本++需要進行修改,以正確識別的JavaScript/JSON文件。如果是一個活躍的項目,解決這個問題的正確方法應該是open an issue,我想。我想你嘗試從菜單中直接分配一種語言作爲解決方法,但它不起作用。

+2

從菜單中指定語言對我有效,謝謝。 – Mike

+4

它工作如果我分配HTML或CSS作爲語言。它不適用於JS和JSON – gerryino

+0

@gerryino,這裏也一樣。 – GaTechThomas

5

要澄清其他註釋中提到的解決方法,請使用語言菜單將.js文件的語言設置爲CSS。該插件可以根據預期識別並提供JavaScript。

將語言設置爲HTML也似乎有效,但CSS突出顯示更有用IMO。

這適用於Notepad ++ v6.8.6,JSLint v0.8.1.117。

11

這在JSLint的插件的最新版本解決了,你可以在sourceforge下載並安裝插件的JSLint的最後一個版本的記事本+ +,並手動安裝(見txt文件下載時)

最佳。