Auf dieser Seite

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.

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 later

Um 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,

© 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.