Das Formatieren hilft dabei, SQL lesbar und konsistent über mehrere Transformationen hinweg zu halten.
Im Edit Action Dialog kann die aktuelle SQL-Anweisung über die Format-Aktion (Rechtsklick 'Format' oder Shortcut 'Alt + Shift + F') formatiert werden.
datasqill unterstuetzt zwei Formatter-Modi:
Interner Formatter (Default)
Verwendet die integrierte SQLinForm-Bibliothek. Die Formatierungsoptionen werden aus der View tv_sqts_config_global mit den Schlüsseln
GUI / CONFIG / FORMATTER / SQL
gelesen.
Externer Formatter (optional)
Startet ein externes Kommando aus dem Suchpfad (PATH). Der Provider wird über
GUI / CONFIG / FORMATTER / PROVIDER
in der View tv_sqts_config_global konfiguriert.
Beispiel für eine externe Provider-Konfiguration (stdin → stdout):
{
"provider": "external",
"command": "myformatter.exe",
"input": "stdin",
"output": "stdout",
"args": [],
"timeoutMs": 10000,
"fallbackToEmbedded": true
}
Der externe Formatter muss im Suchpfad (PATH) liegen, damit die datasqill GUI ihn finden und aufrufen kann.
Für externe Formatter können Ein- und Ausgabe konfiguriert werden:
input: stdin oder fileoutput: stdout oder fileIn args können Platzhalter für temporäre Dateien verwendet werden:
{inputFile} für die Eingabedatei{outputFile} für die AusgabedateiUnterstützte Varianten:
| input | output | args (Beispiel) |
|---|---|---|
stdin |
stdout |
[] |
file |
stdout |
["--input", "{inputFile}"] |
stdin |
file |
["--output", "{outputFile}"] |
file |
file |
["--input", "{inputFile}", "--output", "{outputFile}"] |
Bei input=file muss {inputFile} in args vorkommen. Bei output=file muss {outputFile} in args vorkommen. Die konkreten Argumente (--input, --output usw.) müssen zur CLI des externen Tools passen.
Beispiel für file → stdout (z. B. wenn das Tool eine Eingabedatei erwartet):
{
"provider": "external",
"command": "myformatter.exe",
"input": "file",
"output": "stdout",
"args": ["--input", "{inputFile}"],
"timeoutMs": 10000,
"fallbackToEmbedded": true
}
Verhalten bei Problemen mit dem externen Formatter:
fallbackToEmbedded auf true steht, fällt datasqill auf den internen Formatter zurück.fallbackToEmbedded auf false steht, schlägt das Formatieren fehl und es wird eine Fehlermeldung angezeigt (inkl. Exit-Code und stderr-Auszug, sofern verfügbar).Das Formatieren läuft im Hintergrund, damit die GUI responsiv bleibt. Werden während der Formatierung Änderungen am SQL-Code vorgenommen, wird das Ergebnis der Formatierung verworfen und nicht eingesetzt.