QML Language Server リファレンス
QML Language Server は、Qt に同梱されているツールで、好きな(LSP をサポートする)エディタでコードを書くための Help です。詳しくはLanguage Server Protocolを参照してください。
現在のところ、QML Language Server では以下のことが可能です:
- コードのオートコンプリート
- qmllint 警告の表示
- QMLファイル内の定義への移動
- JavaScript 変数や QML オブジェクトの使用法の検索
- JavaScript 変数や QML オブジェクトの名前の変更
- QML ファイルのフォーマット
- Qt Documentation からヘルプを得る
注意: 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は、JavaScriptの変数や関数、QMLオブジェクトのプロパティ、メソッド、idの名前を、QMLファイルで定義されている限り、変更することができます。
オートコンプリート項目の提案
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 のセットアップ
注意: 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> docDir=<path/to/qt-documentation>
現在、この設定ファイルでは、現在のプロジェクトのビルドディレクトリを設定したり、 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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。