QML语言服务器参考
QML语言服务器是Qt附带的一个工具,它可以帮助您在自己的(支持LSP的)编辑器中编写代码。有关更多信息,请参阅语言服务器协议。
目前,它可以实现以下功能
- 自动完成代码
- 显示qmllint警告
- 导航到QML文件中的定义
- 查找JavaScript变量和QML对象的用法
- 重命名JavaScript变量和QML对象
- 格式化QML文件
注意:当前qmlls处于开发中,更多详情请参见已知限制。
支持的功能
代码检查
QML语言服务器可以自动检查打开的QML文件,并将警告或错误直接显示在编辑器中。有关代码检查过程的更多信息,请参阅qmllint。
格式化
QML语言服务器可以从编辑器内部格式化整个文件。有关格式化过程的更多信息,请参阅qmlformat。
查找定义
QML语言服务器可以查找JavaScript变量、函数、QML对象ID和QML属性的用法定义。
QML语言服务器还可以查找类型注解中所使用的JavaScript函数、QML对象属性和QML对象实例化中使用的类型的定义。
查找用法
QML语言服务器可以查找JavaScript变量、QML对象属性、JavaScript函数、QML对象方法和QML对象ID的用法。
重命名
只要在QML文件中定义,QML语言服务器就可以重命名JavaScript变量和函数,以及QML对象属性、方法和ID。
建议自动完成项
QML语言服务器为JavaScript变量、表达式和语句以及QML对象属性、方法和ID提供自动完成建议。
跟踪C++文件中的更改
QML语言服务器可以跟踪定义QML类型的C++文件中的更改。它将自动重建CMake QML模块,以提供关于由C++定义的QML类型的准确和最新的警告和完成项。
您可以通过禁用此功能。
在您的编辑器中设置QML语言服务器
注意:您可以在使用 Qt 在线安装程序安装的 Qt 中,在 <Qt 安装文件夹>/bin/qmlls
下找到 QML 语言服务器的二进制文件。
设置构建目录
QML 语言服务器需要知道您的构建目录位置。您可以通过以下方式传递它:
--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 语言服务器可以通过配置文件 .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 语言服务器可以使用 --write-defaults
选项创建默认的配置文件。这将覆盖当前目录中已存在的 .qmlls.ini 文件。
已知限制
QML 语言服务器可能会在某些未构建的项目上发出错误警告,因为它需要构建信息来查找在同一项目中定义的 QML 模块,例如。
尽管涵盖了众多常见的 QML 功能,但 QML 语言服务器仍在开发中,一些功能尚不支持
- 重命名 QML 类型。
- 在无效的 QML 文件上建议自动完成。
- 导航到在 C++ 中定义的对象的定义。
- 支持所有功能的 QML 和 JavaScript 语言结构。
QML 语言服务器中的 QML 代码模型尚不支持所有 JavaScript 语言结构,这意味着在某些语言结构上的一些功能(如导航到定义和查找用法)可能不起作用。
© 2024 Qt 公司 Ltd. 本文档中的文档贡献是各自所有者的版权。本文件提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt 及其相关商标是芬兰的 Qt 公司及其在全球的商标。所有其他商标均为其各自所有者的财产。