---
title: Automatische Fehlerüberprüfung
layout: default
root: ../..
idx: 8.2
description: Verwenden Sie LuaCheck, um Fehler zu finden
redirect_from: /de/chapters/luacheck.html
---

## Einleitung <!-- omit in toc -->

In diesem Kapitel werden Sie lernen, wie Sie das Werkzeug LuaCheck benutzt, um Ihren Mod auf Fehler zu überprüfen. Dieses Werkzeug kann in Kombination mit deinem Editor verwendet werden, um auf Fehler aufmerksam zu machen.

- [Installation von LuaCheck](#installation-von-luacheck)
  - [Windows](#windows)
  - [Linux](#linux)
- [LuaCheck ausführen](#run)
- [LuaCheck konfigurieren](#luacheck-konfigurieren)
  - [Fehlerbehebung](#fehlerbehebung)
- [Verwendung mit einem Editor](#verwendung-mit-einem-editor)

## Installation von LuaCheck

### Windows

Laden Sie einfach luacheck.exe von [der Github-Releaseseite](https://github.com/mpeterv/luacheck/releases) herunter.

### Linux

Zuerst müssen Sie LuaRocks installieren:

    sudo apt install luarocks

Sie können LuaCheck dann global (also für alle Benutzer) installieren:

    sudo luarocks install luacheck

Prüfen Sie mit dem folgenden Befehl, ob es installiert ist:

    luacheck -v

## LuaCheck ausführen <a name="run"></a>

Wenn Sie LuaCheck zum ersten Mal ausführen, wird es wahrscheinlich eine Menge falscher Fehler erkennen. Das liegt daran, dass es noch konfiguriert werden muss.

Unter Windows öffnen Sie die Powershell oder Bash im Stammverzeichnis Ihres Projekts und führen Sie `path\to\luacheck.exe` aus.

Unter Linux führen Sie `luacheck ` aus, während Sie sich im Stammordner Ihres Projekts befinden.

## LuaCheck konfigurieren

Erstellen Sie eine Datei namens `.luacheckrc` im Stammverzeichnis Ihres Projekts. Dies kann das Stammverzeichnis Ihres Spiels, Modpacks oder Mods sein.

Fügen Sie den folgenden Inhalt in diese Datei ein:

```lua
unused_args = false
allow_defined_top = true

globals = {
    "minetest",
}

read_globals = {
    string = {fields = {"split"}},
    table = {fields = {"copy", "getn"}},

    -- Eingebaut
    "vector", "ItemStack",
    "dump", "DIR_DELIM", "VoxelArea", "Settings",

    -- MTG
    "default", "sfinv", "creative",
}
```

Als nächstes müssen Sie testen, ob es funktioniert, indem Sie LuaCheck ausführen. Diesmal sollten Sie viel weniger Fehler erhalten. Ändern Sie ab dem ersten Fehler, den Sie erhalten, den Code, um um das Problem zu beseitigen oder ändern Sie die Konfiguration, wenn der Code korrekt ist. Siehe die Liste unten.

### Fehlerbehebung

* **accessing undefined variable foobar** - Wenn `foobar` eine globale Variable sein soll,  fügen Sie diese zu `read_globals` hinzu. Andernfalls fügen Sie alle fehlenden `local` zum Mod hinzu.
* **setting non-standard global variable foobar** - Wenn `foobar` eine globale Variable sein soll, fügen Sie diese zu `globals` hinzu. Entfernen Sie diese aus `read_globals`, falls vorhanden.
  Andernfalls fügen Sie alle fehlenden `local` zum Mod hinzu.
* **mutating read-only global variable 'foobar'** - Verschieben Sie `foobar` von `read_globals` nach `globals` oder hören Sie auf, in foobar zu schreiben.

## Verwendung mit einem Editor

Es wird dringend empfohlen, dass Sie ein Plugin für den Editor Ihrer Wahl finden und installieren, das Ihnen Fehler anzeigt, ohne dass Sie einen Befehl ausführen müssen. Für die meisten Editoren ist wahrscheinlich ein Plugin verfügbar.

* **VSCode** - Ctrl+P, dann einfügen: `ext install dwenegar.vscode-luacheck`
* **Sublime** - Installieren Sie mit Hilfe von package-control:
  [SublimeLinter](https://github.com/SublimeLinter/SublimeLinter),
  [SublimeLinter-luacheck](https://github.com/SublimeLinter/SublimeLinter-luacheck).
