2013-04-16 7 views
7

Sto lavorando a un progetto che utilizza uno styleguide specifico per javascript. Per esempio, un if/else sarebbe simile a questa:Strumento di controllo del codice JavaScript o verificatore

if(condition){ 
    // Bla bla 
} 
else { 
    // Another bla bla 
} 

Quello che sto cercando è uno strumento che mi permettesse di controllare la sintassi di un file in base a una specifica styleguide. JSHint/JSLint non si concentra sullo stile, Closure Linter non è personalizzabile e Uncrustify riformatta il file senza preavviso (e non supporta ufficialmente Javascript).

L'output migliore che potrei ottenere con questo programma sarebbe quello di Closure Linter ma con regole personalizzate. Le risposte a this similar question erano tutte sbagliate.

Esiste un tale strumento?

+1

ho pensato JSLint è principalmente una questione di stile, anche se non lo stile mostrato nel tuo esempio – user2264587

risposta

8

Se stai ancora cercando una risposta, puoi provare un progetto chiamato jscs.
È possibile personalizzare l'aspetto del proprio codice in quasi tutti gli aspetti e quelli che non si possono ancora sviluppare (spaziatura degli argomenti delle funzioni, ad esempio).

Tutto è personalizzabile tramite un file .jscsrc; il seguente è un esempio di uno dei miei progetti usarlo:

{ 
    "requireCurlyBraces":     [ "if", "else", "for", "while", "do", "switch" ], 
    "requireSpaceAfterKeywords":   [ "if", "else", "for", "while", "do", "switch" ], 
    "disallowSpaceAfterKeywords":   [], 
    "requireSpacesInsideObjectBrackets": "all", 
    "disallowSpaceAfterObjectKeys":   true, 
    "disallowImplicitTypeConversion":  [], 
    "disallowKeywords":      [ "with" ], 
    // ... 
} 

Se stai usando Grunt, sentitevi liberi di provare il mio compito per JSCS - che è grunt-jscs-checker.

BTW, the jQuery teamis using jscs :)

+1

Questo è incredibilmente utile, grazie! –

+0

Dai un'occhiata alla modifica che ho apportato. Forse è qualcosa che ti interessa! – gustavohenke

+0

Possiamo usare jscs per i file CoffeeScript? – ankakusu

0

Non esiste uno strumento che corrisponda ai tuoi desideri. JSLint sta applicando le regole di stile di Crockford (e le sue forzature), JSHint è più flessibile, in quanto puoi scegliere le regole che meglio si adattano al tuo stile di codifica, ma non è abbastanza flessibile da far rispettare qualsiasi tipo di stile.

In genere, si configura il proprio editor in modo tale da aiutare a rientrare e ad eseguire le newline nello stesso modo in cui si desidera il proprio codice. E usa il linter per controllare dove è importante (alcune regole di whitespacing, come usare Parens ...). Il ruolo di Linter è più una guardia contro gli errori stupidi da cui la tua lingua non ti impedisce.

1

Sembra che tu sia davvero dopo un JavaScript beautifier. Il controllo può essere fatto tramite "eseguilo sui file e vedere se cambiano" supportato dal controllo della versione.