QML Language Server リファレンス

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

現在のところ、QML Language Server では以下のことが可能です:

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

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

サポートされている機能

リント機能

QML Language Server では、開いた QML ファイルに対して自動的に lint を行い、警告やエラーをエディタに直接表示することができます。詳細はqmllintを参照してください。

フォーマット

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

定義の検索

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

また、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 言語サーバーのセットアップ

Note: Qt Online Installer を使ってインストールした Qt では、<Qt installation folder>/bin/qmlls の下に QML Language Server のバイナリがあります。

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

QML Language Serverは、ビルドフォルダの場所を知る必要があります。ビルドディレクトリは以下の方法で指定することができます:

  • --build-dir コマンドラインオプション。この場合、エディタはqmlls を次のように起動します:
    <path/to/qmlls> --build-dir <path/to/build-directory>
  • QMLLS_BUILD_DIRS 環境変数。
  • .qmlls.ini 設定ファイル。「設定ファイル」を参照。

注意: ビルドディレクトリが複数の方法で指定されている場合、コマンドラインオプションが環境変数よりも優先され、設定ファイルよりも優先されます。

自動CMakeビルドを無効にする

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

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

  • --no-cmake-calls コマンドラインオプション。この場合、エディタはqmlls を次のように起動します:
    <path/to/qmlls> --build-dir <path/to/build-directory> --no-cmake-calls
  • QMLLS_NO_CMAKE_CALLS 環境変数。
  • .qmlls.ini 設定ファイル。「設定ファイル」を参照。

設定ファイル

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

注: .qmlls.ini ファイルは、QT_QML_GENERATE_QMLLS_INI により自動生成することができます。

コンフィギュレーション・ファイルはこのようになります:

// .qmlls.ini
[General]
buildDir=<path/to/build-directory>
no-cmake-calls=<true-or-false>

現在のところ、この設定ファイルでは、現在のプロジェクトのビルドディレクトリを設定したり、 C++で定義されたQML型に対するCMakeの自動リビルド機能を無効にしたりすることができます。

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

既知の制限事項

QML Language Serverは、ビルドされていないプロジェクトに対して誤検出の警告を出すことがあります。

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

  • QML型の名前の変更
  • 無効な QML ファイルに対するオートコンプリートの提案
  • C++で定義されたオブジェクトの定義への移動
  • QMLとJavaScriptのすべての言語コンストラクトをすべての機能でサポートする。

QML Language Server の QML コードモデルは、JavaScript のすべての言語コンストラクトをまだサポートしていません。そのため、定義へのナビゲートや使用法の検索などの一部の機能は、これらの言語コンストラクトでは動作しない可能性があります。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。