2014-12-15 16 views
16

Mi piacerebbe che scalac interrompa la compilazione al primo errore. Ho trovato un gran numero di casi in cui tutti gli errori successivi sono causati direttamente dal primo errore, quindi quelli successivi sono solo rumore e vorrei rimuoverlo.Arresta il compilatore Scala al primo errore

C'è un'opzione che posso passare a scalac per fare questo?

Se è importante, sto lavorando a un progetto di Play Framework e alla creazione tramite l'attivatore (utilizzando ~run per ricostruire automaticamente le modifiche).

+1

Il problema con questo è che se ci sono due errori separati, dovrai costruirlo due volte per scoprirli entrambi. Con tempi di costruzione lunghi, non sarebbe divertente. – Pokechu22

+3

Buon punto. Anche se di solito devo creare più volte, comunque, poiché spesso non è chiaro se gli errori dopo il primo sono errori reali o solo effetti a cascata del primo errore. – Kat

risposta

17

In SBT questo è fatto molto semplicemente dal seting l'impostazione maxErrors:

maxErrors := 1 

Se si desidera impostare temporaneamente per la sessione corrente, basta fare:

set maxErrors := 1 

poco prima di fare ~run

+0

Ciò è utile quando si usa sbt ma non è applicabile all'uso diretto di scalac. Qualche idea su come SBT implementa questo? –

+2

Questo è vero, ma si applica al quesiton di OP, dato che egli ** fa ** usa sbt (tramite * Activator *). Sfortunatamente, sembra che sbt implementa questa funzione puramente facendo in modo che il suo logger ignori gli errori riportati da 'scalac' una volta raggiunto' maxErrors'. Quindi sì, sì, sei sfortunato se stai usando 'scalac' direttamente (ma in questo caso puoi usare' -XPrompt' come suggerito da ntalbs nella risposta che ha eliminato). –

+0

Per quanto ne so, 'scalac' non ha un'opzione che consenta questo. –

Problemi correlati