2020-04-27 16:11:54 +03:00
|
|
|
---
|
2020-07-13 16:10:13 +03:00
|
|
|
title: Controllo automatico degli errori
|
2020-04-27 16:11:54 +03:00
|
|
|
layout: default
|
|
|
|
root: ../..
|
|
|
|
idx: 8.2
|
2020-07-13 16:10:13 +03:00
|
|
|
description: Usa LuaCheck per trovare eventuali errori
|
|
|
|
redirect_from: /it/chapters/luacheck.html
|
2020-04-27 16:11:54 +03:00
|
|
|
---
|
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
## Introduzione <!-- omit in toc -->
|
2020-04-27 16:11:54 +03:00
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
In questo capitolo, imparerai come usare uno strumento chiamato LuaCheck per scansionare automaticamente le tue mod alla ricerca di eventuali errori.
|
|
|
|
LuaCheck può essere usato in combinazione con l'editor per fornire avvertimenti vari.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
- [Installare LuaCheck](#installare-luacheck)
|
2022-06-14 02:21:06 +03:00
|
|
|
- [Windows](#windows)
|
|
|
|
- [Linux](#linux)
|
2020-07-13 16:10:13 +03:00
|
|
|
- [Eseguire LuaCheck](#eseguire-luacheck)
|
|
|
|
- [Configurare LuaCheck](#configurare-luacheck)
|
2022-06-14 02:21:06 +03:00
|
|
|
- [Risoluzione problemi](#risoluzione-problemi)
|
2020-07-13 16:10:13 +03:00
|
|
|
- [Uso nell'editor](#uso-nelleditor)
|
2020-04-27 16:11:54 +03:00
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
## Installare LuaCheck
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
|
|
### Windows
|
|
|
|
|
2022-03-30 15:39:54 +03:00
|
|
|
Basta scaricare luacheck.exe dall'apposita [pagina delle versioni su Github](https://github.com/mpeterv/luacheck/releases).
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
|
|
### Linux
|
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
Per prima cosa, avrai bisogno di installare LuaRocks:
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
|
|
sudo apt install luarocks
|
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
Poi va installato globalmente LuaCheck:
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
|
|
sudo luarocks install luacheck
|
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
Per controllare che sia stato installato correttamente, fai:
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
|
|
luacheck -v
|
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
## Eseguire LuaCheck
|
2020-04-27 16:11:54 +03:00
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
La prima volta che si esegue LuaCheck, segnalerà probabilmente un sacco di falsi errori.
|
|
|
|
Questo perché ha ancora bisogno di essere configurato.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
Su Windows, apri la powershell o la bash nella cartella principale del tuo progetto ed esegui `path\to\luacheck.exe .`
|
2020-04-27 16:11:54 +03:00
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
Su Linux, esegui `luacheck .` nella cartella principale del progetto.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
## Configurare LuaCheck
|
2020-04-27 16:11:54 +03:00
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
Crea un file chiamato .luacheckrc nella cartella principale del tuo progetto.
|
2022-03-30 15:39:54 +03:00
|
|
|
Questa può essere quella di un gioco, di un pacchetto mod o di una mod singola.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
Inserisci il seguente codice all'interno:
|
2020-04-27 16:11:54 +03:00
|
|
|
|
|
|
|
```lua
|
|
|
|
unused_args = false
|
|
|
|
allow_defined_top = true
|
|
|
|
|
|
|
|
globals = {
|
|
|
|
"minetest",
|
|
|
|
}
|
|
|
|
|
|
|
|
read_globals = {
|
|
|
|
string = {fields = {"split"}},
|
|
|
|
table = {fields = {"copy", "getn"}},
|
|
|
|
|
|
|
|
-- Builtin
|
|
|
|
"vector", "ItemStack",
|
|
|
|
"dump", "DIR_DELIM", "VoxelArea", "Settings",
|
|
|
|
|
|
|
|
-- MTG
|
|
|
|
"default", "sfinv", "creative",
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
Poi, avrai bisogno di assicurarti che funzioni eseguendo LuaCheck: dovresti ottenere molti meno errori questa volta.
|
|
|
|
Partendo dal primo errore, modifica il codice per risolvere il problema, o modifica la configurazione di LuaCheck se il codice è corretto.
|
2022-03-30 15:39:54 +03:00
|
|
|
Dài un occhio alla lista sottostante.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
### Risoluzione problemi
|
2020-04-27 16:11:54 +03:00
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
* **accessing undefined variable foobar** - Se `foobar` dovrebbe essere una variabile globale, aggiungila a `read_globals`.
|
|
|
|
Altrimenti, manca un `local` vicino a `foobar`.
|
|
|
|
* **setting non-standard global variable foobar** - Se `foobar` dovrebbe essere una variabile globale, aggiungila a `globals`.
|
|
|
|
Rimuovila da `read_globals` se presente.
|
|
|
|
Altrimenti, manca un `local` vicino a `foobar`.
|
|
|
|
* **mutating read-only global variable 'foobar'** - Sposta `foobar` da `read_globals` a `globals`, o smetti di modificare `foobar`.
|
2020-04-27 16:11:54 +03:00
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
## Uso nell'editor
|
2020-04-27 16:11:54 +03:00
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
È caldamente consigliato installare un'estensione per il tuo editor di fiducia che ti mostri gli errori senza eseguire alcun comando.
|
|
|
|
Queste sono disponibili nella maggior parte degli editor, come:
|
2020-04-27 16:11:54 +03:00
|
|
|
|
2020-07-13 16:10:13 +03:00
|
|
|
* **VSCode** - Ctrl+P, poi incolla: `ext install dwenegar.vscode-luacheck`;
|
|
|
|
* **Sublime** - Installala usando package-control:
|
2020-04-27 16:11:54 +03:00
|
|
|
[SublimeLinter](https://github.com/SublimeLinter/SublimeLinter),
|
|
|
|
[SublimeLinter-luacheck](https://github.com/SublimeLinter/SublimeLinter-luacheck).
|