aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/qml/doc/src/tools/qtqml-tooling-qmlls.qdoc106
1 files changed, 60 insertions, 46 deletions
diff --git a/src/qml/doc/src/tools/qtqml-tooling-qmlls.qdoc b/src/qml/doc/src/tools/qtqml-tooling-qmlls.qdoc
index 26b096ae38..87516e9ede 100644
--- a/src/qml/doc/src/tools/qtqml-tooling-qmlls.qdoc
+++ b/src/qml/doc/src/tools/qtqml-tooling-qmlls.qdoc
@@ -90,67 +90,75 @@ by hovering over a keyword. In order to use this feature, your
Qt kit should contain the Qt documentation and your project
should be built with \l{QT_QML_GENERATE_QMLLS_INI} variable.
-\section1 Setting up the \QMLLS in Your Editor
+\section1 Setting up \QMLLS in Your Editor
-\note You can find the \QMLLS binary under
+This section describes how to develop the \QMLLS client or how to
+use your own \QMLLS client.
+
+You can find the \QMLLS binary under
\c{<Qt installation folder>/bin/qmlls} in installations of Qt
-made with \QOI.
+made with \QOI. If you want your \QMLLS client to download the binary
+directly, you can download the standalone version from github via
+\l{https://github.com/TheQtCompanyRnD/qmlls-workflow/releases} or
+\l{https://qtccache.qt.io/QMLLS/LatestRelease}.
\section2 Setting up the Build Directory
-\QMLLS needs to know the location of your build
-folder. You can pass it in the following ways:
-\list
- \li The \c{--build-dir} command line option. In this case
-your editor should invoke \c{qmlls} as following:
+\QMLLS needs to know the location of the project build folder.
+You can pass the build folder in the following ways.
+
+\section3 AddBuildDirs LSP Extension
+
+To pass build directories via the LSP extension, send a notification
+to \QMLLS for the \c{$/addBuildDirs} method. \c{$/addBuildDirs}
+accepts one parameter of the form:
\badcode
-<path/to/qmlls> ... --build-dir <path/to/build-directory> ...
+interface AddBuildDirsParams {
+ buildDirsToSet: UriToBuildDirs[];
+}
+\endcode
+where \c{UriToBuildDirs} contains a workspace URI and a list of build
+directories.
+The workspace URI must designate a workspace advertised to \QMLLS via
+\l{https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#workspace_workspaceFolders}{workspaceFolders}
+or
+\l{https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#workspace_didChangeWorkspaceFolders}{didChangeWorkspaceFolders}.
+The build directories are file paths, not URIs.
+\badcode
+interface UriToBuildDirs {
+ baseUri: URI;
+ buildDirs: string[];
+}
\endcode
- \li The \c{QMLLS_BUILD_DIRS} environment variable.
- \li The \c{.qmlls.ini} settings file, see \l {Configuration File}.
-\endlist
-
-\note When the build directory is specified in multiple ways, the
-command line option takes preference over the environment variable
-that takes precedence over the setting file.
-\section2 Setting up the import paths
+\section3 --build-dir Command Line Option
-\QMLLS needs to know the import paths of the Qt version that you
-are using in your project. You can pass the import paths in the
-following ways:
-\list
- \li The \c{-I} command line option. In this case
+If you don't need to support multiple workspaces, you can pass the build
+directories via the \c{--build-dir} command line option. In this case
your editor should invoke \c{qmlls} as following:
\badcode
-<path/to/qmlls> ... -I /path/to/imports -I /optional/path/to/another/import ...
+<path/to/qmlls> ... --build-dir <path/to/build-directory> ...
\endcode
- \li The \c{QML_IMPORT_PATH} environment variable. In this case you
- should pass the \c{-E} option to \QMLLS.
- \li The \c{.qmlls.ini} settings file, see \l {Configuration File}.
-\endlist
-\note When the import path is specified in multiple ways, the
-command line option takes preference over the environment variable
-that takes precedence over the setting file.
+The build directory will be applied to all workspaces if you use multiple
+workspaces in the same \QMLLS. The values from \c{addBuildDirsMethod}
+have higher precedence than the command line option.
-\section2 Setting up the documentation path
+\section3 QMLLS_BUILD_DIRS Environment Variable
-\QMLLS can show documentation hints when it knows the documentation
-path of the Qt version that you are using in your project. You can pass
-the documentation path in the following ways:
-\list
- \li The \c{-d} or \c{-p} command line option. In this case
-your editor should invoke \c{qmlls} as following:
-\badcode
-<path/to/qmlls> ... -d /path/to/docs ...
-\endcode
- \li The \c{.qmlls.ini} settings file, see \l {Configuration File}.
-\endlist
+You can also pass the build directories via the \c{QMLLS_BUILD_DIRS}
+environment variable. The build directory will be applied to all
+workspaces if you use multiple workspaces in the same \QMLLS.
+The values from \c{--build-dir} have higher precedence than the
+environment variable.
-\note When the documentation path is specified in multiple ways, the
-command line option takes preference over the environment variable
-that takes precedence over the setting file.
+\section3 \c{.qmlls.ini} Settings File
+
+If you can't pass the build directories using one of the previous options,
+you could try passing build directories to \QMLLS via a configuration file.
+See also \l{Configuration File}.
+The values from the settings file have lower precedence than
+\c{--build-dir}, \c{QMLLS_BUILD_DIRS}, and \c{addBuildDirsMethod}.
\section2 Configuring Automatic CMake Builds
@@ -166,7 +174,8 @@ your editor should invoke \c{qmlls} as follows:
\endcode
\li The \c{QMLLS_NO_CMAKE_CALLS} environment variable.
\li The \c{.qmlls.ini} settings file, see \l {Configuration File}.
- \li The \l{QT_QML_GENERATE_QMLLS_INI_NO_CMAKE_CALLS} CMake variable.
+ \li The \l{QT_QML_GENERATE_QMLLS_INI_NO_CMAKE_CALLS} CMake variable
+if \l{QT_QML_GENERATE_QMLLS_INI} is enabled.
\endlist
To control the number of jobs used by CMake, use
@@ -212,9 +221,14 @@ importPaths=<path/to/imports> # not required in Qt 6.10 and later
To use the configuration file to disable the automatic CMake rebuild
functionality, set \c{no-cmake-calls} to \c{true}.
+
To control the number of jobs used by automatic CMake rebuilds, set the
CMakeJobs value.
+To support clients that can't pass the build directory to \QMLLS, as
+described in \l{Setting up the Build Directory}, set the buildDir value
+or let CMake generate the .qmlls.ini via \l {QT_QML_GENERATE_QMLLS_INI}.
+
\note \QMLLS can create default configuration files
using the \c{--write-defaults} option. This will overwrite an
already existing .qmlls.ini file in the current directory.