QML Language Server
QML Language Server ist ein mit Qt mitgeliefertes Tool, das Ihnen hilft, Code in Ihrem bevorzugten (LSP-unterstützenden) Editor zu schreiben. Weitere Informationen finden Sie unter „Language Server Protocol “.
Derzeit ermöglicht es Ihrem Editor Folgendes:
- Ihren Code automatisch zu vervollständigen
- Anzeige von qmllint-Warnungen
- Navigieren zu Definitionen in QML-Dateien
- Verwendungen von JavaScript-Variablen und QML-Objekten zu finden
- JavaScript-Variablen und QML-Objekte umbenennen
- 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 auf Fehler prüfen und Warnungen oder Fehler direkt im Editor anzeigen. Weitere Informationen zum Linting-Prozess finden Sie unter „qmllint“ und zur Behebung von Warnungen und Fehlern unter „QML-Lint-Warnungen und -Fehler “.
Formatierung
QML Language Server kann ganze Dateien direkt im Editor formatieren. Weitere Informationen zum Formatierungsprozess finden Sie unter „qmlformat “.
Definitionen suchen
QML Language Server kann Definitionen von JavaScript-Variablen, Funktionen, QML-Objekt-IDs und QML-Eigenschaften anhand ihrer Verwendungen finden.
QML Language Server kann außerdem die Definitionen von Typen finden, die in Typ-Annotationen für JavaScript-Funktionen, QML-Objekteigenschaften und bei der Instanziierung von QML-Objekten verwendet werden.
Verwendungen finden
QML Language Server kann Verwendungen von JavaScript-Variablen, QML-Objekteigenschaften, JavaScript-Funktionen, QML-Objektmethoden und QML-Objekt-IDs finden.
Umbenennen
QML Language Server kann JavaScript-Variablen und -Funktionen sowie QML-Objekteigenschaften, -Methoden und -IDs umbenennen, sofern diese in einer QML-Datei definiert sind.
Vorschläge für die Autovervollständigung
QML Language Server bietet Vorschläge zur automatischen Vervollständigung für JavaScript-Variablen, Ausdrücke und Anweisungen sowie für QML-Objekteigenschaften, -Methoden und -IDs.
Änderungen in C++-Dateien verfolgen
QML Language Server kann Änderungen in C++-Dateien verfolgen, die QML-Typen definieren. Es erstellt CMake-QML-Module automatisch neu, um genaue und aktuelle Warnungen sowie Vervollständigungsvorschläge für in C++ definierte QML-Typen bereitzustellen.
Sie können diese Funktion deaktivieren.
Dokumentationshinweise
QML Language Server enthält eine Funktion für Dokumentationshinweise, die Programmierern schnellen Zugriff auf die Qt-Dokumentation bietet, indem sie mit der Maus ü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 Variablen ` QT_QML_GENERATE_QMLLS_INI ` erstellt worden sein.
Einrichten von „ QML Language Server “ in Ihrem Editor
In diesem Abschnitt wird beschrieben, wie Sie den „ QML Language Server “-Client entwickeln oder Ihren eigenen „ QML Language Server “-Client verwenden.
Sie finden die ausführbare Datei „ QML Language Server “ unter „ <Qt installation folder>/bin/qmlls “ in Qt-Installationen, die mit „ Qt Online Installer “ erstellt wurden. Wenn Sie möchten, dass Ihr „ QML Language Server “-Client die Binärdatei direkt herunterlädt, können Sie die Standalone-Version von GitHub über https://github.com/TheQtCompanyRnD/qmlls-workflow/releases oder https://qtccache.qt.io/QMLLS/LatestRelease herunterladen.
Einrichten des Build-Verzeichnisses
QML Language Server muss den Speicherort des Projekt-Build-Ordners kennen. Sie können den Build-Ordner auf folgende Arten übergeben.
LSP-Erweiterung „AddBuildDirs“
Um Build-Verzeichnisse über die LSP-Erweiterung zu übergeben, senden Sie eine Benachrichtigung an QML Language Server für die Methode „ $/addBuildDirs “. „ $/addBuildDirs “ akzeptiert einen Parameter in folgender Form:
interface AddBuildDirsParams {
buildDirsToSet: UriToBuildDirs[];
}wobei ` UriToBuildDirs ` eine Arbeitsbereich-URI und eine Liste von Build-Verzeichnissen enthält. Die Arbeitsbereich-URI muss einen Arbeitsbereich bezeichnen, der über `workspaceFolders ` oder `didChangeWorkspaceFolders` an ` QML Language Server ` gemeldet wurde. Bei den Build-Verzeichnissen handelt es sich um Dateipfade, nicht um URIs.
interface UriToBuildDirs {
baseUri: URI;
buildDirs: string[];
}Befehlszeilenoption –build-dir
Wenn Sie keine Unterstützung für mehrere Arbeitsbereiche benötigen, können Sie die Build-Verzeichnisse über die Befehlszeilenoption ` --build-dir ` übergeben. In diesem Fall sollte Ihr Editor qmlls wie folgt aufrufen:
<path/to/qmlls> ... --build-dir <path/to/build-directory> ...Das Build-Verzeichnis wird auf alle Arbeitsbereiche angewendet, wenn Sie mehrere Arbeitsbereiche im selben ` QML Language Server` verwenden. Die Werte aus ` addBuildDirsMethod ` haben eine höhere Priorität als die Befehlszeilenoption.
Umgebungsvariable „QMLLS_BUILD_DIRS“
Sie können die Build-Verzeichnisse auch über die Umgebungsvariable „ QMLLS_BUILD_DIRS “ übergeben. Das Build-Verzeichnis gilt für alle Arbeitsbereiche, wenn Sie mehrere Arbeitsbereiche im selben „ QML Language Server “ verwenden. Die Werte aus „ --build-dir “ haben Vorrang vor der Umgebungsvariable.
.qmlls.ini Konfigurationsdatei
Wenn Sie die Build-Verzeichnisse nicht mit einer der vorherigen Optionen übergeben können, können Sie versuchen, die Build-Verzeichnisse über eine Konfigurationsdatei an QML Language Server zu übergeben. Siehe auch „Konfigurationsdatei“. Die Werte aus der Konfigurationsdatei haben eine geringere Priorität als --build-dir, QMLLS_BUILD_DIRS und addBuildDirsMethod.
Konfiguration automatischer CMake-Builds
QML Language Server versucht, einen CMake-Neubau auszulösen, wenn festgestellt wird, dass der Quellcode eines in C++ definierten QML-Typs geändert wurde.
Um diese Funktion zu deaktivieren, nutzen Sie folgende Möglichkeiten:
- Die Befehlszeilenoption „
--no-cmake-calls“. In diesem Fall sollte Ihr Editor „qmlls“ 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 CMake-Variable ` QT_QML_GENERATE_QMLLS_INI_NO_CMAKE_CALLS `, sofern ` QT_QML_GENERATE_QMLLS_INI ` aktiviert ist.
Um die Anzahl der von CMake verwendeten Jobs zu steuern, verwenden Sie
- die Befehlszeilenoption „
--cmake-jobs“. In diesem Fall sollte Ihr Editor „qmlls“ wie folgt aufrufen:<path/to/qmlls> --build-dir <path/to/build-directory> --cmake-jobs <jobs> - Die Umgebungsvariable „
QMLLS_CMAKE_JOBS“. - Die Konfigurationsdatei „
.qmlls.ini“ (siehe „Konfigurationsdatei“).
Zulässige Werte sind ganze Zahlen größer als 0 sowie „ max “, um alle verfügbaren Kerne zu nutzen.
Anpassung der maximalen Anzahl der zu durchsuchenden Dateien
QML Language Server legt eine Obergrenze für die Anzahl der zu durchsuchenden Dateien fest, wenn die Quellordner nach Header-Dateien durchsucht werden, beispielsweise beim Aufrufen der Definition einer QML-Komponente, die in einem C++-Header definiert ist.
Um die maximale Anzahl der zu durchsuchenden Dateien festzulegen, geben Sie einen numerischen Wert in der Umgebungsvariablen „ QMLLS_MAX_FILES_TO_SEARCH “ ein. Der Wert 0 deaktiviert die Dateisuche, 20000 ist der Standardwert.
Konfigurationsdatei
QML Language Server kann über eine Konfigurationsdatei „ .qmlls.ini “ konfiguriert werden. Diese Datei sollte sich im Stammverzeichnis der Projektquelldateien befinden. Es sollte sich um eine Textdatei im INI-Format handeln.
Die Konfigurationsdatei kann folgende Einträge enthalten:
// .qmlls.ini
[General]
no-cmake-calls=<true-or-false>
CMakeJobs=<some integer value>
buildDir=<path/to/build-directory> # not required in Qt 6.10 and later
docDir=<path/to/qt-documentation> # not required in Qt 6.10 and later
importPaths=<path/to/imports> # not required in Qt 6.10 and laterUm die automatische CMake-Neuerstellung mithilfe der Konfigurationsdatei zu deaktivieren, setzen Sie „ no-cmake-calls “ auf „ true “.
Um die Anzahl der Jobs zu steuern, die bei automatischen CMake-Neuerstellungen verwendet werden, legen Sie den Wert „CMakeJobs“ fest.
Um Clients zu unterstützen, die das Build-Verzeichnis nicht an ` QML Language Server` übergeben können, wie unter „Einrichten des Build-Verzeichnisses“ beschrieben, legen Sie den Wert `buildDir` fest oder lassen Sie CMake die Datei `.qmlls.ini` über `QT_QML_GENERATE_QMLLS_INI` generieren.
Hinweis: „ QML Language Server “ kann mithilfe der Option „ --write-defaults “ Standardkonfigurationsdateien erstellen. Dadurch wird eine bereits vorhandene „.qmlls.ini“-Datei im aktuellen Verzeichnis überschrieben.
Bekannte Einschränkungen
Obwohl QML Language Server viele gängige QML-Funktionen abdeckt, befindet es sich noch in der Entwicklung, und einige Funktionen werden noch nicht unterstützt:
- Vorschläge für die automatische Vervollständigung bei ungültigen QML-Dateien.
- Automatische Vervollständigung von Kontexteigenschaften
QML Language Server können bei Projekten,
- , die QMake oder die imperativische Typregistrierung verwenden – siehe „QML-Module auf CMake portieren“
- , die nicht kompiliert wurden – „QML Language Server “ nutzt die Kompilierungsinformationen, um QML-Module zu finden
- , bei denen die QML-Module nicht den Richtlinien in „Modernisierung von QML-Modulen“ entsprechen
© 2026 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.