QML Language Server
QML Language Server ist ein Werkzeug, das mit Qt geliefert wird und Ihnen hilft, Code in Ihrem bevorzugten (LSP-unterstützenden) Editor zu schreiben. Siehe Language Server Protocol für weitere Informationen.
Gegenwärtig ermöglicht es Ihrem Editor Folgendes:
- Autovervollständigung Ihres Codes
- qmllint-Warnungen anzeigen
- Zu Definitionen in QML-Dateien zu navigieren
- Verwendungen von JavaScript-Variablen und QML-Objekten zu finden
- Umbenennen von JavaScript-Variablen und QML-Objekten
- QML-Dateien formatieren
- Hilfe aus der Qt-Dokumentation abrufen
Hinweis: qmlls
befindet sich derzeit in der Entwicklung. Weitere Informationen finden Sie unter Bekannte Einschränkungen.
Unterstützte Funktionen
Linting
QML Language Server kann geöffnete QML-Dateien automatisch linsen und Warnungen oder Fehler direkt im Editor anzeigen. Siehe qmllint für weitere Informationen über den Linting-Prozess und QML Lint Warnungen und Fehler, um Warnungen und Fehler zu beheben.
Formatieren
QML Language Server kann ganze Dateien innerhalb des Editors formatieren. Siehe qmlformat für weitere Informationen über den Formatierungsprozess.
Definitionen finden
QML Language Server kann Definitionen von JavaScript-Variablen, Funktionen, QML-Objekt-IDs und QML-Eigenschaften anhand ihrer Verwendungen finden.
QML Language Server kann auch die Definition von Typen finden, die in Typ-Annotationen für JavaScript-Funktionen, QML-Objekteigenschaften und QML-Objektinstanziierung verwendet werden.
Suche nach Verwendungen
QML Language Server findet Verwendungen von JavaScript-Variablen, QML-Objekteigenschaften, JavaScript-Funktionen, QML-Objektmethoden und QML-Objekt-IDs.
Umbenennen
QML Language Server kann JavaScript-Variablen und -Funktionen sowie QML-Objekteigenschaften, -Methoden und -Id's umbenennen, sofern sie in einer QML-Datei definiert sind.
Vorschlagen von Autovervollständigungselementen
QML Language Server bietet Vorschläge für die Autovervollständigung von JavaScript-Variablen, -Ausdrücken und -Anweisungen sowie von QML-Objekteigenschaften, -Methoden und -IDs.
Verfolgung von Änderungen in C++-Dateien
QML Language Server kann Änderungen in C++-Dateien verfolgen, die QML-Typen definieren. Es baut CMake QML-Module automatisch neu auf, um genaue und aktuelle Warnungen und Vervollständigungseinträge für in C++ definierte QML-Typen bereitzustellen.
Hinweise zur Dokumentation
QML Language Server enthält eine Funktion für Dokumentationshinweise, die Programmierern einen schnellen Zugriff auf die Qt-Dokumentation ermöglicht, indem sie mit dem Mauszeiger über ein Schlüsselwort fahren. Um diese Funktion nutzen zu können, sollte Ihr Qt-Kit die Qt-Dokumentation enthalten und Ihr Projekt sollte mit der Variable QT_QML_GENERATE_QMLLS_INI erstellt werden.
Sie können diese Funktion deaktivieren.
Einrichten der QML Language Server in Ihrem Editor
Hinweis: In Qt-Installationen, die mit Qt Online Installer erstellt wurden, finden Sie die Binärdatei QML Language Server unter <Qt installation folder>/bin/qmlls
.
Einrichten des Build-Verzeichnisses
QML Language Server muss den Ort Ihres Build-Ordners kennen. Sie können ihn auf die folgenden Arten übergeben:
- Die
--build-dir
Kommandozeilenoption. In diesem Fall sollte Ihr Editorqmlls
wie folgt aufrufen:<path/to/qmlls> ... --build-dir <path/to/build-directory> ...
- Die Umgebungsvariable
QMLLS_BUILD_DIRS
. - Die Einstellungsdatei
.qmlls.ini
, siehe Konfigurationsdatei.
Hinweis: Wenn das Build-Verzeichnis auf mehrere Arten angegeben wird, hat die Kommandozeilenoption Vorrang vor der Umgebungsvariablen, die wiederum Vorrang vor der Einstellungsdatei hat.
Einrichten der Importpfade
QML Language Server muss die Importpfade der Qt-Version kennen, die Sie in Ihrem Projekt verwenden. Sie können die Importpfade auf die folgenden Arten übergeben:
- Die
-I
Kommandozeilenoption. In diesem Fall sollte Ihr Editorqmlls
wie folgt aufrufen:<path/to/qmlls> ... -I /path/to/imports -I /optional/path/to/another/import ...
- Die Umgebungsvariable
QML_IMPORT_PATH
. In diesem Fall sollten Sie die Option-E
an QML Language Server übergeben. - Die
.qmlls.ini
Einstellungsdatei, siehe Konfigurationsdatei.
Hinweis: Wenn der Importpfad auf mehrere Arten angegeben wird, hat die Befehlszeilenoption Vorrang vor der Umgebungsvariablen, die Vorrang vor der Einstellungsdatei hat.
Einrichten des Dokumentationspfads
QML Language Server kann Dokumentationshinweise anzeigen, wenn es den Dokumentationspfad der Qt-Version kennt, die Sie in Ihrem Projekt verwenden. Sie können den Dokumentationspfad auf die folgenden Arten übergeben:
- Die Kommandozeilenoption
-d
oder-p
. In diesem Fall sollte Ihr Editorqmlls
wie folgt aufrufen:<path/to/qmlls> ... -d /path/to/docs ...
- Die Einstellungsdatei
.qmlls.ini
, siehe Konfigurationsdatei.
Hinweis: Wenn der Dokumentationspfad auf mehrere Arten angegeben wird, hat die Kommandozeilenoption Vorrang vor der Umgebungsvariablen, die Vorrang vor der Einstellungsdatei hat.
Deaktivieren von automatischen CMake-Builds
qmlls
CMake versucht, einen CMake-Neuaufbau auszulösen, wenn es feststellt, dass der Quellcode eines in C++ definierten QML-Typs geändert wurde.
Um diese Funktion zu deaktivieren, verwenden Sie die folgenden Möglichkeiten:
- Die Kommandozeilenoption
--no-cmake-calls
. In diesem Fall sollte Ihr Editorqmlls
wie folgt aufrufen:<path/to/qmlls> --build-dir <path/to/build-directory> --no-cmake-calls
- Die Umgebungsvariable
QMLLS_NO_CMAKE_CALLS
. - Die Einstellungsdatei
.qmlls.ini
, siehe Konfigurationsdatei.
Die Konfigurationsdatei
QML Language Server kann über eine Konfigurationsdatei .qmlls.ini
konfiguriert werden. Diese Datei sollte sich im Stammverzeichnis des Projekts befinden. Es sollte sich um eine Textdatei im ini-Format handeln.
Hinweis: .qmlls.ini
Dateien können automatisch über QT_QML_GENERATE_QMLLS_INI erzeugt werden.
Die Konfigurationsdatei sollte wie folgt aussehen:
// .qmlls.ini [General] buildDir=<path/to/build-directory> no-cmake-calls=<true-or-false> docDir=<path/to/qt-documentation> importPaths=<path/to/imports>
Derzeit kann die Konfigurationsdatei dazu verwendet werden, das Build-Verzeichnis des aktuellen Projekts festzulegen und optional die automatische CMake-Rebuild-Funktionalität für C++ definierte QML-Typen zu deaktivieren.
Hinweis: QML Language Server kann mit der Option --write-defaults
Standard-Konfigurationsdateien erstellen. Dies überschreibt eine bereits existierende .qmlls.ini Datei im aktuellen Verzeichnis.
Bekannte Beschränkungen
QML Language Server kann bei Projekten, die nicht gebaut wurden, falsch positive Warnungen ausgeben, da es die Build-Informationen benötigt, um z.B. QML-Module zu finden, die im selben Projekt definiert sind.
Obwohl QML Language Server viele gängige QML-Funktionen abdeckt, befindet es sich noch in der Entwicklung, und einige Funktionen müssen noch unterstützt werden:
- Umbenennen von QML-Typen.
- Vorschlagen von Autokomplettierungen bei ungültigen QML-Dateien.
- Navigieren zu Definitionen von in C++ definierten Objekten.
- Unterstützung aller QML- und JavaScript-Sprachkonstrukte für alle Funktionen.
Das QML-Code-Modell in QML Language Server unterstützt noch nicht alle JavaScript-Sprachkonstrukte, was bedeutet, dass einige Funktionen wie die Navigation zu Definitionen und das Auffinden von Verwendungen mit diesen Sprachkonstrukten möglicherweise nicht funktionieren.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.