Auf dieser Seite

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ändigungselemente für in C++ definierte QML-Typen bereitzustellen.

Sie können diese Funktion deaktivieren.

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.

Einrichten von QML Language Server in Ihrem Editor

Dieser Abschnitt beschreibt, wie Sie den QML Language Server Client entwickeln oder Ihren eigenen QML Language Server Client verwenden können.

Sie finden die QML Language Server Binärdatei 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 Build-Ordners des Projekts kennen. Sie können den Build-Ordner auf die folgenden Arten übergeben.

AddBuildDirs LSP-Erweiterung

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 der Form:

interface AddBuildDirsParams {
    buildDirsToSet: UriToBuildDirs[];
}

wobei UriToBuildDirs einen Workspace-URI und eine Liste von Build-Verzeichnissen enthält. Der Arbeitsbereich-URI muss einen Arbeitsbereich bezeichnen, der QML Language Server über workspaceFolders oder didChangeWorkspaceFolders bekannt gemacht wurde. Die Build-Verzeichnisse sind Dateipfade, keine URIs.

interface UriToBuildDirs {
    baseUri: URI;
    buildDirs: string[];
}

-build-dir Befehlszeilenoption

Wenn Sie nicht mehrere Workspaces unterstützen müssen, können Sie die Build-Verzeichnisse mit der 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 Workspaces angewendet, wenn Sie mehrere Workspaces im selben QML Language Server verwenden. Die Werte von addBuildDirsMethod haben einen höheren Vorrang als die Kommandozeilenoption.

QMLLS_BUILD_DIRS Umgebungsvariable

Sie können die Build-Verzeichnisse auch über die Umgebungsvariable QMLLS_BUILD_DIRS übergeben. Das Build-Verzeichnis wird auf alle Workspaces angewendet, wenn Sie mehrere Workspaces im selben QML Language Server verwenden. Die Werte von --build-dir haben einen höheren Vorrang als die Umgebungsvariable.

.qmlls.ini Einstellungsdatei

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 Einstellungsdatei haben einen niedrigeren Vorrang als --build-dir, QMLLS_BUILD_DIRS und addBuildDirsMethod.

Automatische CMake-Builds konfigurieren

QML Language Server 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:

Um die Anzahl der von CMake verwendeten Jobs zu kontrollieren, verwenden Sie

  • Die --cmake-jobs Kommandozeilenoption. 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 Einstellungsdatei .qmlls.ini, siehe Konfigurationsdatei.

Akzeptierte Werte sind ganze Zahlen größer als 0 und max, um alle verfügbaren Kerne zu verwenden.

QML Language Server Sie können die maximale Anzahl der zu durchsuchenden Dateien festlegen, wenn Sie die Quellordner nach Headern durchsuchen, z. B. wenn Sie die Definition einer QML-Komponente aufrufen, die in einem C++-Header definiert ist.

Um die maximale Anzahl der zu durchsuchenden Dateien festzulegen, schreiben Sie einen numerischen Wert in die Umgebungsvariable QMLLS_MAX_FILES_TO_SEARCH. 0 schaltet die Dateisuchfunktion aus, 20000 ist der Standardwert.

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.

Die Konfigurationsdatei kann die folgenden 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 Konfigurationsdatei zu verwenden, um die automatische CMake-Rebuild-Funktionalität zu deaktivieren, setzen Sie no-cmake-calls auf true.

Um die Anzahl der Jobs zu kontrollieren, die von automatischen CMake-Rebuilds verwendet werden, setzen Sie den Wert CMakeJobs.

Um Clients zu unterstützen, die das Build-Verzeichnis nicht an QML Language Server übergeben können, wie in Einrichten des Build-Verzeichnisses beschrieben, setzen Sie den Wert buildDir oder lassen Sie CMake die .qmlls.ini über QT_QML_GENERATE_QMLLS_INI erzeugen.

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

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:

  • Vorschlagen von Autokomplettierungen bei ungültigen QML-Dateien.
  • Navigieren zu Definitionen von in C++ definierten Objekten.
  • Autokomplettierung von Kontexteigenschaften

QML Language Server könnte falsch positive Warnungen bei Projekten ausgeben

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