このページでは

QML Language Server

QML Language Server は Qt に同梱されているツールで、お気に入りの(LSP をサポートする)エディタでコードを書く手助けをしてくれます。詳しくはLanguage Server Protocolを参照してください。

現在のところ、以下のことが可能です:

  • コードのオートコンプリート
  • qmllint 警告の表示
  • QMLファイル内の定義への移動
  • JavaScript 変数や QML オブジェクトの使用法の検索
  • JavaScript 変数や QML オブジェクトの名前の変更
  • QML ファイルのフォーマット
  • Qt Documentation からヘルプを得る

注意: qmlls は現在開発中です。詳細は既知の制限を参照してください。

サポートされている機能

ファイル解析

QML Language Server は、開いた QML ファイルに自動的に lint を行い、警告やエラーをエディタに直接表示します。リント処理の詳細についてはqmllint を、警告やエラーの修正方法についてはQML Lint Warning and Errorsを参照してください。

フォーマット

QML Language Server エディタ内でファイル全体をフォーマットすることができます。フォーマット処理についてはqmlformatを参照してください。

定義の検索

QML Language Server JavaScript の変数、関数、QML オブジェクト ID、QML プロパティの定義を、その使用法から見つけることができます。

QML Language Server また、JavaScript の関数、QML オブジェクトのプロパティ、QML オブジェクトのインスタンス化の型アノテーションで使われる型の定義も見つけることができます。

用法の検索

QML Language Server JavaScript 変数、QML オブジェクトプロパティ、JavaScript 関数、QML オブジェクトメソッド、QML オブジェクト ID の使用法を見つけることができます。

名前の変更

QML Language Server は、QML ファイルで定義されている限り、JavaScript 変数や関数、QML オブジェクトのプロパティ、メソッド、id の名前を変更することができます。

オートコンプリート候補

QML Language Server は、JavaScript の変数、式、文、QML オブジェクトのプロパティ、メソッド、id のオートコンプリート候補を提供します。

C++ ファイルの変更追跡

QML Language Server は QML の型を定義する C++ ファイルの変更を追跡することができます。CMake QML モジュールを自動的にリビルドし、C++ で定義された QML タイプに対して、正確で最新の警告と補完項目を提供します。

この機能を無効にすることもできます。

ドキュメントヒント

QML Language Server には、プログラマーがキーワードにカーソルを合わせることで、Qt のドキュメントに素早くアクセスできるようにするドキュメントヒント機能があります。この機能を使用するには、Qt キットに Qt ドキュメントが含まれており、プロジェクトがQT_QML_GENERATE_QMLLS_INI変数でビルドされている必要があります。

エディタでのQML Language Server の設定

このセクションでは、QML Language Server クライアントを開発する方法、または独自のQML Language Server クライアントを使用する方法について説明します。

Qt Online Installer で作成された Qt のインストールでは、<Qt installation folder>/bin/qmlls の下にQML Language Server のバイナリがあります。QML Language Server クライアントにバイナリを直接ダウンロードさせたい場合は、https://github.com/TheQtCompanyRnD/qmlls-workflow/releases または https://qtccache.qt.io/QMLLS/LatestReleaseを使って github からスタンドアロン版をダウンロードできます

ビルド・ディレクトリの設定

QML Language Server プロジェクトのビルド・フォルダーの場所を知る必要があります。以下の方法でビルド・フォルダーを渡すことができます。

AddBuildDirs LSPエクステンション

LSP 拡張機能を使用してビルド・ディレクトリを渡すには、$/addBuildDirs メソッドに対してQML Language Server に通知を送信します。$/addBuildDirs は、以下の形式のパラメータを 1 つ受け入れます:

interface AddBuildDirsParams {
    buildDirsToSet: UriToBuildDirs[];
}

UriToBuildDirs には、ワークスペース URI とビルド・ディレクトリのリストが含まれます。ワークスペースURIは、workspaceFoldersまたはdidChangeWorkspaceFoldersを介して QML Language Server にアドバタイズされたワークスペースを指定しなければならない。ビルド・ディレクトリはファイル・パスであり、URIではない。

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

-build-dirコマンドラインオプション

複数のワークスペースをサポートする必要がない場合は、--build-dir コマンドラインオプションでビルドディレクトリを渡すことができます。この場合、エディターはqmlls を次のように呼び出します:

<path/to/qmlls> ... --build-dir <path/to/build-directory> ...

同じQML Language Server で複数のワークスペースを使用する場合、ビルド・ディレクトリーはすべてのワークスペースに適用されます。ビルドディレクトリは、同じaddBuildDirsMethod で複数のワークスペースを使用する場合、すべてのワークスペースに適用されます。 の値は、コマンドラインオプションよりも優先順位が高くなります。

QMLLS_BUILD_DIRS 環境変数

QMLLS_BUILD_DIRS 環境変数を使ってビルド・ディレクトリを渡すこともできます。同じQML Language Server で複数のワークスペースを使用する場合、ビルドディレクトリはすべてのワークスペースに適用されます。--build-dir からの値は、環境変数よりも優先されます。

.qmlls.ini 設定ファイル

前述のオプションのいずれかを使用してもビルド・ディレクトリを渡せない場合は、設定ファイルを使用してビルド・ディレクトリをQML Language Server に渡してみてください。設定ファイル」も参照してください。設定ファイルの値は、--build-dirQMLLS_BUILD_DIRSaddBuildDirsMethod よりも優先順位が低くなります。

自動 CMake ビルドの設定

QML Language Server は、C++で定義されたQML型のソースコードが変更されたことを検知すると、CMakeの再構築を試みます。

この機能を無効にするには、以下の方法を使用してください:

CMake が使用するジョブの数を制御するには、以下を使用します。

  • --cmake-jobs コマンドラインオプションを使用します。この場合、エディタはqmlls を次のように呼び出します:
    <path/to/qmlls> --build-dir <path/to/build-directory> --cmake-jobs <jobs>
  • QMLLS_CMAKE_JOBS 環境変数。
  • .qmlls.ini 設定ファイル(設定ファイル参照)。

使用可能な値は0以上の整数で、使用可能なコアをすべて使用する場合はmax

QML Language Server ヘッダーのソースフォルダーを検索する際に、検索するファイルの上限を指定することができます。

検索するファイルの最大量を設定するには、QMLLS_MAX_FILES_TO_SEARCH 環境変数に数値を書き込みます。0はファイル検索機能を無効にし、20000がデフォルト値です。

設定ファイル

QML Language Server は、設定ファイル.qmlls.ini で設定することができる。このファイルは、プロジェクトのルート・ソース・ディレクトリに置く必要があります。ini形式のテキスト・ファイルでなければなりません。

コンフィギュレーション・ファイルには、以下の項目を記述することができます:

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

設定ファイルを使用して CMake の自動再構築機能を無効にするには、no-cmake-callstrue に設定します。

CMake の自動リビルドで使用されるジョブの数を制御するには、CMakeJobs の値を設定します。

ビルドディレクトリの設定」で説明したように、ビルドディレクトリをQML Language Server に渡せないクライアントをサポートするには、buildDir 値を設定するか、QT_QML_GENERATE_QMLLS_INI を使用して CMake に .qmlls.ini を生成させます。

Note: QML Language Server では、--write-defaults オプションを使ってデフォルトの設定ファイルを作成することができます。これはカレントディレクトリに既に存在する.qmlls.iniファイルを上書きします。

既知の制限事項

多くの一般的なQMLの機能をカバーしていますが、QML Language Server はまだ開発中であり、未対応の機能もあります:

  • 無効な QML ファイルに対するオートコンプリートの提案。
  • C++で定義されたオブジェクトの定義への移動。
  • コンテキスト・プロパティのオートコンプリート

QML Language Server を使用しているプロジェクトでは、誤検出の警告が出る可能性があります。

  • QMakeや命令型登録を使用しているプロジェクトでは、コンテキストプロパティの自動補完が誤った警告を出す可能性があります。
  • QML Language Server はビルド情報を使って QML モジュールを検索します。
  • QML モジュールがModernizing QML Modulesのガイドラインに従っていない場合

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