2015-11-06 10 views
20

All'improvviso il plugin JSLint del mio blocco note ++ si è fermato per funzionare. ogni volta che provo ad analizzare un file .js, è uscita questo avvertimento:Improvvisamente il plugin Jslint si rifiuta di funzionare (JSLint può funzionare solo su JavaScript ....)

JSLint può operare solo su file CSS JavaScript, HTML o.

il file è denominato main.js, ed è ovviamente un file javascript. Rifiuta qualsiasi file con estensione .js. Funziona regolarmente su .css o .html file, ma non su .json uni.

Non ho modificato alcuna estensione, nessun suggerimento per risolvere questo problema?

+0

Installato oggi per la prima volta e ricevo lo stesso messaggio di errore. – Olesma

+0

Questo è successo per me dopo aver installato l'ultimo aggiornamento. Penso di essere sul 6,8.3, e ora sono su 6.8.6, quindi potrebbe essere correlato alla versione. – Necreaux

+0

Appena installato JsLint 0.8.1.117 su Blocco note 6.7.3: Non viene visualizzato il messaggio di errore. –

risposta

19

Questa è un'incompatibilità tra il plugin JSLint per Notepad ++ e le ultime versioni di Notepad ++. Il plugin JSLint per Notepad ++ deve essere corretto per funzionare correttamente con i nuovi tipi di file in Notepad ++.

Se si controlla 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; 
    } 

Si può vedere anche nel file Notepad_plus_msgs.h l'elenco dei tipi di file inclusi nel plugin:

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

Il plugin sta cercando di assicurarsi che il file sia uno dei tipi di file supportati, che fino ad ora andava bene.

Ma le ultime versioni di Notepad ++ includono these changes che aggiungono un paio di nuovi 'tipi di file' (L_JSON e L_JAVASCRIPT) relativi a questo problema. Ora la lista tipo di file nell'ultima Notepad ++ versioni sono:

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

In sintesi, il plugin per Notepad ++ JSLint deve essere modificato per identificare correttamente i file javascript/JSON. Se è un progetto attivo il modo corretto per risolvere questo dovrebbe essere a open an issue, credo. Suppongo che tu abbia provato ad assegnare direttamente una lingua dal menu come soluzione alternativa ma non ha funzionato.

+2

Assegnare la lingua dal menu ha funzionato per me, grazie. – Mike

+4

Funziona se assegno HTML o CSS come lingua. Non funzionerà per JS e JSON – gerryino

+0

@gerryino, lo stesso qui. – GaTechThomas

5

Per chiarire la soluzione menzionata in altri commenti, utilizzare il menu Lingua per impostare la lingua del file .js su CSS. Il plugin riconosce e blocca il javascript come previsto.

Anche l'impostazione della lingua in HTML sembra funzionare, ma l'evidenziazione CSS è IMO più utile.

Questo funziona con Notepad ++ v6.8.6, JSLint v0.8.1.117.

11

Questo è risolto nell'ultima versione di JSLint plugin, è possibile scaricare e installare l'ultima versione di JSLint Plugin per Notepad ++ a sourceforge, e installarlo manualmente (vedi file txt quando scaricato)

migliore.