doc: add a page for qmlls
Add a page for qmlls and refer it from the QtQuick tools page.
Explain what qmlls is, what is can do, how it needs to be setup and its
known limitations.
Fixes: QTBUG-113269
Fixes: QTBUG-114474
Change-Id: Ie7da7f47bf6914f3dde86fa976e8e70636b5565b
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Semih Yavuz <semih.yavuz@qt.io>
(cherry picked from commit 3915ce1210
)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
0f452bda52
commit
53708b055c
|
@ -0,0 +1,121 @@
|
|||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||
|
||||
/*!
|
||||
\page qtquick-tool-qmlls.html
|
||||
\title QML Language Server
|
||||
\brief Overview of the QML Language Server (qmlls).
|
||||
|
||||
QML Language Server is a tool shipped with Qt that helps you write code
|
||||
in your favorite (LSP-supporting) editor.
|
||||
See \l{https://microsoft.github.io/language-server-protocol/}{Language Server Protocol}
|
||||
for more information.
|
||||
|
||||
Currently, it enables your editor to:
|
||||
\list
|
||||
\li Autocomplete your code
|
||||
\li Display qmllint warnings
|
||||
\li Navigate to definitions in QML files
|
||||
\li Find usages of JavaScript variables and QML objects
|
||||
\li Format QML files
|
||||
\endlist
|
||||
|
||||
\note qmlls is currently in development, see \l{Known Limitations} for
|
||||
more details.
|
||||
|
||||
\section1 Supported Features
|
||||
|
||||
\section2 Linting
|
||||
|
||||
QML Language Server can automatically lint opened QML files
|
||||
and display warnings or errors straight in the editor. See
|
||||
\l{qmllint} for more information about the linting process.
|
||||
|
||||
\section2 Formatting
|
||||
|
||||
QML Language Server can format entire files from inside
|
||||
the editor. See \l{qmlformat} for more information about the
|
||||
formatting process.
|
||||
|
||||
|
||||
\section2 Finding Definitions
|
||||
|
||||
QML Language Server can find definitions of JavaScript variables,
|
||||
functions, QML object id's and QML properties from their usages.
|
||||
|
||||
QML Language Server can also find the definition of types used in
|
||||
type annotations for JavaScript functions, QML object properties,
|
||||
and QML object instantiation.
|
||||
|
||||
\section2 Finding Usages
|
||||
|
||||
QML Language Server can find usages of JavaScript variables,
|
||||
QML object properties, JavaScript functions, QML object methods,
|
||||
and QML object id's.
|
||||
|
||||
\section1 Setting up the QML Language Server in Your Editor
|
||||
|
||||
\note You can find the QML Language Server binary under
|
||||
\c{<Qt installation folder>/bin/qmlls}.
|
||||
|
||||
QML Language Server also needs to know the location of your build
|
||||
folder. You can pass it the following ways:
|
||||
\list
|
||||
\li The \c{--build-dir} command line option. In this case
|
||||
your editor should invoke \c{qmlls} as following:
|
||||
\badcode
|
||||
<path/to/qmlls> --build-dir <path/to/build-directory>
|
||||
\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.
|
||||
|
||||
\section1 Configuration File
|
||||
|
||||
QML Language Server can be configured via a configuration file \c{.qmlls.ini}.
|
||||
This file should be in the root source directory of the project.
|
||||
It should be a text file in the ini-format.
|
||||
|
||||
The configuration file should look like this:
|
||||
\code
|
||||
// .qmlls.ini
|
||||
[General]
|
||||
buildDir=<path/to/build-directory>
|
||||
\endcode
|
||||
|
||||
Currently, the configuration file can only be used to set the build
|
||||
directory of the current project.
|
||||
|
||||
\note QML Language Server can create default configuration files
|
||||
using the \c{--write-defaults} option. This will overwrite an
|
||||
already existing .qmlls.ini file in the current directory.
|
||||
|
||||
\section1 Known Limitations
|
||||
|
||||
QML Language Server might emit false positive warnings on projects
|
||||
that were not built, as it needs the build information to find
|
||||
QML modules defined in the same project, for example.
|
||||
|
||||
Despite covering many common QML features,
|
||||
the QML Language Server is still in development with some features
|
||||
yet to be supported:
|
||||
|
||||
\list
|
||||
\li Renaming symbols (JavaScript variables, QML object id's, QML
|
||||
object properties, and so on).
|
||||
\li Formatting only parts of a document.
|
||||
\li Formatting using a configurable set of rules.
|
||||
\li Navigating to definitions of objects defined in C++.
|
||||
\endlist
|
||||
|
||||
The QML code model in the QML Language Server does not yet
|
||||
support all of the JavaScript language constructs, which means that
|
||||
some features like navigating to definition and finding usages might not
|
||||
work on these language constructs.
|
||||
|
||||
|
||||
*/
|
|
@ -107,4 +107,10 @@ The Qt Quick Compiler consist of two components:
|
|||
\li \l {QML type compiler}
|
||||
\li \l {QML script compiler}
|
||||
\endlist
|
||||
|
||||
\section1 QML Language Server
|
||||
|
||||
\l{QML Language Server} is a tool shipped with Qt that helps you edit
|
||||
QML code in your favorite (LSP-compatible) editor.
|
||||
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue