Questo è il comando luacheck che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
luacheck - Documentazione luacheck
Contenuto:
ELENCO OF AVVERTENZE
Gli avvisi prodotti da Luacheck sono classificati utilizzando codici di avviso a tre cifre. Avvertimento
i codici possono essere visualizzati nell'output CLI utilizzando --codici Opzione CLI o codici opzione di configurazione.
Anche gli errori hanno codici che iniziano con zero.
?
│Codice │ Descrizione │
?
│011 │ Un errore di sintassi. │
?
│021 │ Un'opzione in linea non valida. │
?
│022 │ Un push in linea potenziato │
│ │ direttiva. │
?
│023 │ Una direttiva pop in linea aggiornata. │
?
│111 │ Impostazione di un globale indefinito │
│ │ variabile. │
?
│112 │ Mutare un globale indefinito │
│ │ variabile. │
?
│113 │ Accesso a un globale indefinito │
│ │ variabile. │
?
│121 │ Impostazione di un globale di sola lettura │
│ │ variabile. │
?
│122 │ Modifica di un globale di sola lettura │
│ │ variabile. │
?
│131 │ Globale implicitamente definito non utilizzato │
│ │ variabile. │
?
│211 │ Variabile locale non utilizzata. │
?
│212 │ Argomento non utilizzato. │
?
│213 │ Variabile di loop non utilizzata. │
?
│221 │ Si accede alla variabile locale ma │
│ │ mai impostato. │
?
│231 │ La variabile locale è impostata ma mai │
│ │ accesso. │
?
│232 │ Viene impostato un argomento ma mai │
│ │ accesso. │
?
│233 │ La variabile del loop è impostata ma mai │
│ │ accesso. │
?
│311 │ Valore assegnato a un locale │
│ │ la variabile non è utilizzata. │
?
│312 │ Il valore di un argomento non è utilizzato. │
?
│313 │ Il valore di una variabile del ciclo è │
│ │ inutilizzato. │
?
│321 │ Accesso locale non inizializzato │
│ │ variabile. │
?
│411 │ Ridefinire una variabile locale. │
?
│412 │ Ridefinire un argomento. │
?
│413 │ Ridefinizione di una variabile di ciclo. │
?
│421 │ Ombreggiatura di una variabile locale. │
?
│422 │ Seguire una discussione. │
?
│423 │ Ombreggiatura di una variabile di loop. │
?
│431 │ Shadowing di un upvalue. │
?
│432 │ Oscurando un argomento di rialzo. │
?
│433 │ Seguire un ciclo di upvalue │
│ │ variabile. │
?
│511 │ Codice irraggiungibile. │
?
│512 │ Il loop può essere eseguito al massimo │
│ │ una volta. │
?
│521 │ Etichetta non utilizzata. │
?
│531 │ Lato sinistro di un compito │
│ │ è troppo corto. │
?
│532 │ Lato sinistro di un compito │
│ │ è troppo lungo. │
?
│541 │ Un vuoto do fine bloccare. │
?
│542 │ Un vuoto if ramo. │
?
│551 │ Un'affermazione vuota. │
?
Global variabili
Per ogni file, Luacheck crea un elenco di valori globali definiti che possono essere utilizzati lì. Per impostazione predefinita
sono definiti solo i valori globali della libreria standard Lua; è possibile aggiungere globali personalizzati utilizzando
--globali Opzione CLI o globals config e la versione della libreria standard possono essere
selezionato usando --std Opzione CLI o std opzione di configurazione. Quando viene impostato un globale non definito,
mutato o accessibile, Luacheck produce un avviso.
Sola lettura globals
Per impostazione predefinita, tutti i valori globali standard tranne _G e pacchetto sono contrassegnati come di sola lettura, quindi
impostarli o modificarli produce un avviso. È possibile aggiungere globali di sola lettura personalizzati utilizzando
--read-globals Opzione CLI o read_globals opzione di configurazione.
implicitamente definito globals
Luacheck può essere configurato per considerare i globali assegnati in alcune condizioni
definito implicitamente. Quando -d/--allow_definito Opzione CLI o consentire_definito l'opzione di configurazione è
usato, tutti gli assegnamenti ai globali li definiscono; Quando -t/--allow_definito_top Opzione CLI o
consentire_definito_top viene utilizzata l'opzione di configurazione, assegnazioni ai globali nella funzione di livello superiore
l'ambito (noto anche come blocco principale) li definisce. Viene prodotto un avviso quando implicitamente
globale definito non è accessibile da nessuna parte.
moduli
I file possono essere contrassegnati come moduli utilizzando -m/--modulo Opzione CLI o modulo opzione di configurazione per
simulare la semantica del deprecato modulo funzione. Globali implicitamente definiti all'interno di a
sono considerati parte della sua interfaccia, non sono visibili all'esterno e non vengono segnalati
come inutilizzato. Non sono consentite assegnazioni ad altri globali, nemmeno a quelli definiti.
non usato variabili e valori
Luacheck genera avvisi per tutte le variabili locali inutilizzate tranne una denominata _. Inoltre
rileva le variabili impostate ma mai accessibili o accessibili ma mai impostate.
non usato valori e non inizializzata variabili
Per ogni valore assegnato a una variabile locale, Luacheck calcola un insieme di espressioni in cui si trova
potrebbe essere usato. Vengono prodotti avvisi per i valori non utilizzati (quando un valore non può essere utilizzato
ovunque) e per accedere a variabili non inizializzate (quando nessun valore può raggiungere un
espressione). Ad esempio, nel seguente snippet valore assegnato a foo sulla linea 1 non è utilizzata e
variabile bar non è inizializzato alla riga 9:
foo locale = expr1()
bar locale
se condizione() allora
foo = espressione2()
barra = espressione3()
altro
foo = espressione4()
stampa(barra)
fine
ritorna foo, bar
Secondario valori e variabili
Il valore non utilizzato assegnato a una variabile locale è secondario se la sua origine è l'ultimo elemento presente
il lato destro dell'assegnazione e viene utilizzato un altro valore di quell'elemento. Valori secondari
in genere appaiono quando il risultato di una chiamata di funzione viene inserito nelle locals e solo alcuni di essi
vengono successivamente utilizzati. Ad esempio, qui valore assegnato a b è secondario, valore assegnato a c is
utilizzato e valore assegnato a a è semplicemente inutilizzato:
locale a, b, c = f(), g()
ritorno c
Una variabile è secondaria se tutti i valori ad essa assegnati sono secondari. Nello snippet qui sopra,
b è una variabile secondaria.
Gli avvisi relativi a valori e variabili secondari non utilizzati possono essere rimossi utilizzando
-s/--no-secondari-non-utilizzati Opzione CLI o secondari_inutilizzati opzione di configurazione.
shadowing dichiarazioni
Luacheck rileva le dichiarazioni di variabili locali che oscurano le dichiarazioni precedenti, a meno che
la variabile è denominata _. Se la dichiarazione precedente rientra nello stesso ambito di quella nuova,
si chiama ridefinizione.
Nota che è non è un necessario definire una nuova variabile locale quando si sovrascrive un argomento:
funzione locale f(x)
local x = x o "default" - non valido
fine
funzione locale f(x)
x = x o "predefinito" - buono
fine
Controllate flusso e dati flusso sicurezza
Sono stati rilevati i seguenti problemi relativi al flusso di controllo e al flusso di dati:
· Codice e loop irraggiungibili che possono essere eseguiti al massimo una volta (ad esempio a causa di un
rottura incondizionata);
· Etichette non utilizzate;
· Assegnazioni sbilanciate;
· Blocchi vuoti.
· Istruzioni vuote (punto e virgola senza istruzioni precedenti).
COMANDO LINE INTERFACCIA
luacheck il programma accetta file, directory e rockspec come argomenti.
· Dato un file, luacheck lo controllerò.
· Dato -, luacheck controllerò stdin.
· Data una directory, luacheck controllerà tutti i file al suo interno, selezionando solo i file con
.lua estensione a meno che --include-file viene utilizzata l'opzione. Questa funzionalità richiede
LuaFileSystem (installato automaticamente se LuaRocks è stato utilizzato per installare Luacheck).
· Dato un Rockspec (un file con .rockspec estensione), luacheck controllerà tutti i file con
.lua estensione menzionata nel Rockspec in build.install.lua, build.install.bin e
build.modules tavoli.
L'output di luacheck è composto da report separati per ciascun file controllato e termina con a
sommario:
$ luacheck src
Controllo degli avvisi src/bad_code.lua 5
src/bad_code.lua:3:16: helper variabile inutilizzato
src/bad_code.lua:3:23: argomento di lunghezza variabile inutilizzato
src/bad_code.lua:7:10: impostazione dell'abbraccio di variabili globali non standard
src/bad_code.lua:8:10: la variabile opt era precedentemente definita come argomento alla riga 7
src/bad_code.lua:9:11: accesso alla variabile non definita hepler
Controllo src/good_code.lua OK
Controllo dell'errore src/python_code.lua 1
src/python_code.lua:1:6: previsto '=' vicino a '__future__'
Controllo degli avvisi src/unused_code.lua 9
src/unused_code.lua:3:18: argomento inutilizzato baz
src/unused_code.lua:4:8: variabile del ciclo non utilizzata i
src/unused_code.lua:5:13: variabile inutilizzata q
src/unused_code.lua:7:11: variabile del ciclo non utilizzata a
src/unused_code.lua:7:14: variabile del ciclo non utilizzata b
src/unused_code.lua:7:17: variabile del ciclo non utilizzata c
src/unused_code.lua:13:7: il valore assegnato alla variabile x non è utilizzato
src/unused_code.lua:14:1: il valore assegnato alla variabile x non è utilizzato
src/unused_code.lua:22:1: il valore assegnato alla variabile z non è utilizzato
Totale: 14 avvisi/1 errore in 4 file
luacheck esce con 0 se non si sono verificati avvisi o errori e con un numero positivo
altrimenti.
Comando linea Opzioni
Le opzioni brevi che non accettano argomenti possono essere combinate in una sola, in questo modo -qqu is
equivalente -q -q -u. Per opzioni lunghe, entrambe --opzione APPREZZIAMO or --opzione=valore può essere
Usato.
Le opzioni che accettano più argomenti possono essere utilizzate più volte; --ignorare foo --ignorare bar is
equivalente --ignorare foo bar.
Tieni presente che le opzioni che possono richiedere diversi argomenti, come ad esempio --globali, non deve essere utilizzato
immediatamente prima degli argomenti posizionali; dato --globali foo bar file.lua, luacheck andrete a
considera tutto foo, bar e file.lua globale e poi si va nel panico perché non sono rimasti nomi di file.
? ?
│Opzione │ Significato │
? ?
│-g | --no-globale │ Filtra gli avvisi relativi a │
│ │ variabili globali. │
? ?
│-u | --no-inutilizzato │ Filtra gli avvisi relativi a │
│ │ variabili e valori non utilizzati. │
? ?
│-r | --no-ridefinito │ Filtra gli avvisi relativi a │
│ │ variabili ridefinite. │
? ?
│-a | --no-argomenti-inutilizzati │ Filtra gli avvisi relativi a │
│ │ argomenti e loop non utilizzati │
│ │ variabili. │
? ?
│-s | --no-secondari-non-utilizzati │ Filtra gli avvisi relativi a │
│ │ variabili inutilizzate messe insieme │
│ │ con quelli usati. │
│ │ │
│ │ Vedi valori e variabili secondari │
? ?
│--non-sé │ Filtra gli avvisi relativi a │
│ │ implicito auto discussione. │
? ?
│--std │ Imposta le globali standard. può │
│ │ essere uno di: │
│ │ │
│ · _G - globali del Lua │
│ │ interprete luacheck │
│ │ funziona (predefinito); │
│ │ │
│ · lua51 - globali di Lua │
│ │ 5.1; │
│ │ │
│ · lua52 - globali di Lua │
│ │ 5.2; │
│ │ │
│ · lua52c - globali di Lua │
│ │ 5.2 compilato con │
│ │ LUA_COMPAT_ALL; │
│ │ │
│ · lua53 - globali di Lua │
│ │ 5.3; │
│ │ │
│ · lua53c - globali di Lua │
│ │ 5.3 compilato con │
│ │ LUA_COMPAT_5_2; │
│ │ │
│ · luajit - globali di │
│ │ LuaJIT 2.0; │
│ │ │
│ · ngx_lua - globali di │
│ │ Openresty │
│ │ modulo lua-nginx con │
│ │ LuaJIT 2.0; │
│ │ │
│ · verbale - intersezione di │
│ │ globali di Lua 5.1, Lua │
│ │ 5.2 e LuaJIT 2.0; │
│ │ │
│ · max - unione dei globali │
│ │ di Lua 5.1, Lua 5.2 e │
│ │ LuaJIT 2.0; │
│ │ │
│ · rotto - i globali hanno aggiunto │
│ │ di Busted 2.0; │
│ │ │
│ · nessuna - nessuna norma │
│ │ globali. │
│ │ │
│ │ Vedi Set of Standard │
│ │ globals │
? ?
│--globali [ ] ... │ Aggiungi valori globali personalizzati sopra │
│ │ standard. │
? ?
│--read-globals [ ] ... │ Aggiungi globali di sola lettura. │
? ?
│--nuovi-globali [ ] ... │ Imposta valori globali personalizzati. Rimuove │
│ │ Globali personalizzate aggiunte in precedenza. │
? ?
│--new-read-globals [ ] │ Imposta valori globali di sola lettura. Rimuove │
│... │ Aggiunte globali di sola lettura │
│ │ precedentemente. │
? ?
│-c | --comp Equivalente a --std max. ?
? ?
│-d | --allow-definito │ Consenti la definizione di valori globali │
│ │ implicitamente impostandoli. │
│ │ │
│ │ Vedi i globali implicitamente definiti │
? ?
│-t | --allow-definito-top │ Consenti la definizione di valori globali │
│ │ implicitamente inserendoli in │
│ │ l'ambito di livello superiore. │
│ │ │
│ │ Vedi i globali implicitamente definiti │
? ?
│-m | --modulo │ Limita la visibilità di implicitamente │
│ │ globali definiti nei loro file. │
│ │ │
│ │ Vedi moduli │
? ?
│--ignorare | -i [ ] │ Filtra gli avvisi corrispondenti │
│... │ modelli. │
? ?
│--abilitare | -e [ ] │ Non filtrare gli avvisi │
│... │ modelli corrispondenti. │
? ?
│--soltanto | -o [ ] ... │ Filtra gli avvisi che non corrispondono │
│ │ modelli. │
? ?
│--no-in linea │ Disabilita le opzioni in linea. │
? ?
│--config │ Percorso per la configurazione personalizzata │
│ │ file (predefinito: .luacheckrc). │
? ?
│--no-config │ Non cercare personalizzato │
│ │file di configurazione. │
? ?
│--nome del file │ Usa un altro nome file nell'output, │
│ │ per selezionare la configurazione │
│ │ sostituisce e per file │
│ │ filtraggio. │
? ?
│--exclude-file [ ] │ Non verificare la corrispondenza dei file │
│... │ questi modelli globbing. │
│ │ Globi ricorsivi come **/*.lua │
│ │ sono supportati. │
? ?
│--include-file [ ] │ Non controllare i file che non corrispondono │
│... │ questi modelli globbing. │
? ?
│--cache [ ] │ Percorso del file di cache. (predefinito: │
│ │ .luacheckcache). Vedere Caching │
? ?
│--nessuna cache │ Non utilizzare la cache. │
? ?
│-j | --lavori │ Controlla file in parallelo. │
│ │ Richiede LuaLanes. ?
? ?
│--formattatore │ Utilizza un formattatore personalizzato. │
│ │ deve essere un modulo │
│ │ nome o uno tra: │
│ │ │
│ · TAP - Prova qualsiasi cosa │
│ │ Formattatore di protocollo; │
│ │ │
│ · JUnit -JUnit XML│
│ │ formattatore; │
│ │ │
│ · pianura - semplice │
│ │ avviso per riga │
│ │ formattatore; │
│ │ │
│ · difetto - standard │
│ │ formattatore. │
? ?
│-q | --silenzioso │ Elimina l'output del report per i file │
│ │ senza preavviso. │
│ │ │
│ · -qq - Sopprimi l'uscita │
│ │ di avvertimenti. │
│ │ │
│ · -qqq - Solo uscita │
│ │ riassunto. │
? ?
│--codici │ Mostra i codici di avviso. │
? ?
│--intervalli │ Mostra intervalli di colonne correlate │
│ │ agli avvertimenti. │
? ?
│--no-colore │ Non colorare l'output. │
? ?
│-v | --versione │ Mostra la versione di Luacheck e il suo │
│ │ dipendenze e uscita. │
? ?
│-h | --Aiuto │ Mostra aiuto ed esci. │
? ?
Modelli
Opzioni CLI --ignorare, --abilitare e --soltanto e le opzioni di configurazione corrispondenti consentono il filtraggio
avvisi utilizzando la corrispondenza dei modelli sui codici di avviso, sui nomi delle variabili o su entrambi. Se uno schema
contiene una barra, la parte prima della barra corrisponde al codice di avviso e la parte dopo corrisponde
nome della variabile. Altrimenti, se un modello contiene una lettera o un carattere di sottolineatura, corrisponde
nome della variabile. Altrimenti corrisponde al codice di avviso. Per esempio:
?
│Modello │ Avvisi corrispondenti │
?
│4.2 │ Dichiarazioni shadowing di │
│ │ argomenti o ridefinirli. │
?
│.*_ │ Avvisi relativi alle variabili │
│ con _ suffisso. │
?
│4.2/.*_ │ Dichiarazioni shadowing di │
│ │ discussioni con _ suffisso o │
│ │ ridefinendoli. │
?
A meno che non siano già ancorati, i modelli che corrispondono ai nomi delle variabili sono ancorati su entrambi i lati e
i modelli che corrispondono ai codici di avviso sono ancorati all'inizio. Ciò consente di farlo
filtrare gli avvisi per categoria (es --soltanto 1 si concentra luacheck sugli avvisi relativi a livello globale).
Set of Standard globals
Opzione CLI --std consente di combinare i set integrati sopra descritti utilizzando +. Per esempio,
--std max è equivalente --std=lua51+lua52+lua53. Il segno più iniziale aggiunge nuovi set a
quello predefinito invece di sostituirlo. Ad esempio, --std +sballato è adatto per il controllo
testare i file che utilizzano Busted quadro di prova. È possibile definire set personalizzati di valori globali
variabile globale mutante standard nella configurazione Vedi custom_stds
Formattatori
Opzione CLI --formattatore consente di selezionare un formattatore personalizzato per luacheck produzione. Una consuetudine
formattatore è un modulo Lua che restituisce una funzione con tre argomenti: report come restituito da
luacheck modulo (vedi rapporto), array di nomi di file e tabella di opzioni. Le opzioni contengono
valori assegnati a silenzioso, colore, limitare, codici, gamme e formattatore opzioni nella CLI o
config. La funzione di formattazione deve restituire una stringa.
Caching
Se LuaFileSystem è disponibile, Luacheck può memorizzare nella cache i risultati del controllo dei file. In seguito
controlli, solo i file che sono cambiati dall'ultimo controllo verranno ricontrollati, migliorando
tempo di esecuzione in modo significativo. La modifica delle opzioni (ad esempio la definizione di valori globali aggiuntivi) non lo fa
invalidare la cache. La memorizzazione nella cache può essere abilitata utilizzando --cache Opzione o nascondiglio config
opzione. Usando --cache senza argomenti o impostazioni nascondiglio opzione di configurazione per vero set
.luacheckcache come file di cache. Notare che --cache deve essere utilizzato ogni volta luacheck is
correre, non solo alla prima manche.
Stabile interfaccia per editore i plugin e strumenti
L'interfaccia della riga di comando di Luacheck può cambiare tra versioni minori. A partire dalla 0.11.0
versione, la seguente interfaccia è garantita almeno fino alla versione 1.0.0 e dovrebbe esserlo
utilizzato dagli strumenti che utilizzano l'output Luacheck, ad esempio i plugin dell'editor.
· Luacheck deve essere avviato dalla directory contenente il file controllato.
· Il file può essere passato tramite stdin utilizzando - come argomento o utilizzando un file temporaneo. Vero
il nome file deve essere passato utilizzando --nome del file opzione.
· È necessario utilizzare un formattatore semplice. Genera un problema (avviso o errore) per riga.
· Per ottenere la posizione precisa dell'errore, --intervalli è possibile utilizzare l'opzione. Ogni riga inizia con reale
nome file (passato utilizzando --nome del file), seguito da : : - :,
where è il numero di riga in cui si è verificato il problema e - is
gamma comprensiva di colonne di token relative all'emissione. La numerazione inizia da 1. Se
--intervalli non viene utilizzato, la colonna finale e il trattino non vengono stampati.
· Per ottenere codici di avviso e di errore, --codici è possibile utilizzare l'opzione. Per ogni riga, sottostringa
tra parentesi contiene il codice di emissione di tre cifre, preceduto da E per errori e W
per gli avvertimenti. La mancanza di tale sottostringa indica un errore fatale (ad esempio errore I/O).
· Il resto della riga è un messaggio di avviso.
Se si desidera la compatibilità con la versione precedente di Luacheck, l'output di luacheck --Aiuto può essere
utilizzato per ottenere la sua versione. Se contiene string 0. .Durante la serata, è a
almeno 11 e patch è un numero qualsiasi, è necessario utilizzare l'interfaccia sopra descritta.
CONFIGURAZIONE RISORSE
luacheck tenta di caricare la configurazione da .luacheckrc file nella directory corrente. Se
non trovato, lo cercherà nella directory principale e così via, fino ad arrivare ad esso
raggiunge la radice del file system. Il percorso di configurazione può essere impostato utilizzando --config opzione, nel qual caso
verrà utilizzato durante il caricamento ricorsivo. Il caricamento della configurazione può essere disabilitato utilizzando --no-config
bandiera.
Config è semplicemente uno script Lua eseguito da luacheck. Può impostare varie opzioni tramite
assegnando a globali o restituendo una tabella con nomi di opzioni come chiavi.
Config Opzioni
┌───────────────────┬─────────────────── ───────┬── ───────────────────┐
│Opzione │ Tipo │ Valore predefinito │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│colore │ Booleano │ vero │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│codici │ Booleano │ falso │
└───────────────────┴─────────────────── ───────┴── ───────────────────┘
│formattatore │ Stringa o funzione │ "predefinito" │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│nascondiglio │ Booleano o stringa │ falso │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│posti di lavoro │ Intero positivo │ 1 │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│exclude_files │ Matrice di stringhe │ {} │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│include_files │ Matrice di stringhe │ (Includi tutti i file) │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│globale │ Booleano │ vero │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│non usato │ Booleano │ vero │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│ridefinito │ Booleano │ vero │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│argomenti_utilizzati │ Booleano │ vero │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│secondari_inutilizzati │ Booleano │ vero │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│auto │ Booleano │ vero │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│std │ Stringa o insieme di │ "_G" │
│ │ globali standard │ │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│globals │ Matrice di stringhe │ {} │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│new_globals │ Array di stringhe │ (Non sovrascrivere) │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│read_globals │ Matrice di stringhe │ {} │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│new_read_globals │ Array di stringhe │ (Non sovrascrivere) │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│compat │ Booleano │ falso │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│consentire_definito │ Booleano │ falso │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│consentire_definito_top │ Booleano │ falso │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│modulo │ Booleano │ falso │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│ignorare │ Serie di modelli (vedi │ {} │
│ │ modelli) │ │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│enable │ Serie di modelli │ {} │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│esclusivamente │ Serie di modelli │ (Non filtrare) │
├───────────────────┼─────────────────── ───────┼── ───────────────────┤
│inline │ Booleano │ vero │
└───────────────────┴─────────────────── ───────┴── ───────────────────┘
Un esempio di configurazione che rende luacheck garantire che solo i globali dal portatile
vengono utilizzate le intersezioni di Lua 5.1, Lua 5.2, Lua 5.3 e LuaJIT 2.0, oltre alle disabilitazioni
rilevamento degli argomenti inutilizzati:
std = "min"
ignorare = {"212"}
Custom set of globals
std l'opzione consente di impostare un set standard personalizzato di valori globali utilizzando una tabella. In quella tabella,
le chiavi stringa sono globali e la stringa nella parte dell'array è globale di sola lettura.
Inoltre, è possibile assegnare nomi ai set personalizzati mutando in globale standard variabile. Per
esempio, quando si usa GPL libreria, ha senso accedere alle sue funzioni in modo conciso utilizzando
globali. In tal caso, la seguente configurazione consente di rimuovere i falsi positivi relativi a
accesso globale facilmente:
stds.lpeg = richiede "lpeg"
lpeg locale = richiede "lpeg"
funzione locale parse1(...)
-- Questa funzione utilizza solo le funzioni lpeg come globali.
_ENV locale = lpeg
-- luacheck: std lpeg
cifra locale, spazio = R "09", S " "
--...
fine
funzione locale parse2(...)
-- Questa funzione utilizza funzioni lpeg oltre a quelle globali standard.
local_ENV = setmetatable({}, {__index = function(_, k) return _ENV[k] o lpeg[k] end})
--luacheck: std +lpeg
cifra locale, spazio = R "09", S " "
numero locale = C(cifra^1) / anumero
--...
fine
Per file e per percorso sostituisce
L'ambiente in cui luacheck carica la configurazione contiene un file globale speciale file. Quando
controllare un file , luacheck sovrascriverà le opzioni della configurazione principale con le voci
da File[ ] e File[ ], applicando prima le voci per i percorsi più brevi. Per
Ad esempio, la seguente configurazione riabilita il rilevamento degli argomenti inutilizzati solo per i file in
origine/dir, ma non per src/dir/miofile.luae consente l'utilizzo Busted globali all'interno specifica/:
std = "min"
ignorare = {"212"}
file["src/dir"] = {abilita = {"212"}}
files["origine/dir/miofile.lua"] = {ignora = {"212"}}
files["spec"] = {std = "+sballato"}
Si noti che file table supporta l'autovivificazione, quindi
files["miofile.lua"].ignore = {"212"}
e
file["miofile.lua"] = {ignora = {"212"}}
sono equivalenti.
IN LINEA VERSIONI
Luacheck supporta l'impostazione di alcune opzioni direttamente nei file selezionati utilizzando inline
commenti di configurazione. Un commento di configurazione in linea inizia con luacheck: etichetta,
possibilmente dopo qualche spazio bianco. Il corpo del commento deve contenere valori separati da virgole
opzioni, dove l'invocazione dell'opzione consiste nel suo nome più argomenti separati da spazi. IL
sono supportate le seguenti opzioni:
? ?
│Opzione │ Numero di argomenti │
? ?
│globale │ 0 │
? ?
│non utilizzato │ 0 │
? ?
│ridefinito │ 0 │
? ?
│argomenti non utilizzati │ 0 │
? ?
│secondari non utilizzati │ 0 │
? ?
│se stesso │ 0 │
? ?
│compatto │ 0 │
? ?
│modulo │ 0 │
? ?
│consenti definito │ 0 │
? ?
│consenti top definito │ 0 │
? ?
│std │ 1 │
? ?
│globali │ 0+ │
? ?
│nuovi globali │ 0+ │
? ?
│leggi i globali │ 0+ │
? ?
│nuove letture globali │ 0+ │
? ?
│ignora │ 0+ (senza argomenti tutto │
│ │ viene ignorato) │
? ?
│abilita │ 1+ │
? ?
│solo │ 1+ │
? ?
Le opzioni che non accettano argomenti possono essere precedute da no per invertire il loro significato. Per esempio
--luacheck: no non usato args disabilita gli avvisi sugli argomenti non utilizzati.
La parte del file interessata dall'opzione in linea dipende da dove è posizionata. Se ce n'è
codice sulla riga con l'opzione, solo quella riga è interessata; altrimenti tutto fino a
la fine dell'attuale chiusura è. In particolare, le opzioni in linea nella parte superiore del file
influiscono su tutto:
-- luacheck: globali g1 g2, ignora foo
local foo = g1(g2) -- Nessun avviso emesso.
-- La seguente funzione inutilizzata non viene segnalata.
funzione locale f() -- luacheck: ignora
-- luacheck: globali g3
g3() -- Nessun avviso.
fine
g3(): l'avviso viene emesso come opzione inline che definisce g3 solo sulla funzione f interessata.
Per un controllo dettagliato sull'utilizzo della visibilità delle opzioni in linea luacheck: spingere e luacheck:
pop direttive:
-- luacheck: premi ignora foo
foo() -- Nessun avviso.
--luacheck: pop
foo() -- Viene emesso un avviso.
Le opzioni in linea possono essere completamente disabilitate utilizzando --no-in linea Opzione CLI o inline config
opzione.
LUACHECK MODULO
Usa il locale luacheck = richiedere "luacheck" importare luacheck modulo. Contiene il
seguenti funzioni:
· luacheck.get_report(fonte): data la stringa di origine, restituisce i dati di analisi (una tabella).
· luacheck.process_reports(rapporti, opzioni): elabora una serie di report di analisi e
applica le opzioni. rapporti[i] usa Opzioni, opzioni[i], opzioni[i][1], opzioni[i][2]...
come opzioni, sovrascrivendosi a vicenda in quest'ordine. La tabella delle opzioni è una tabella con campi
simile alle opzioni di configurazione; vedere le opzioni. Rapporti di analisi con campo fatale sono ignorati
process_reports restituisce il rapporto finale, vedi Relazione formato.
· luacheck.check_strings(fonti, opzioni): controlla l'array di fonti utilizzando opzioni, restituisce
rapporto finale. Tabelle con campo fatale entro fonti array vengono ignorati.
· luacheck.check_files(file, opzioni): controlla l'array di file utilizzando le opzioni, restituisce final
rapporto. È possibile passare gli handle di file aperti al posto dei nomi di file, nel qual caso lo saranno
letto fino a EOF e chiuso.
· luacheck.get_message(problema): Restituisce un messaggio di stringa per un problema, vedere Relazione formato.
luacheck._VERSION contiene la versione Luacheck come stringa in PATCH.MAGGIORE.MINORE formato.
utilizzando luacheck come funzione equivale a chiamare luacheck.check_files.
Relazione formato
Un report finale è una serie di report di file più campi avvertenze, errori e fatale
contenente il numero totale di avvisi, errori ed errori fatali, rispettivamente.
Un rapporto su file è una serie di problemi (avvisi o errori). Se si è verificato un errore irreversibile while
controllando un file, avrà il suo rapporto fatale campo contenente il tipo di errore.
Un problema è una tabella con campo codice indicandone la tipologia (vedi avvertenze) e campi linea,
colonna e fine_colonna indicando la fonte dell'avvertimento. Nome il campo può contenere il nome
della relativa variabile. I problemi di alcuni tipi possono anche avere campi aggiuntivi:
?
│Codici │ Campi aggiuntivi │
?
│011 │ msg il campo contiene un errore di sintassi │
│ │ messaggio. │
?
│111 │ modulo il campo indica che │
│ │ l'assegnazione è a un non modulo │
│ │ variabile globale. │
?
│211 │ func il campo indica che non utilizzato │
│ │ variabile è una funzione. │
?
│4.. │ riga_precedente e colonna_prec campi │
│ │ contiene la posizione del │
│ │ definizione sovrascritta. │
?
Altri campi potrebbero essere presenti per motivi interni.
Questa è la documentazione per la versione 0.13.0 di Luacheck, un linter per prendere.
Utilizza luacheck online utilizzando i servizi onworks.net