Merge remote-tracking branch 'origin/4.13' into master

Change-Id: I1c426d95eedd82bd4470a64a9bafd734d23081ac
This commit is contained in:
Eike Ziller
2020-08-13 11:41:32 +02:00
104 changed files with 1674 additions and 655 deletions

View File

@@ -52,6 +52,7 @@ Editing
* Fixed sorting in completion (QTCREATORBUG-6242)
* Fixed that find usages was finding function arguments when searching functions (QTCREATORBUG-2176)
* Fixed crash in lexer (QTCREATORBUG-19525)
* Fixed handling of incomplete macro invocations (QTCREATORBUG-23881)
### Language Client
@@ -63,6 +64,7 @@ Editing
### QML
* Added support for moving functions in outline (QTCREATORBUG-21993)
* Added support for required list properties (QTBUG-85716)
* Fixed issues with Qt 5.15 imports
* Fixed updating of outline (QTCREATORBUG-21335)
* Fixed resolution of easing curve (QTCREATORBUG-24142)
@@ -72,6 +74,10 @@ Editing
* Added tool button for opening interactive Python, optionally importing current file
* Fixed highlighting of parentheses
### Generic Highlighter
* Updated to KSyntaxHighlighter 5.73.0
### Diff Viewer
* Added option to select encoding (QTCREATORBUG-23835)
@@ -124,6 +130,11 @@ Debugging
* Added option to reset all formats for watches to default
* Added option to override sysroot setting when starting or attaching to external application
* Fixed crash when removing all breakpoints of a file (QTCREATORBUG-24306)
### CDB
* Fixed that valid expressions sometimes were `<not accessible>` (QTCREATORBUG-24108)
Analyzer
--------
@@ -142,6 +153,7 @@ Version Control Systems
* Added option to open `git-bash` (Windows, `Tools` > `Git` > `Git Bash`)
* Added colors to log (QTCREATORBUG-19624)
* Fixed that adding new files was also staging their content (QTCREATORBUG-23441)
Test Integration
----------------
@@ -154,6 +166,7 @@ Code Pasting
------------
* Added option for public or private pastes (QTCREATORBUG-23972)
* Fixed fetching from DPaste
Platforms
---------
@@ -169,7 +182,14 @@ Platforms
* Added splash screen editor to manifest editor (QTCREATORBUG-24011, QTCREATORBUG-24013)
* Fixed QML debugging and profiling (QTCREATORBUG-24155)
* Fixed debugging on x86 and armv7 architectures (QTCREATORBUG-24191)
* Fixed debugging on emulator (QTCREATORBUG-23291)
* Fixed issue with long kit names (QTBUG-83875)
* Fixed display of logcat (QTCREATORBUG-23177, QTCREATORBUG-23919)
* Fixed detection of Android Studio's JDK on Windows
### iOS
* Fixed slow debugger startup on devices (QTCREATORBUG-21682)
### Bare Metal
@@ -181,12 +201,14 @@ Platforms
Credits for these changes go to:
--------------------------------
Aaron Barany
Aleksei German
Alessandro Portale
Alexis Jeandet
Alexis Murzeau
Andre Hartmann
André Pönitz
Artur Shepilko
Assam Boudjelthia
Christian Kamm
Christian Kandeler
@@ -195,7 +217,9 @@ Cristian Adam
David Schulz
Denis Shienkov
Eike Ziller
Fawzi Mohamed
Federico Guerinoni
Friedemann Kleint
Henning Gruendl
Ivan Komissarov
Jaroslaw Kobus
@@ -210,6 +234,7 @@ Leena Miettinen
Mahmoud Badri
Marco Bubke
Michael Brüning
Michael Weghorn
Michael Winkelmann
Miikka Heikkinen
Mitch Curtis
@@ -218,14 +243,18 @@ Oliver Wolff
Or Kunst
Orgad Shaneh
Philip Van Hoof
Richard Weickelt
Robert Löhning
Tarja Sundqvist
Thiago Macieira
Thomas Hartmann
Tim Jenssen
Tobias Hunger
Ulf Hermann
Unseon Ryu
Venugopal Shivashankar
Viacheslav Tertychnyi
Vikas Pachdha
Ville Nummela
Ville Voutilainen
Volodymyr Zibarov

View File

@@ -57,7 +57,8 @@ depends += qtandroidextras\
qtsensors \
qttestlib \
qtuitools \
qtxml
qtxml \
qtlocation
include(../../config/macros.qdocconf)
include(../../config/qt-cpp-ignore.qdocconf)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

@@ -1,6 +1,6 @@
/****************************************************************************
**
** Copyright (C) 2019 The Qt Company Ltd.
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -34,18 +34,22 @@
\title Connecting Android Devices
You can connect Android devices to the development PC to build, run, debug,
and analyze applications from \QC. Devices with Android
version 4.1 (API level 16) or later are supported.
You can connect Android devices to the development PC using USB cables
to build, run, debug, and analyze applications from \QC. Devices with
Android version 4.1 (API level 16) or later are supported.
If you have a tool chain for building applications for Android devices
installed on the development PC, you can add it to \QC. You can then add a
\l{glossary-buildandrun-kit}{kit}
with the tool chain, and the Qt version for Android for the device's architecture,
to build applications for and run them on Android devices. Starting from Qt 5.14.0,
Qt for Android package contains all the architectures (ABIs) installed as one.
You can also allow \QC to automatically create kits for installed Qt version
and tool chains.
To develop for Android, you must have a tool chain for building applications
for Android devices installed on the development PC. \QC can automatically
dowload and install the tool chain and create a suitable build and run
\l{glossary-buildandrun-kit}{kit} that contains the tool chain and the Qt
version for Android for the device's architecture.
Starting from Qt 5.14.0, the Qt for Android package contains all the
architectures (ABIs) installed as one.
\note You can build a 64-bit version of Qt for Android yourself. However,
for such a Qt version, the minimum required Android version on devices
is 5.0 (API level 21). For more information, see \l{Qt for Android}.
The Android Debug Bridge (adb) command line tool is integrated to \QC to
enable you to deploy applications to connected Android devices, to run
@@ -54,164 +58,86 @@
\section1 Requirements
To use \QC to develop Qt applications for Android, you need the following:
To use \QC to develop Qt applications for Android, you need
\l{Qt for Android} 5.2, or later, and the tool chain that \QC
can automatically download, install, and configure for you.
For more information, see \l{Installing the Prerequisites}.
\section1 Specifying Android Device Settings
\QC offers to automatically install all the necessary packages and tools and
to set up your development environment by creating debuggers, tool chains,
and kits. You can use \QC to:
\list
\li \l{AdoptOpenJDK} for all platforms. You can also use \l{OpenJDK}
on Linux.
\note Android SDK Tools versions <= 26.x have issues with JDK versions
later than 8. It is recommended to use the latest Command-line SDK Tools.
\li \l{http://www.gradle.org}{Gradle} for building application packages
(APK) and app bundles (AAB) for Android devices. Gradle is delivered
with Qt 5.9, and later, because Gradle scripts are not delivered
with Android SDK tools since version 26.0.0.
\note Using Ant to build APKs is no longer supported.
\li \l{http://developer.android.com/sdk/index.html}{Android SDK Tools}
The following Android SDK packages and tools are required for
development:
\list
\li Platform tools
\li Build tools
\li At least one SDK platform
\li The \l{http://developer.android.com/tools/sdk/ndk/index.html}
{Android NDK} from Google that provides the tool chain for
building applications for Android devices. For a detailed
list of Qt versions and their recommended NDK versions,
see \l{https://doc-snapshots.qt.io/qt5-5.14/android-getting-started.html}
{The Android NDK}.
\li Download and extract the Android SDK Command-line Tools.
\li Install or update the essential packages such as NDKs,
build tools, and platform tools.
\endlist
\li On Windows, you also need the Android Debug Bridge (ADB) driver
on the Windows platform to enable USB debugging. The default USB
driver on Windows does not allow debugging. For more information
about installing ADB, see \l {ADB windows driver}
{ADB driver installation}.
\endlist
\section1 Setting Up the Development Environment
To build Android applications with Qt, install Qt for Android 5.2, or later.
\note You can build a 64-bit version of Qt for Android yourself. However,
for such a Qt version, the minimum required Android version on devices
is 5.0 (API level 21).
For more information, see \l{Qt for Android}.
Download and install the latest Android SDK, and then install
or update the NDKs, tools and packages needed for development.
Starting from \QC 4.12, \QC offers to automatically set up your Android
environment and install all the necessary packages and Tools, then
creating debuggers, tool chains, and kits. For more information,
see \l {Specifying Android Device Settings}.
Alternatively, use the Android SDK command line tools to install
the required packages. In that case, it is recommended to create an
empty folder and extract the downloaded archive into this folder.
\note The recommended Android SDK Tools version is 25.3.0, or later. The version
25.2.5, or earlier, can be used but it is not advised because it cannot be
fully integrated with \QC.
\list
\li Android SDK Tools version 25.3.0, or later
This allows using the
\l{https://developer.android.com/studio/command-line/sdkmanager.html}
{sdkmanager} command line tool for SDK package management and the
\l{https://developer.android.com/studio/command-line/avdmanager.html}
{avdmanager} tool for Android Virtual Device (AVD) management.
The sdkmanager will install downloaded packages next to the \c tools
folder that contains all command line tools. You must specify the path
to the folder where you extracted the files as Android SDK location
inside the Android settings.
To install those packages, use the following command:
\badcode
./sdkmanager "platform-tools" "platforms;android-29" "build-tools;29.0.2" "ndk-bundle"
\endcode
For Qt 5.12.0 to 5.12.5 and Qt 5.13.0 to 5.13.1, the following
should be installed instead:
\badcode
./sdkmanager "platform-tools" "platforms;android-29" "build-tools;28.0.2" "ndk;19.2.5345600"
\endcode
\target ADB windows driver
Under Windows, Google's USB drivers can be installed by running:
\badcode
sdkmanager.bat "extras;google;usb_driver"
\endcode
For more information about altenative methods of obtaining the USB
driver, see \l{http://developer.android.com/sdk/win-usb.html}.
After the package installation is complete, install the driver from
\c{<ANDROID_SDK_ROOT>/extras/google/usb_driver}. Try running a few basic
\l{http://developer.android.com/tools/help/adb.html}{adb} commands now
and check whether your Android device responds to them.
\li Android SDK Tools version 25.2.5, or earlier
If your Qt version is earlier than v5.9, use this SDK tools version.
The SDK tool used to install and update the other SDK tools and packages
depends on the Android SDK Tools version that you have installed:
Use the
\l{https://developer.android.com/studio/tools/help/android.html}
{android} tool that comes with the SDK Tools package. For example,
on Ubuntu the following command starts the SDK update:
\code
./android update sdk
\endcode
\endlist
\section2 Specifying Android Device Settings
To configure connections to Android devices and general Android settings:
To set up the development environment for Android:
\list 1
\li Select \uicontrol Tools > \uicontrol Options > \uicontrol Devices >
\uicontrol Android.
\image qtcreator-options-android-main.png "Android options"
\li In the \uicontrol {JDK location} field, set the path to the JDK.
\QC checks the JDK installation and reports errors.
By default, \QC tries to find any valid JDK/OpenJDK installation.
However, if none is found, you must set it manually. Click the
\inlineimage icons/download-icon.png
(\uicontrol Download) button to open the JDK download web page in the
default browser. \QC checks the JDK installation and reports errors.
By default, \QC tries to find a supported \l{AdoptOpenJDK} or
\l{OpenJDK} installation. If none is found, you must set the path
manually. If you don't have a supported JDK installed, select
\inlineimage online.png
to open the JDK download web page in the default browser.
\li In the \uicontrol {Android Settings} group, set the path to the
Android SDK Tools.
\note We recommended using a 64-bit JDK, because the 32-bit one
might cause issues with \c cmdline-tools, and some packages might
not be listed.
\li In the \uicontrol {Android SDK location} field, set the path to the
folder where you want the \l{Android SDK Command-line Tools} to be
installed.
\li Select \uicontrol {Set Up SDK} to automatically download and extract
the Android SDK Command-line Tools to the selected path.
Select \inlineimage reload_gray.png
button to automatically download and extract the Android SDK Tools
to the selected path. This will do the following:
The SDK Manager checks whether the tool chain is installed.
If packages are missing or updates are needed, the SDK Manager
offers to add or remove those packages. Before taking action, it
prompts you to accept the changes it is about to make. In addition,
it prompts you to accept Google licenses, as necessary.
\li The installed NDK versions are listed below the SDK path.
The locked items were installed by the SDK Manager,
and can only be modified from the \uicontrol {SDK Manager} tab.
For more information, see \l{Managing Android NDK Packages}.
\li In the \uicontrol {Android OpenSSL} group, set the path to the
prebuilt OpenSSL libraries.
\list 1
\li Download and extract the Android SDK Tools.
\li Install or update the essential packages such as NDKs,
build tools, platform tools.
For Qt applications that require OpenSSL support, \QC allows to
quickly add the \l {Android OpenSSL support} to your project.
For more information, see \l{Adding External Libraries}.
\li Select \inlineimage online.png
to download the OpenSSL repository to the selected path. If the
automatic download fails, the download web page opens for manual
download.
\li Select the \uicontrol {Automatically create kits for Android tool chains}
check box to allow \QC to create the kits for you. \QC displays a
warning if it cannot find a suitable Qt version.
\endlist
The SDK Tools download URL, the essential packages list, and the
appropriate NDK for each Qt version are defined in a JSON
\section2 Manual Setup
\note We recommend that you use the latest Android SDK Command-Line Tools.
Using Android SDK Tools version 25.2.5 or earlier is not supported, because
they cannot be fully integrated with \QC.
However, if the automatic setup does not meet your needs, you can download
and install Android SDK Command-line Tools, and then install or update the
NDKs, tools and packages needed for development. For more information, see
\l{Getting Started with Qt for Android}.
\section2 Viewing Android Tool Chain Settings
The Android SDK Command-Line Tools download URL, the essential
packages list, and the appropriate NDK for each Qt version are defined in a JSON
configuration file. The file is located under the user's \QC
resource folder:
@@ -236,89 +162,35 @@
]
\endcode
The latest version of the configuration file that is up-to-date
with the Android SDK and NDK changes is found
\l{https://code.qt.io/cgit/qt-creator/qt-creator.git/plain/share/qtcreator/android/sdk_definitions.json}{here}.
You can view the latest version of the configuration file that is up-to-date
with the Android SDK and NDK changes, \l{sdk_definitions.json}, in Git.
The installed NDK versions are listed below the SDK path.
The items with a lock icon are versions installed from the SDK Manager,
and can only be modified from the SDK Manager tab. For more information,
see \l{Managing Android SDK Packages}. Custom NDK paths can be manually
added to the global list of NDKs via the \uicontrol Add button.
This creates custom tool chains and debuggers associated to
that NDK, which can be used to create custom kits defined by the user.
\section2 Managing Android NDK Packages
To manually download the SDK Tools, select \inlineimage icons/download-icon.png
to open the SDK or NDK download web page in the default browser.
The SDK Manager checks the Android NDK and SDK installations,
reports errors, and offers to install the necessary packages.
To view the installed \l{Android NDK} versions, select \uicontrol Tools >
\uicontrol Options > \uicontrol Devices > \uicontrol Android.
\image qtcreator-options-android-sdk-tools.png "Android NDK and SDK checks"
\li In the \uicontrol {Android OpenSSL} group, set the path to the
prebuilt OpenSSL libraries.
The locked versions were installed by the SDK Manager, and can only
be modified from the SDK Manager tab. For more information, see
\l{Managing Android SDK Packages}.
For Qt applications that require OpenSSL support, \QC allows to
quickly add the \l{https://marketplace.qt.io/products/android-openssl-support}
{Android OpenSSL support} to your project. For more details, see
\l{Adding External Libraries}.
To manually download NDKs, select \inlineimage online.png
.
Select \inlineimage icons/download-icon.png
to download the OpenSSL repository to the selected path. If the
automatic download fails, the download web page opens for manual download.
\li Select the \uicontrol {Automatically create kits for Android tool chains}
check box to allow \QC to create the kits for you. \QC displays a
warning if it cannot find a suitable Qt version.
\li Select \uicontrol File > \uicontrol {New File or Project} >
\uicontrol {Application (Qt Quick)} >
\uicontrol {Qt Quick Application - Empty} > \uicontrol Choose, and
follow the instructions of the wizard to create a project. For more
information, see
\if defined(qtcreator)
\l{Creating Qt Quick Projects}.
\else
\l{Creating UI Prototype Projects}.
\endif
\li To specify settings for deploying applications to Android, select
\uicontrol Projects > \uicontrol Run for the \uicontrol Android kit, and then select
\uicontrol Details to view the \uicontrol {Deploy configurations}. For more
information about the options you have, see
\l{Deploying Applications to Android Devices}.
\li Enable debugging on your Android device.
Debugging is enabled in different ways on different Android devices.
Look for \uicontrol {USB Debugging} under \uicontrol {Developer Options}. On
some devices \uicontrol {Developer Options} is hidden and becomes visible
only when you tap the \uicontrol {Build number} field in \uicontrol Settings >
\uicontrol About several times. For more details, check
\l{https://developer.android.com/studio/debug/dev-options}{Configure on-device developer options}.
\li Connect the Android device to the development PC with a USB cable.
You might be asked to select a device in the
\l{Selecting Android Devices}{Select Android Devices} dialog.
\endlist
To add custom NDK paths manually to the global list of NDKs, select
\uicontrol Add. This creates custom tool chains and debuggers associated
to that NDK. However, you have to manually create a kit that uses the
custom NDK. For more information, see \l{Adding Kits}.
\section2 Managing Android SDK Packages
Since Android SDK Tools version 25.3.0, only a command-line tool,
\l{https://developer.android.com/studio/command-line/sdkmanager.html}
{sdkmanager}, is provided by Android for SDK package management. To make SDK
management easier, \QC provides an SDK Manager for installing, updating, and
removing SDK packages. You can still use sdkmanager for advanced SDK
management.
After you set the path to the Anroid SDK in \uicontrol Tools >
\uicontrol Options > \uicontrol Devices > \uicontrol Android, the
SDK Manager checks that all the necessary SDK packages have been installed.
If packages are missing or updates are needed, the SDK Manager offers to
add or remove those packages. Before taking action, it prompts
you to accept the changes it is about to make. In addition, it prompts you to
accept Google licenses, as necessary.
\l {sdkmanager}, is provided by Android for SDK package management.
To make SDK management easier, \QC provides an SDK Manager for
installing, updating, and removing SDK packages. You can still use
sdkmanager for advanced SDK management.
To view the installed Android SDK packages, select \uicontrol Tools >
\uicontrol Options > \uicontrol Devices > \uicontrol Android >
@@ -338,38 +210,39 @@
\uicontrol {SDK Manager arguments} field. The available arguments are listed
and described in \uicontrol {Available arguments}.
To manage packages installed from Android SDK Tools version 25.2.5, or
earlier, you can use the native Android SDK Manager. The \QC SDK Manager and
the native SDK Manager are mutually exclusive, because they are used for
different Android SDK Tools versions. If you have the native SDK Manager
installed, you can open it by selecting \uicontrol {Native SDK Manager}.
\section1 Managing Android Virtual Devices (AVD)
A list of AVDs is shown under \uicontrol Tools > \uicontrol Options >
\uicontrol Devices > \uicontrol Android > \uicontrol {AVD Manager}. This
works only with a valid \uicontrol {SDK Tools} path being set. The value in
\uicontrol {System/data partition size} is used to set the emulator's system
partition size upon execution with \uicontrol {Start}.
works only if the \uicontrol {Android SDK location} is set correctly in
\uicontrol {Android Settings}.
The value in \uicontrol {System/data partition size} is used to set the
emulator's system partition size upon execution with \uicontrol {Start}.
\image qtcreator-android-avd-manager.png "Android NDK and SDK checks"
\section1 Creating a New AVD
\section2 Creating a New AVD
To create new virtual devices, select \uicontrol Tools > \uicontrol Options >
\uicontrol Devices > \uicontrol Android > \uicontrol {AVD Manager} > \uicontrol {Add}.
To create new virtual devices:
In the \uicontrol {Create new AVD} dialog, you can create a new custom AVD
by setting the name, device type, skin, architecture, API level, and SD card
size. You need to have a valid \uicontrol {System Image} installed
before using this dialog, either from \QC's \uicontrol {SDK Manager} tab or
from Android Studio.
\list 1
\li Select \uicontrol Tools > \uicontrol Options > \uicontrol Devices >
\uicontrol Android.
\li In the \uicontrol {SDK Manager} tab, select \uicontrol Install for
an Android version, and then select \uicontrol Apply to install a
system image. Alternatively, you can install the system image from
Android Studio.
\li In the \uicontrol {AVD Manager} tab, select \uicontrol {Add} to
open the \uicontrol {Create New AVD} dialog.
\image qtcreator-android-create-avd.png "Android NDK and SDK checks"
\li Set the name, type, skin, architecture, API level, and SD card size
of the device.
\li Select \uicontrol OK to create the AVD.
\endlist
For more advanced options for creating a new AVD, use the command-line tool
\l{https://developer.android.com/studio/command-line/avdmanager.html}{avdmanager},
or use Android Studio's native AVD Manager's UI.
\image qtcreator-android-create-avd.png "Android NDK and SDK checks"
\l{avdmanager}, or use Android Studio's native AVD Manager's UI.
\section1 Selecting Android Devices
@@ -407,9 +280,6 @@
\l{Creating a New AVD}. If you run an application without a device connected to the
development PC and without an AVD specified, \QC asks you to add an AVD.
For Android SDK Tools 25.2.5, or earlier, select \uicontrol {Native AVD Manager}
to manage AVDs.
\note The Android Emulator has a bug that prevents it from starting on some
systems. If the Android Emulator does not start, you can try starting it
manually by running the following commands:
@@ -419,11 +289,17 @@
./emulator -avd <AVD_NAME>
\endcode
For more information, see \l{https://developer.android.com/studio/run/emulator-commandline}
{Start the emulator from the command line}.
For more information, see \l{Start the emulator from the command line}.
\section1 Debugging on Android Devices
Debugging is enabled in different ways on different Android devices.
Look for \uicontrol {USB Debugging} under \uicontrol {Developer Options}. On
some devices \uicontrol {Developer Options} is hidden and becomes visible
only when you tap the \uicontrol {Build number} field in \uicontrol Settings
> \uicontrol About several times. For more information, see
\l {Configure on-device developer options}.
Select a \l{glossary-build-config}{debug build configuration} to build
the application for debugging.

View File

@@ -139,8 +139,7 @@
This field does not specify the minimum supported API level nor the target
API level, which you can specify in the Android manifest. See
\l{Editing Manifest Files}. For more information about Android API levels, see
\l{http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels}
{What is API Level?}.
\l{What is API Level?}.
\section3 Building AABs
@@ -149,15 +148,16 @@
distribution to the Google Play store, create an AAB by selecting
the \uicontrol {Build .aab (Android App Bundle)} check box.
When building with CMake, you can select the ABIs to build the application
for in the \uicontrol CMake settings:
When building with CMake, you can view the selected ABIs in the
\uicontrol {Initial CMake parameters} field in the \uicontrol CMake section.
You can set additional ABIs as values of the ANDROID_ABI key:
\image qtcreator-android-cmake-settings.png "CMake settings for building AABs"
When building with qmake, you can select the ABIs in the \uicontrol ABIs
field in the \uicontrol {Build Steps}:
\image qtcreator-android-build-steps.png "Android Build Steps"
\image qtcreator-android-build-steps.png "qmake settings for building AABs"
\section3 Signing Android Packages
@@ -258,7 +258,8 @@
Android manifest file unless you need to specify Android specific settings
like the application's icon. Also, the manifest file is needed if you want
to publish the package in the Play Store.
You can create an Android manifest file and edit it in \QC. Select
If you use qmake as the build system, you can create an Android manifest
file and edit it in \QC. Select
\uicontrol Projects > \uicontrol Build > \uicontrol {Build Android APK}
> \uicontrol {Create Templates} to create the file and to open it in the
Android Manifest Editor.
@@ -270,9 +271,7 @@
\li In the \uicontrol {Package name} field, enter a package name for the application.
The application is launched by an automatically generated Java launcher that
is packaged with the application into an Android package (.apk). For more
information, see
\l{http://developer.android.com/guide/components/fundamentals.html}
{Android Application Fundamentals}.
information, see \l{Android Application Fundamentals}.
\li You can specify an internal version number for the package in the
\uicontrol {Version code} field. It is used to determine whether one version of
@@ -291,23 +290,23 @@
means that the overflow button in the system navigation bar will not be
enabled by default.
\li In the \uicontrol Application group, you can set the application's name.
\li In the \uicontrol Application group, set the application's name.
You can also give an activity a name and select the activity to run.
\li The \uicontrol {Style extraction} combo box sets the used method that Qt
uses to extract style information. It has the following values:
\li In the \uicontrol {Style extraction} field, set the method that Qt
uses to extract style information:
\list
\li \uicontrol Default or \uicontrol Full: Use this when working with
Qt Widgets or Qt Quick Controls 1.
\li Select \uicontrol Default or \uicontrol Full when using
Qt Widgets or Qt Quick Controls 1 in your project.
\note This method uses some Android non-SDK interfaces,
that are being restricted by Google starting from Android 9.0
(API 28).
\li \uicontrol minimal: Use this when working with Qt Quick Controls 2
with no Qt Widgets or Qt Quick Controls 1. This is faster than
\uicontrol full or \uicontrol default.
\li \uicontrol none: Use this if you're not working with Qt Widgets,
or Qt Quick Controls 1 or 2 in your project.
\li Select \uicontrol Minimal when using Qt Quick Controls 2
but no Qt Widgets or Qt Quick Controls 1. This is faster than
using the default or full options.
\li Select \uicontrol None when using neither Qt Widgets
nor Qt Quick Controls 1 or 2.
\endlist
\li In \uicontrol {Application icon}, select an icon. Click the
@@ -315,6 +314,13 @@
then, it will resize and set the three icon fields for low, medium, and high DPI icons
as needed.
\li In \uicontrol {Splash screen}, select images to display as splash
screens depending on the device orientation. You can set different images
to be shown on low, medium, and high DPI displays. By default, the splash
screen is hidden automatically when an activity is drawn. To keep it
visible until \l{QtAndroid::hideSplashScreen()} is called, select the
\uicontrol {Sticky splash screen} check box.
\li In \uicontrol {Android services}, you can add and remove services. You must
enter at least a service class name for a new service. If you select
\uicontrol {Run in external process}, you also need to enter a process name.
@@ -333,8 +339,8 @@
\li Select the \uicontrol {Include default permissions for Qt modules} and
\uicontrol {Include default features for Qt modules} check boxes to add the
permissions needed by Qt libraries. This can be
android.permission.WRITE_EXTERNAL_STORAGE for QtCore, or
android.permission.ACCESS_COARSE_LOCATION for QtLocation.
\c {android.permission.WRITE_EXTERNAL_STORAGE} for \l{Qt Core} or
\c {android.permission.ACCESS_COARSE_LOCATION} for \l{Qt Location}.
\li To add a permission, select it from the list, and then click \uicontrol Add.

View File

@@ -1,6 +1,6 @@
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
@@ -53,3 +53,43 @@
\externalpage http://openjdk.java.net
\title OpenJDK
*/
/*!
\externalpage http://developer.android.com/sdk/index.html
\title Android SDK Command-line Tools
*/
/*!
\externalpage https://developer.android.com/studio/command-line/avdmanager.html
\title avdmanager
*/
/*!
\externalpage http://developer.android.com/tools/sdk/ndk/index.html
\title Android NDK
*/
/*!
\externalpage https://developer.android.com/studio/debug/dev-options
\title Configure on-device developer options
*/
/*!
\externalpage https://developer.android.com/studio/command-line/sdkmanager.html
\title sdkmanager
*/
/*!
\externalpage https://code.qt.io/cgit/qt-creator/qt-creator.git/plain/share/qtcreator/android/sdk_definitions.json
\title sdk_definitions.json
*/
/*!
\externalpage https://developer.android.com/studio/run/emulator-commandline
\title Start the emulator from the command line
*/
/*!
\externalpage https://marketplace.qt.io/products/android-openssl-support
\title Android OpenSSL support
*/
/*!
\externalpage http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels
\title What is API Level?
*/
/*!
\externalpage http://developer.android.com/guide/components/fundamentals.html
\title Android Application Fundamentals
*/

View File

@@ -30,7 +30,7 @@
// **********************************************************************
/*!
\previouspage creator-project-nimble.html
\previouspage creator-project-incredibuild.html
\page creator-cli.html
\nextpage creator-keyboard-shortcuts.html

View File

@@ -0,0 +1,141 @@
/****************************************************************************
**
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [incredibuild build steps]
\section2 IncrediBuild Build Steps
To use IncrediBuild, select \uicontrol {Add Build Step} >
\uicontrol {IncrediBuild for Linux} or
\uicontrol {IncrediBuild for Windows}.
\image qtcreator-incredibuild-build-steps-general.png
IncrediBuild automatically detects the build step by iterating over the
build steps you already defined. The initial build step settings will
be part of your IncrediBuild build step, so your usual build tool will
still be used, but with the added benefit of IncrediBuild's build
acceleration and graphical Build Monitor.
In the \uicontrol {Target and configuration} group, specify the command
helper and arguments that will be used to construct the build command.
The build errors and warnings are parsed and displayed in the
\uicontrol Issues output pane.
Select the \uicontrol {Keep original jobs num} check box to stop
IncrediBuild from overriding the \c {-j} command line switch, which
controls the number of processes that the build tools executed by
\QC run in parallel. The default value set by IncrediBuild is 200.
The distribution control settings to specify depend on whether you are using
Linux or Windows.
\section3 Distribution Control Settings on Linux
\image qtcreator-incredibuild-build-steps-linux.png
You can specify the following options for Linux builds:
\list
\li \uicontrol {Nice value} is a numeric value between -20 and 19
\li \uicontrol {Force remote} forces \c allow_remote tasks to
remote Helpers.
\li \uicontrol {Alternate tasks preference}
\endlist
\section3 Distribution Control Settings on Windows
\image qtcreator-incredibuild-build-steps-windows.png
You can specify the following options for Windows builds:
\list
\li \uicontrol {Profile.xml} defines how Automatic Interception
Interface handles processes in a distributed job. It is not
necessary for Visual Studio or Make and Build tools builds, but can
be used to provide configuration options if those builds use
additional processes that are not included in those packages. It is
required to configure distributable processes in Dev Tools builds.
\li \uicontrol {Avoid local} frees up resources on the initiator
machine. This might be beneficial for distribution if the initiator
turns into a bottleneck for the build because of high CPU usage.
\li \uicontrol {Maximum CPUs to utilize in the build} specifies the
maximum amount of remote cores to use in the build. Overrides the
corresponding global setting.
\li \uicontrol {Newest allowed Helper machine OS} and
\uicontrol {Oldest allowed Helper machine OS} specify the newest and
oldest operating system installed on a Helper machine to be allowed
to participate as a Helper in the build.
\li \uicontrol {Build Title} specifies a custom header line which will
be displayed in the beginning of the build output text. This title
will also be used for the Build History and Build Monitor displays.
\li \uicontrol {Save IncrediBuild monitor file} writes a copy of the
build progress (\c{.ib_mon}) file to the specified location.
If only a folder name is given, IncrediBuild generates a GUID for
the file name. A message containing the location of the saved
\c{.ib_mon} file is added to the end of the build output.
\li \uicontrol {Suppress STDOUT} does not write anything to the standard
output.
\li \uicontrol {Output log file} writes build output to a file.
\li \uicontrol {Show commands in output} shows the command-line used by
IncrediBuild to build the file.
\li \uicontrol {Show agents in output} shows the Agent used to build
each file.
\li \uicontrol {Show time in output} shows the start and finish time for
each file built.
\li \uicontrol {Hide IncrediBuild Header in output} suppresses the
IncrediBuild header in the build output.
\li \uicontrol {Internal IncrediBuild logging level} overrides the
internal Incredibuild logging level for this build. Does not affect
output or any user accessible logging. Used mainly to troubleshoot
issues with the help of IncrediBuild support.
\li \uicontrol {Set an environment variable} sets or overrides
environment variables for the context of the build.
\li \uicontrol {Stop on errors} stops the execution as soon as an error
is encountered. This is the default behavior in Visual Studio
builds, but not for Make and Build tools or Dev Tools builds.
\li \uicontrol {Additional arguments} are concatenated to the final
buildconsole command line.
\li \uicontrol {Open Monitor} opens an IncrediBuild Build Monitor that
graphically displays the build's progress once the build starts.
\endlist
//! [incredibuild build steps]
//! [incredibuild clean steps]
\section2 IncrediBuild Clean Steps
When building with IncrediBuild, you can add arguments and targets for the
clean command in \uicontrol {Clean Steps}.
For more information about the settings, see \l{IncrediBuild Build Steps}.
The build errors and warnings are parsed and displayed in the
\uicontrol Issues output pane.
//! [incredibuild clean steps]
*/

View File

@@ -0,0 +1,45 @@
/****************************************************************************
**
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
\previouspage creator-project-meson.html
\page creator-project-incredibuild.html
\nextpage creator-cli.html
\title Setting Up IncrediBuild
\l{https://www.incredibuild.com/}{IncrediBuild} accelerates process
execution and thus shortens the time you spend on building C++ code.
In addition, you can view the build progress in the graphical Build
Monitor.
The IncrediBuild plugin is delivered with \QC. For more information, see
\l{https://incredibuild.atlassian.net/wiki/spaces/IUM/pages/19202836/IncrediBuild+for+Qt+Creator}
{IncrediBuild for Qt Creator}.
To use IncrediBuild, install IncrediBuild Agent on the development
host. Then specify IncrediBuild build steps for your project. For
more information, see \l{IncrediBuild Build Steps}.
*/

View File

@@ -26,7 +26,7 @@
/*!
\previouspage creator-project-nimble.html
\page creator-project-meson.html
\nextpage creator-cli.html
\nextpage creator-project-incredibuild.html
\title Setting Up Meson

View File

@@ -0,0 +1,102 @@
/****************************************************************************
**
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
\previouspage creator-project-settings-environment.html
\page creator-custom-output-parsers.html
\nextpage creator-sharing-project-settings.html
\title Using Custom Output Parsers
Custom output parsers scan command line output for error
and warning patterns that you specify and create entries
for found patterns in the \uicontrol Issues output pane.
To view or add custom output parsers, select
\uicontrol Tools > \uicontrol Options >
\uicontrol {Build & Run} > \uicontrol {Custom Output Parsers}.
\image qtcreator-custom-parser-list.png
To edit the settings of a custom output parser, select it in the list, and
then select \uicontrol Edit.
To remove the selected parser, select \uicontrol Remove.
You can activate custom output parsers in the
\uicontrol {Custom Output Parsers} section of
the \uicontrol Build and \uicontrol Run settings,
as well as in the \l{Adding Custom Compilers}
{custom compiler settings}.
\section1 Specifying Settings for Custom Output Parsers
\image qtcreator-custom-parser-options.png
A custom output parser enables you to capture errors and
warnings separately, according to the settings you specify
in the \uicontrol Error and \uicontrol Warning tab.
To create a custom output parser:
\list 1
\li Select \uicontrol Tools > \uicontrol Options >
\uicontrol {Build & Run} > \uicontrol {Custom Output Parsers}
> \uicontrol Add.
\li In the \uicontrol {Error message capture pattern} field, specify
a regular expression to define what is an error. The custom
parser matches the compile output line by line against the
regular expression and displays errors in the \uicontrol Issues
output pane. Create regular expression groups that contain
the file name, line number and error message.
\li In the \uicontrol {Capture Positions} field, map the regular
expression groups to \uicontrol {File name}, \uicontrol {Line number},
and \uicontrol Message.
\li In the \uicontrol {Capture Output Channels} field, specify whether
messages from standard output, standard error, or both channels
should be captured.
\li In the \uicontrol {Test} group, you can test how the message that
you enter in the \uicontrol {Error message} field is matched when
using the current settings.
\li Select \uicontrol OK to add the parser to the list of parsers
and return to the \uicontrol {Custom Output Parsers} tab.
\li Double-click the parser name to change it to something more
descriptive than the default value.
\endlist
\section1 Activating Custom Output Parsers
\image qtcreator-custom-parser.png
To activate a custom output parser in the \uicontrol Build or
\uicontrol Run settings of a project:
\list 1
\li In the \uicontrol {Custom Output Parsers} section, select
\uicontrol Details.
\li Select custom parsers to activate them for building or running
the project.
\endlist
*/

View File

@@ -211,38 +211,8 @@
to the Qt mkspecs directory.
\li In the \uicontrol {Error parser} field, select the error parser to use.
Select \uicontrol Custom, and then select \uicontrol {Customer Parser Settings}
to specify settings for a custom parser:
\image qtcreator-custom-parser.png
The custom error parser enables you to capture errors and warnings separately.
You can configure the error parser in the \uicontrol Error tab and the warning
parser in the \uicontrol Warning tab:
\list 1
\li In the \uicontrol {Error message capture pattern} field, specify
a regular expression to define what is an error. The custom
parser matches the compile output line by line against the
regular expression and displays errors in the \uicontrol Issues
output pane. Create regular expression groups that contain
the file name, line number and error message.
\li In the \uicontrol {Capture Positions} field, map the regular
expression groups to \uicontrol {File name}, \uicontrol {Line number},
and \uicontrol Message.
\li In the \uicontrol {Capture Output Channels} field, specify whether
messages from standard output, standard error, or both channels
should be captured.
\li In the \uicontrol {Test} group, you can test how the message that
you enter in the \uicontrol {Error message} field is matched when
using the current settings.
\endlist
You can add custom output parsers to the list. For more information,
see \l{Using Custom Output Parsers}.
\endlist
\section1 Troubleshooting MinGW Compilation Errors

View File

@@ -78,6 +78,10 @@
Meson is an open source build system meant to be both extremely fast,
and, even more importantly, as user friendly as possible.
\li \l{Setting Up IncrediBuild}
IncrediBuild decreases the time it takes to build C++ code.
\endlist
*/

View File

@@ -146,7 +146,8 @@
\section1 Build Steps
In \uicontrol{Build Steps} you can change the settings for the build system
selected for building the project: qmake, CMake, Meson, or Qbs.
selected for building the project: qmake, CMake, Meson, or Qbs. You can use
Incredibuild to accelerate the build process when using qmake or CMake.
\section2 qmake Build Steps
@@ -168,6 +169,7 @@
\include creator-projects-cmake-building.qdocinc cmake build steps
\include creator-projects-settings-build-qbs.qdocinc qbs build steps
\include creator-projects-meson-building.qdocinc meson build steps
\include creator-projects-incredibuild-building.qdocinc incredibuild build steps
\section2 Adding Custom Build Steps
@@ -214,4 +216,6 @@
\include creator-projects-cmake-building.qdocinc cmake clean steps
\include creator-projects-settings-build-qbs.qdocinc qbs clean steps
\include creator-projects-meson-building.qdocinc meson clean steps
\include creator-projects-incredibuild-building.qdocinc incredibuild clean steps
*/

View File

@@ -26,7 +26,7 @@
/*!
\previouspage creator-build-dependencies.html
\page creator-project-settings-environment.html
\nextpage creator-sharing-project-settings.html
\nextpage creator-custom-output-parsers.html
\title Specifying Environment Settings

View File

@@ -102,6 +102,8 @@
\li \l{Specifying Environment Settings}{Environment}
\li \l{Using Custom Output Parsers}{Custom Output Parsers}
\li \l{Parsing C++ Files with the Clang Code Model}
{Clang Code Model}

View File

@@ -30,7 +30,7 @@
// **********************************************************************
/*!
\previouspage creator-project-settings-environment.html
\previouspage creator-custom-output-parsers.html
\page creator-sharing-project-settings.html
\nextpage creator-project-managing-sessions.html

View File

@@ -80,6 +80,7 @@
\li \l{Specifying Code Style Settings}
\li \l{Specifying Dependencies}
\li \l{Specifying Environment Settings}
\li \l{Using Custom Output Parsers}
\li \l{Sharing Project Settings}
\endlist
\li \l{Managing Sessions}
@@ -135,6 +136,7 @@
\li \l{Adding Models}
\li \l{Using Materials and Shaders}
\li \l{Attaching Textures to Materials}
\li \l{Applying 3D Effects}
\li \l{Using Lights}
\li \l{Using Scene Camera}
\li \l{Setting Scene Environment}
@@ -257,6 +259,7 @@
\li \l{Setting Up a Generic Project}
\li \l{Setting Up Nimble}
\li \l{Setting Up Meson}
\li \l{Setting Up IncrediBuild}
\endlist
\li \l{Using Command Line Options}
\li \l{Keyboard Shortcuts}

View File

@@ -0,0 +1,70 @@
/****************************************************************************
**
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [qtquick animation types]
\section1 Using Qt Quick Animation Types
To create an animation, use an appropriate animation type for the type of
the property that is to be animated, and apply the animation depending on
the type of behavior that is required.
You can drag and drop the following QML types from \uicontrol Library
> \uicontrol {QML Types} > \uicontrol {Qt Quick - Animation} to
\uicontrol Navigator or \uicontrol {Form Editor}:
\list
\li \l [QML] {ColorAnimation}{Color Animation} is a specialized
property animation that defines an animation to be applied when a
color value changes.
\li \l [QML] {NumberAnimation}{Number Animation} is a specialized
property animation that defines an animation to be applied when a
numerical value changes.
\li \l [QML] {ParallelAnimation}{Parallel Animation} enables
animations to be run in parallel.
\li \l [QML] {PauseAnimation}{Pause Animation} is used in a
sequential animation to create a step where nothing happens, for
a specified duration.
\li \l [QML] {PropertyAction}{Property Action} immediately changes
a property value during an animation, without animating the
property change.
\li \l [QML] {PropertyAnimation}{Property Animation} animates
changes in the value of a property.
\li \l [QML] {ScriptAction}{Script Action} defines scripts to be
run during an animation.
\li \l [QML] {SequentialAnimation}{Sequential Animation} enables
animations to be run sequentially.
\endlist
For more information about using the QML types, see
\l{Animation and Transitions in Qt Quick}.
For more information about animating properties in the \uicontrol Timeline
view, see \l{Creating Animations}. For more information about animating
property changes in states, see \l{Animating Transitions Between States}.
//! [qtquick animation types]
*/

View File

@@ -497,6 +497,8 @@
{Dialog} type in the Qt Quick Dialogs module to wrap arbitrary content into
a dialog window including a row of platform-tailored buttons.
\include qtquick-animation-types.qdocinc qtquick animation types
\if defined(qtdesignstudio)
\include qtdesignstudio-visual-effects.qdocinc qml visual effects
\include qtdesignstudio-components.qdocinc creating studio components

View File

@@ -249,53 +249,5 @@
\include qtquick-states-scxml.qdocinc scxml state machines
\endif
\section1 Animating Transitions Between States
To make movement between states smooth, you can animate transitions.
Animations are created by applying animation types to property values.
Animation types interpolate property values to create smooth transitions.
As well, state transitions may assign animations to state changes.
To create an animation, use an appropriate animation type for the type of
the property that is to be animated, and apply the animation depending on
the type of behavior that is required.
You can drag and drop the following QML types from \uicontrol Library
> \uicontrol {QML Types} > \uicontrol {Qt Quick - Animation} to
\uicontrol Navigator or \uicontrol {Form Editor}:
\list
\li \l [QML] {ColorAnimation}{Color Animation} is a specialized
property animation that defines an animation to be applied when a
color value changes.
\li \l [QML] {NumberAnimation}{Number Animation} is a specialized
property animation that defines an animation to be applied when a
numerical value changes.
\li \l [QML] {ParallelAnimation}{Parallel Animation} enables
animations to be run in parallel.
\li \l [QML] {PauseAnimation}{Pause Animation} is used in a
sequential animation to create a step where nothing happens, for
a specified duration.
\li \l [QML] {PropertyAction}{Property Action} immediately changes
a property value during an animation, without animating the
property change.
\li \l [QML] {PropertyAnimation}{Property Animation} animates
changes in the value of a property.
\li \l [QML] {ScriptAction}{Script Action} defines scripts to be
run during an animation.
\li \l [QML] {SequentialAnimation}{Sequential Animation} enables
animations to be run sequentially.
\endlist
For more information, see \l{Animation and Transitions in Qt Quick}.
\if defined(qtcreator)
For an example of assigning number animations to states, see
\l {Creating a Qt Quick Application}.
\endif
Alternatively, you can use the \uicontrol Timeline view to animate the
properties of UI components and to bind the animations to states. For more
information, see \l {Binding Animations to States}.
\include qtquick-transition-editor.qdocinc transition editor
*/

View File

@@ -0,0 +1,73 @@
/****************************************************************************
**
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
**
****************************************************************************/
/*!
//! [transition editor]
\section1 Animating Transitions Between States
To make movement between states smooth, you can use
\uicontrol {Transition Editor} to animate the changes between
states. First, you need to \l{Creating States}{add states} in
the \uicontrol States view and \l{Specifying Item Properties}
{edit some properties} that can be animated, such as colors or
numbers, in the \uicontrol Properties view. For example, you
can animate the changes in the position of an object.
In \uicontrol {Transition Editor}, you can set the start frame, end
frame, and duration for the transition of each property. You can also
set an easing curve for each transition.
Use the slider on the menu bar to the zooming level in the view.
To add transitions:
\list 1
\li Select \uicontrol View > \uicontrol Views >
\uicontrol {Transition Editor} to display the view.
\li Select the \inlineimage plus.png
(\uicontrol {Add Transition}) button to add a transition. This
works only if you have added at least one state and modified at
least one property in it.
\image qtquick-transition-editor-view.png "Transition Editor view"
\li Move the blue bar next to the component or property name to set
the start and end frame of the animation of the property. Pull its
left and right edges to set the duration of the animation.
\li To attach an easing curve to a transition, select
\inlineimage curve_editor.png
(\uicontrol {Easing Curve Editor (C)}) on the toolbar. For more
information, see \l{Editing Easing Curves}.
\li To modify transition settings, select the \inlineimage animation.png
(\uicontrol {Transition Settings (S)}) button on the toolbar.
\image qtquick-transition-editor-settings.png "Transition settings"
\endlist
\if defined(qtcreator)
For an example of animating transitions between states, see
\l {Creating a Qt Quick Application}.
\endif
//! [transition editor]
*/

View File

@@ -41,6 +41,7 @@ excludedirs += ../../qtcreator/examples/accelbubble \
../../qtcreator/src/debugger/creator-only \
../../qtcreator/src/editors/creator-only \
../../qtcreator/src/howto/creator-only \
../../qtcreator/src/incredibuild \
../../qtcreator/src/ios \
../../qtcreator/src/linux-mobile \
../../qtcreator/src/mcu \

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -107,6 +107,7 @@
\li \l{Adding Models}
\li \l{Using Materials and Shaders}
\li \l{Attaching Textures to Materials}
\li \l{Applying 3D Effects}
\li \l{Using Lights}
\li \l{Using Scene Camera}
\li \l{Setting Scene Environment}

View File

@@ -29,7 +29,7 @@
\page exporting-from-maya.html
\previouspage exporting-from-blender.html
\if defined (qtdesignstudio)
\nextpage exporting-from-maya.html
\nextpage exporting-from-qt3ds.html
\else
\nextpage studio-importing-3d.html
\endif
@@ -90,6 +90,8 @@
\image maya-export-options2.png "More export options in Maya"
\li Optionally, select \uicontrol {Embed Media}, and then select the
\uicontrol {Embed Media} check box to include embedded textures.
The embedded media will be copied to a \c fileName.fbm folder in
the same location as the FBX file.
\li Select \uicontrol {Export All} to export files.
\endlist
*/

View File

@@ -58,6 +58,10 @@
You can use a Texture component to specify an image and how it is
mapped to meshes in a 3D scene. Texture components can use image
data either from a file or a Qt Quick QML type.
\li \l {Applying 3D Effects}
You can use 3D effect components to generate post-processing
effects.
\li \l{Using Lights}
You can use several light types as the source of lighting in a

View File

@@ -0,0 +1,367 @@
/****************************************************************************
**
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt Design Studio.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\page studio-3d-effects.html
\previouspage studio-3d-texture.html
\nextpage studio-3d-lights.html
\title Applying 3D Effects
\QDS provides a set of Qt Quick 3D effects that inherit the types in the
\l {Qt Quick 3D Effects QML Types}{Qt Quick 3D Effects} module.
To apply a visual effect to a component, drag-and-drop an effect from
\uicontrol Library \uicontrol {Qt Quick 3D Effects} under the \uicontrol
{View 3D} object in \uicontrol Navigator. You can apply multiple effects to
one component. The effects you add to the project are listed in \uicontrol
Properties > \uicontrol {Scene Environment} > \uicontrol Effect and are
visible in \uicontrol {Form Editor}.
See the following table for available effects and example images.
\section1 Available Effects
\table
\header
\li 3D Effect
\li Example Image
\li Description
\row
\li Additive Color Gradient
\li \image effect-additive-color-gradient.png "Additive Color Gradient Effect"
\li A gradient with additive color effect that adds a vertical
gradient to the whole scene and then additively blends it with all other
components in a 3D view. Additive blending adds the pixel values of
the gradient and the 3D view, making the result lighter. White areas
do not change, and black areas are the same color as the gradient.
The \uicontrol {Top Color} and \uicontrol {Bottom Color} properties
specify the colors used for the gradient at the top and bottom parts of
the screen.
\row
\li Blur
\li \image effect-blur.png "The Blur effect"
\li A simple one-pass blur.
The \uicontrol Amount property specifies the strength of the blur.
\row
\li Brush Strokes
\li \image effect-brush-strokes.png "The Brush Strokes effect"
\li A brush strokes noise effect that simulates an artistic painting of
the image.
The \uicontrol {Noise Sample Texture} property specifies the brush noise
texture map as a \l Texture.
The \uicontrol Length property specifies how far to offset the image
with the brush.
The \uicontrol Size property specifies the scale of the brush. Smaller
values result in a finer brush.
The \uicontrol Angle property specifies the angle to rotate the brush
noise texture.
\row
\li Chromatic Aberration
\li \image effect-chromatic-aberration.png "The Chromatic Aberration effect"
\li A chromatic aberration effect.
In real life, chromatic aberration is an optical phenomenon causing
color fringes in high contrast areas. These color fringes are
caused by different colors refracting at different angles splitting
white light into a spectrum, which is referred to as dispersion.
The \uicontrol {Mask Texture} property specifies a grayscale texture to
control the position and the strength of the effect. The effect is
strongest in white areas and weakest in black areas.
The \uicontrol Amount property defines the amount of aberration.
A negative value inverses the effect.
Dispersion scales in relation to the distance from the value of
the \uicontrol {Focus Depth} property.
\row
\li Color Master
\li \image effect-color-master.png "The Color Master effect"
\li A color adjustment effect.
The \uicontrol {Red Strength}, \uicontrol {Green Strength} and
\uicontrol {Blue Strength} properties can be used to adjust each color
separately, and the \uicontrol Saturation property to adjust the
strength of the overall saturation of the scene.
\row
\li Depth Of Field HQ Blur
\li \image effect-depth-of-field-hq-blur.png "The Depth of Field HQ Blur effect"
\li A depth-based blur effect that performs a gradient blur on regions
of the image based on their deviation from a specified distance from the
camera.
The \uicontrol {Blur Amount} property defines the strength of blur when
out of focus.
The \uicontrol {Focus Distance} property specifies the distance from the
camera where the content is in perfect focus.
The \uicontrol {Focus Range} property specifies the distance around the
\uicontrol {Focus Distance} where items are fully in focus. The focus
then fades away to fully blurred by the same distance on both the near
and far sides.
\row
\li Desaturate
\li \image effect-desaturate.png "The Desaturate effect"
\li A desaturating effect that decreases the intensity of all colors in
the scene.
The \uicontrol Amount property defines the amount of desaturation.
\row
\li Distortion Ripple
\li \image effect-distortion-ripple.png "The Distortion Ripple effect"
\li A distortion effect that adds circular ripples, moving away
from the center of the effect.
The \uicontrol Radius specifies the spread between ripples.
The \uicontrol Width property specifies the width of a ripple, while
\uicontrol Height defines the amount of distortion.
The \uicontrol Phase property specifies the offset of each wave. Animate
this property to see the waves move.
The \uicontrol Center property defines the focus point of the
distortion.
\row
\li Distortion Sphere
\li \image effect-distortion-sphere.png "The Distortion Sphere effect"
\li A distortion effect that creates a 3D effect of wrapping the
scene around a spherical shape.
The \uicontrol Radius property specifies the area of distortion, while
\uicontrol Height defines the amount of distortion.
The \uicontrol Center property defines the focus point of the
distortion.
\row
\li Distortion Spiral
\li \image effect-distortion-spiral.png "The Distortion Spiral effect"
\li A distortion effect that creates a spiral-shaped distortion.
The \uicontrol Radius property defines the area of distortion, while
\uicontrol Strength defines the amount of distortion.
The \uicontrol Center property defines the focus point of the
distortion.
\row
\li Edge Detect
\li \image effect-edge-detect.png "The Edge Detect effect"
\li An edge highlighting effect that turns smooth, unchanging areas of
the scene darker, while areas of the scene with sharp color changes are
brightened to highlight the edges.
The \uicontrol Strength property defines the strength of the edge
highlighting.
\row
\li Emboss
\li \image effect-emboss.png "The Emboss effect"
\li An emboss effect that replaces each pixel either by a highlight or a
shadow, depending on the light/dark boundaries on the scene.
Low contrast areas are replaced by a gray background. The embossed
result represents the rate of color change at each location.
The \uicontrol Amount property defines the strength of the emboss
effect.
\row
\li Flip
\li \image effect-flip.png "The Flip effect"
\li An effect that flips the whole scene either horizontally,
vertically, or in both directions.
The \uicontrol {Horizontal} and \uicontrol {Vertical} properties define
the direction of the flip.
\row
\li Fxaa
\li \image effect-fxaa.png "The Fxaa effect"
\li A fast approximate anti-aliasing effect that removes some of the
artifacts from the image without impacting performance as heavily as
super-sampling would.
\row
\li Gaussian Blur
\li \image effect-gaussian-blur.png "The Gaussian Blur effect"
\li A two-pass gaussian blur effect that blurs all objects in the scene
evenly. To keep the effect performant, large blur amount produces a
mosaic result instead of smooth blurriness.
The \uicontrol Amount property defines the strength of the blur.
\row
\li HDR Bloom Tonemap
\li \image effect-HDR-bloom-tonemap.png "The HDR Bloom Tonemap effect"
\li A bloom with tonemapping effect that adjusts the gamma and exposure
of the high-dynamic range rendered content to achieve the image quality
you want. Also applies an adjustable bloom effect to very bright areas
(like the sun glinting off a car).
The \uicontrol Gamma property affects the non-linear curve of the
lighting. Higher values increase the exposure of mid tones, brightening
the image and decreasing the contrast.
The \uicontrol Exposure property functions as a linear multiplier on the
lighting, thus brightening or darkening the image overall.
The \uicontrol {Blur Falloff} property adjusts the amount of bloom.
Lower values result in stronger bloom effect, and higher values make the
effect more subtle.
The \uicontrol {Tonemapping Lerp} property defines the strength of the
overall bloom effect. There is usually no need to adjust this.
The bloom effect is applied to areas where the lighting is greater than
the \uicontrol {Bloom Threshold} value. A value of \c{1.0} corresponds
to white in the original render result. Lowering this value causes more
areas of the rendered scene to bloom.
The \uicontrol {Channel Threshold} defines the white point for the
image. There is usually no need to adjust this.
\row
\li Motion Blur
\li \image effect-motion-blur.png "The Motion Blur effect"
\li A motion blur effect that creates an apparent streaking for rapidly
moving objects in the scene.
\note Only has a visible effect if the background of the scene is set to
be transparent in the \uicontrol {Background Mode} field of the
\uicontrol {Scene Environment} component. Otherwise, the clear color of
the background hides the blur. For more information, see \l {Setting
Scene Environment}.
The \uicontrol {Fade Amount} property defines the fade speed of the
trail.
The \uicontrol Quality property can be adjusted to specify the quality
of the blur. Increasing quality will have impact on performance.
\row
\li Scatter
\li \image effect-scatter.png "The Scatter effect"
\li A noise effect that scatters the pixels in a scene to create
a blurry or smeared appearance. Without changing the color of each
individual pixel, the effect redistributes the pixels randomly but in
the same general area as their original positions.
The \uicontrol {Noise Sample Texture} functions as the scatter noise
texture map.
The \uicontrol Amount property defines how much to scatter, while
\uicontrol Direction sets the direction in which to scatter the pixels.
Set to \c 0 for both horizontal and vertical, \c 1 for horizontal, and
\c 2 for vertical.
The \uicontrol Randomize property specifies whether scattering changes
at each frame or not.
\row
\li S-Curve Tonemap
\li \image effect-scurve-tonemap.png "The S-Curve Tonemap effect"
\li A tonemapping effect that maps the colors in the scene to others to
approximate the appearance of high-dynamic-range result.
The \uicontrol {Shoulder Slope} property defines where highlights lose
contrast.
The \uicontrol {Shoulder Emphasis} property defines the amount of
emphasis of the shoulder.
The \uicontrol {Toe Slope} property defines where shadows lose contrast.
The \uicontrol {Toe Emphasis} property defines the amount of emphasis
of the toe.
The \uicontrol {Contrast Boost} property enhances or reduces the overall
contrast of the tonemap.
The \uicontrol {Saturation Level} defines the overall saturation level
of the tonemap.
The \uicontrol Gamma property defines the gamma value of the tonemap.
The \uicontrol {Use Exposure} property specifies whether the \uicontrol
{White Point} value or the \uicontrol Exposure value will be used for
luminance calculations.
The \uicontrol {White Point} property defines the value for the white
point.
The \uicontrol Exposure property defines the value for exposure.
\row
\li Tilt Shift
\li \image effect-tilt-shift.png "The Tilt Shift effect"
\li A tilt shift blur effect that simulates depth of field in a simple
and performant manner. Instead of blurring based on the depth buffer,
it blurs everything except for a horizontal or vertical stripe on the
layer.
The \uicontrol {Focus Position} property specifies the placement of the
focus bar in normalized coordinates.
The \uicontrol {Focus Width} property defines a normalized range for
Focus Position. Objects within this range will be in focus.
The \uicontrol {Blur Amount} property defines the amount of blur.
Amounts above 4 may cause artifacts.
The \uicontrol Vertical property changes the direction of the effect
from horizontal to vertical, while the \uicontrol Inverted property
inverts the blur area, causing the center of the object to become
blurred.
\row
\li Vignette
\li \image effect-vignette.png "The Vignette effect"
\li A vignette effect that reduces brightness towards the periphery of
an object.
The \uicontrol Strength property defines the strength of vignetting,
while \uicontrol Radius specifies its size.
The \uicontrol Color property defines the color used for the effect.
\endtable
*/

View File

@@ -27,7 +27,7 @@
/*!
\page studio-3d-lights.html
\previouspage studio-3d-texture.html
\previouspage studio-3d-effects.html
\nextpage studio-3d-camera.html
\title Using Lights

View File

@@ -28,7 +28,7 @@
/*!
\page studio-3d-texture.html
\previouspage studio-3d-materials.html
\nextpage studio-3d-lights.html
\nextpage studio-3d-effects.html
\title Attaching Textures to Materials

View File

@@ -273,8 +273,9 @@ def deploy_libclang(install_dir, llvm_install_dir, chrpath_bin):
# support libraries (for clazy) -> clang libexec
if not os.path.exists(clanglibs_targetdir):
os.makedirs(clanglibs_targetdir)
for lib_pattern in ['ClazyPlugin.so', 'libclang-cpp.so*']:
for lib in glob(os.path.join(llvm_install_dir, 'lib', lib_pattern)):
# on RHEL ClazyPlugin is in lib64
for lib_pattern in ['lib64/ClazyPlugin.so', 'lib/ClazyPlugin.so', 'lib/libclang-cpp.so*']:
for lib in glob(os.path.join(llvm_install_dir, lib_pattern)):
deployinfo.append((lib, clanglibs_targetdir))
resourcetarget = os.path.join(install_dir, 'libexec', 'qtcreator', 'clang', 'lib', 'clang')

View File

@@ -124,4 +124,9 @@ QtObject {
// Taken out of Constants.js
property string themeChangedStateText: Theme.color(Theme.DSchangedStateText)
// 3D
property string theme3DAxisXColor: Theme.color(Theme.DS3DAxisXColor)
property string theme3DAxisYColor: Theme.color(Theme.DS3DAxisYColor)
property string theme3DAxisZColor: Theme.color(Theme.DS3DAxisZColor)
}

View File

@@ -57,6 +57,9 @@ DScontrolBackgroundInteraction=ff4d4d4d
DStranslationIndicatorBorder=ff7f7f7f
DSsectionHeadBackground=ff424242
DSchangedStateText=ff99ccff
DS3DAxisXColor=ffe00000
DS3DAxisYColor=ff009900
DS3DAxisZColor=ff6060ff
;DS controls theme END
BackgroundColorAlternate=alternateBackground

View File

@@ -48,6 +48,9 @@ DScontrolBackgroundInteraction=ff4d4d4d
DStranslationIndicatorBorder=ff7f7f7f
DSsectionHeadBackground=ff424242
DSchangedStateText=ff99ccff
DS3DAxisXColor=ffe00000
DS3DAxisYColor=ff009900
DS3DAxisZColor=ff6060ff
;DS controls theme END
BackgroundColorAlternate=ff3d3d3d

View File

@@ -61,6 +61,9 @@ DScontrolBackgroundInteraction=ff777777
DStranslationIndicatorBorder=ffebebeb
DSsectionHeadBackground=ffebebeb
DSchangedStateText=ff99ccff
DS3DAxisXColor=ffff0000
DS3DAxisYColor=ff00A000
DS3DAxisZColor=ff0000ff
;DS controls theme END
BackgroundColorAlternate=alternateBackground

View File

@@ -61,6 +61,9 @@ DScontrolBackgroundInteraction=ff404040
DStranslationIndicatorBorder=ff7f7f7f
DSsectionHeadBackground=ff191919
DSchangedStateText=ff99ccff
DS3DAxisXColor=ffd00000
DS3DAxisYColor=ff009900
DS3DAxisZColor=ff5050ff
;DS controls theme END
BackgroundColorAlternate=alternateBackground

View File

@@ -61,6 +61,9 @@ DScontrolBackgroundInteraction=ff4d4d4d
DStranslationIndicatorBorder=ff7f7f7f
DSsectionHeadBackground=ff424242
DSchangedStateText=ff99ccff
DS3DAxisXColor=ffe00000
DS3DAxisYColor=ff009900
DS3DAxisZColor=ff6060ff
;DS controls theme END
BackgroundColorAlternate=alternateBackground

View File

@@ -57,6 +57,9 @@ DScontrolBackgroundInteraction=ff777777
DStranslationIndicatorBorder=ffebebeb
DSsectionHeadBackground=ffebebeb
DSchangedStateText=ff99ccff
DS3DAxisXColor=ffff0000
DS3DAxisYColor=ff00A000
DS3DAxisZColor=ff0000ff
;DS controls theme END
BackgroundColorAlternate=alternateBackground

View File

@@ -55,6 +55,9 @@ DScontrolBackgroundInteraction=ff4d4d4d
DStranslationIndicatorBorder=ff7f7f7f
DSsectionHeadBackground=ff424242
DSchangedStateText=ff99ccff
DS3DAxisXColor=ffe00000
DS3DAxisYColor=ff009900
DS3DAxisZColor=ff6060ff
;DS controls theme END
BackgroundColorAlternate=alternateBackground

View File

@@ -1,14 +1,19 @@
cmake_minimum_required(VERSION 3.5)
set(KF5_VERSION "5.59.0")
set(KF5_VERSION "5.73.0")
project(KSyntaxHighlighting VERSION ${KF5_VERSION})
find_package(ECM 5.59.0 REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR})
find_package(ECM 5.73.0 REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
if(POLICY CMP0063)
cmake_policy(SET CMP0063 NEW)
endif()
include(KDEInstallDirs)
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
include(KDECMakeSettings)
include(KDEClangFormat)
include(FeatureSummary)
include(GenerateExportHeader)
include(ECMSetupVersion)
@@ -17,9 +22,6 @@ include(ECMGeneratePriFile)
include(CMakePackageConfigHelpers)
include(ECMPoQmTools)
include(ECMQtDeclareLoggingCategory)
include(KDEInstallDirs)
include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
include(KDECMakeSettings)
include(ECMMarkNonGuiExecutable)
include(ECMAddQch)
include(ECMOptionalAddSubdirectory)
@@ -34,7 +36,7 @@ ecm_setup_version(PROJECT
#
# Dependencies
#
set(REQUIRED_QT_VERSION 5.10.0)
set(REQUIRED_QT_VERSION 5.12.0)
find_package(Qt5 ${REQUIRED_QT_VERSION} NO_MODULE REQUIRED COMPONENTS Core Network Test)
option(KSYNTAXHIGHLIGHTING_USE_GUI "Build components depending on Qt5Gui" ON)
if(KSYNTAXHIGHLIGHTING_USE_GUI)
@@ -84,6 +86,7 @@ if (NO_STANDARD_PATHS)
add_definitions(-DNO_STANDARD_PATHS)
endif()
add_definitions(-DQT_NO_FOREACH)
add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050d00)
#
# Actually build the stuff
@@ -135,6 +138,10 @@ endif()
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ksyntaxhighlighting_version.h"
DESTINATION "${KDE_INSTALL_INCLUDEDIR_KF5}"
COMPONENT Devel)
install(FILES org_kde_ksyntaxhighlighting.categories DESTINATION ${KDE_INSTALL_CONFDIR})
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
# add clang-format target for all our real source files
file(GLOB ALL_CLANG_FORMAT_TEST_FILES autotests/*.cpp autotests/*.h)
file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES examples/*.cpp examples/*.h src/*.cpp src/*.h)
kde_clang_format(${ALL_CLANG_FORMAT_TEST_FILES} ${ALL_CLANG_FORMAT_SOURCE_FILES})

View File

@@ -7,8 +7,9 @@
<!ENTITY eos "(?=($|\s))"> <!-- eol or space following -->
<!ENTITY noword "(?![\w$+-])"> <!-- no word, $, + or - following -->
<!ENTITY pathpart "([\w_@.&#37;*?+-]|\\ )"> <!-- valid character in a file name -->
<!ENTITY charbeforecomment "[\s;]"> <!-- character before a comment # -->
]>
<language name="Bash" version="9" kateversion="5.0" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;*.nix;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD;APKBUILD" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
<language name="Bash" version="11" kateversion="5.0" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;*.nix;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD;APKBUILD" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
<!-- (c) 2004 by Wilbert Berendsen (wilbert@kde.nl)
Changes by Matthew Woehlke (mw_triad@users.sourceforge.net)
@@ -473,6 +474,9 @@
<!-- FindMost tries to interpret anything except commands -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindMost">
<IncludeRules context="FindComments" />
<IncludeRules context="FindMostWithoutComments" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="FindMostWithoutComments">
<IncludeRules context="FindStrings" />
<IncludeRules context="FindSubstitutions" />
<IncludeRules context="FindOthers" />
@@ -482,7 +486,13 @@
<!-- FindComments consumes shell comments till EOL -->
<context attribute="Normal Text" lineEndContext="#pop" name="FindComments">
<DetectChar attribute="Comment" context="Comment" char="#" firstNonSpace="true"/>
<RegExpr attribute="Normal Text" context="Comment" String="[\s;](?=#)" />
<RegExpr attribute="Comment" context="Comment" String="(?&lt;=&charbeforecomment;)#" />
</context>
<context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsInCommand">
<DetectChar attribute="Comment" context="Comment" char="#" firstNonSpace="true"/>
<!-- NOTE: If a rule already matches a character of &charbeforecomment;
(for example, in an escaped character), the comment will not be highlighted. -->
<RegExpr attribute="Normal Text" context="Comment" String="&charbeforecomment;(?=#)" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="Comment">
<IncludeRules context="##Alerts" />
@@ -492,7 +502,7 @@
<!-- FindCommentsParen consumes shell comments till EOL or a closing parenthese -->
<context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsParen">
<DetectChar attribute="Comment" context="CommentParen" char="#" firstNonSpace="true"/>
<RegExpr attribute="Normal Text" context="CommentParen" String="[\s;](?=#)" />
<RegExpr attribute="Normal Text" context="CommentParen" String="&charbeforecomment;(?=#)" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="CommentParen">
<RegExpr attribute="Comment" context="#pop" String="[^)](?=\))" />
@@ -502,7 +512,7 @@
<!-- FindCommentsBackq consumes shell comments till EOL or a backquote -->
<context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsBackq">
<DetectChar attribute="Comment" context="CommentBackq" char="#" firstNonSpace="true"/>
<RegExpr attribute="Normal Text" context="CommentBackq" String="[\s;](?=#)" />
<RegExpr attribute="Normal Text" context="CommentBackq" String="&charbeforecomment;(?=#)" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="CommentBackq">
<RegExpr attribute="Comment" context="#pop" String="[^`](?=`)" />
@@ -553,7 +563,8 @@
<!-- handle here document -->
<Detect2Chars attribute="Redirection" context="HereDoc" char="&lt;" char1="&lt;" lookAhead="true" />
<!-- handle process subst -->
<RegExpr attribute="Redirection" context="ProcessSubst" String="[&lt;&gt;]\(" />
<Detect2Chars attribute="Redirection" context="ProcessSubst" char="&lt;" char1="(" />
<Detect2Chars attribute="Redirection" context="ProcessSubst" char="&gt;" char1="(" />
<!-- handle redirection -->
<RegExpr attribute="Redirection" context="#stay" String="([0-9]*(&gt;{1,2}|&lt;)(&amp;[0-9]+-?)?|&amp;&gt;|&gt;&amp;|[0-9]*&lt;&gt;)" />
<!-- handle &, &&, | and || -->
@@ -567,13 +578,27 @@
<RegExpr attribute="OtherCommand" context="#stay" String="/&pathpart;*(?=([/);$`'&quot;]|$))" />
<RegExpr attribute="OtherCommand" context="CommandArgs" String="/&pathpart;*(?=([\s);$`'&quot;]|$))" />
<!-- This list is not complete. ie, ":" is missing but as it is in bash completition. -->
<RegExpr attribute="OtherCommand" context="CommandArgs" String="&pathpart;*" />
<RegExpr attribute="OtherCommand" context="CommandArgsNormal" String="&pathpart;*" />
</context>
<!-- CommandArgs matches the items after a command -->
<context attribute="Normal Text" lineEndContext="#pop" name="CommandArgs">
<LineContinue />
<!-- In command arguments, do not allow comments after escaped characters.
This avoids highlighting comments within paths or other text. Ex: pathtext\ #no\ comment -->
<!-- FindComments -->
<RegExpr attribute="Control" context="#pop!Comment" String=";;?(?=#)" />
<IncludeRules context="FindCommentsInCommand" />
<IncludeRules context="FindMostWithoutComments" />
<IncludeRules context="DefaultCommandArgs" />
</context>
<!-- CommandArgs but with normal comments -->
<context attribute="Normal Text" lineEndContext="#pop" name="CommandArgsNormal">
<IncludeRules context="FindMost" />
<IncludeRules context="DefaultCommandArgs" />
</context>
<context attribute="Normal Text" lineEndContext="#pop" name="DefaultCommandArgs">
<LineContinue />
<RegExpr attribute="Keyword" context="#stay" String="\\$" />
<!-- handle keywords -->
<RegExpr attribute="Option" context="#stay" String="\.(?=\s)" />
@@ -582,10 +607,11 @@
<!-- handle here document -->
<Detect2Chars attribute="Redirection" context="HereDoc" char="&lt;" char1="&lt;" lookAhead="true" />
<!-- handle process subst -->
<RegExpr attribute="Redirection" context="ProcessSubst" String="[&lt;&gt;]\(" />
<Detect2Chars attribute="Redirection" context="ProcessSubst" char="&lt;" char1="(" />
<Detect2Chars attribute="Redirection" context="ProcessSubst" char="&gt;" char1="(" />
<!-- handle redirection -->
<RegExpr attribute="Redirection" context="#stay" String="([0-9]*(&gt;{1,2}|&lt;)(&amp;[0-9]+-?)?|&amp;&gt;|&gt;&amp;|[0-9]*&lt;&gt;)" />
<!-- handle &, &&, | and || -->
<!-- handle &, &&, |, ||, ; and ;; -->
<RegExpr attribute="Control" context="#pop" String="([|&amp;;])\1?" />
<RegExpr attribute="Normal Text" context="#stay" String="[a-zA-Z_]+-[A-Za-z0-9_-]*" />
<RegExpr attribute="Option" context="#stay" String="-?-[a-zA-Z_][A-Za-z0-9_-]*" />

View File

@@ -31,7 +31,7 @@
<language
name="CMake"
version="22"
version="24"
kateversion="2.4"
section="Other"
extensions="CMakeLists.txt;*.cmake;*.cmake.in"
@@ -45,6 +45,7 @@
<list name="commands">
<item>break</item>
<item>cmake_host_system_information</item>
<item>cmake_language</item>
<item>cmake_minimum_required</item>
<item>cmake_parse_arguments</item>
<item>cmake_policy</item>
@@ -185,6 +186,11 @@
<item>TOTAL_PHYSICAL_MEMORY</item>
<item>TOTAL_VIRTUAL_MEMORY</item>
</list>
<list name="cmake_language_nargs">
<item>CALL</item>
<item>CODE</item>
<item>EVAL</item>
</list>
<list name="cmake_minimum_required_nargs">
<item>FATAL_ERROR</item>
<item>VERSION</item>
@@ -218,6 +224,7 @@
</list>
<list name="elseif_nargs">
<item>AND</item>
<item>COMMAND</item>
<item>DEFINED</item>
<item>EQUAL</item>
<item>EXISTS</item>
@@ -250,6 +257,8 @@
<list name="execute_process_nargs">
<item>COMMAND</item>
<item>COMMAND_ECHO</item>
<item>ECHO_ERROR_VARIABLE</item>
<item>ECHO_OUTPUT_VARIABLE</item>
<item>ENCODING</item>
<item>ERROR_FILE</item>
<item>ERROR_QUIET</item>
@@ -275,8 +284,12 @@
<item>UTF8</item>
</list>
<list name="file_nargs">
<item>@ONLY</item>
<item>APPEND</item>
<item>ARCHIVE_CREATE</item>
<item>ARCHIVE_EXTRACT</item>
<item>CONDITION</item>
<item>CONFIGURE</item>
<item>CONFIGURE_DEPENDS</item>
<item>CONTENT</item>
<item>COPY</item>
@@ -285,13 +298,16 @@
<item>DIRECTORY_PERMISSIONS</item>
<item>DOWNLOAD</item>
<item>ENCODING</item>
<item>ESCAPE_QUOTES</item>
<item>EXCLUDE</item>
<item>EXPECTED_HASH</item>
<item>EXPECTED_MD5</item>
<item>FILES</item>
<item>FILES_MATCHING</item>
<item>FILE_PERMISSIONS</item>
<item>FOLLOW_SYMLINKS</item>
<item>FOLLOW_SYMLINK_CHAIN</item>
<item>FORMAT</item>
<item>GENERATE</item>
<item>GET_RUNTIME_DEPENDENCIES</item>
<item>GLOB</item>
@@ -309,13 +325,16 @@
<item>LIMIT_INPUT</item>
<item>LIMIT_OUTPUT</item>
<item>LIST_DIRECTORIES</item>
<item>LIST_ONLY</item>
<item>LOCK</item>
<item>LOG</item>
<item>MAKE_DIRECTORY</item>
<item>MD5</item>
<item>MTIME</item>
<item>NETRC</item>
<item>NETRC_FILE</item>
<item>NEWLINE_CONSUME</item>
<item>NEWLINE_STYLE</item>
<item>NO_HEX_CONVERSION</item>
<item>NO_SOURCE_PERMISSIONS</item>
<item>OFFSET</item>
@@ -353,19 +372,28 @@
<item>TOUCH_NOCREATE</item>
<item>TO_CMAKE_PATH</item>
<item>TO_NATIVE_PATH</item>
<item>TYPE</item>
<item>UPLOAD</item>
<item>USERPWD</item>
<item>USE_SOURCE_PERMISSIONS</item>
<item>UTC</item>
<item>VERBOSE</item>
<item>WRITE</item>
</list>
<list name="file_sargs">
<item>7zip</item>
<item>BZip2</item>
<item>CRLF</item>
<item>DOS</item>
<item>FILE</item>
<item>FUNCTION</item>
<item>GROUP_EXECUTE</item>
<item>GROUP_READ</item>
<item>GROUP_WRITE</item>
<item>GZip</item>
<item>IGNORED</item>
<item>LF</item>
<item>None</item>
<item>OPTIONAL</item>
<item>OWNER_EXECUTE</item>
<item>OWNER_READ</item>
@@ -374,14 +402,23 @@
<item>REQUIRED</item>
<item>SETGID</item>
<item>SETUID</item>
<item>UNIX</item>
<item>UTF-16BE</item>
<item>UTF-16LE</item>
<item>UTF-32B</item>
<item>UTF-32LE</item>
<item>UTF-8</item>
<item>WIN32</item>
<item>WORLD_EXECUTE</item>
<item>WORLD_READ</item>
<item>WORLD_WRITE</item>
<item>XZ</item>
<item>Zstd</item>
<item>gnutar</item>
<item>pax</item>
<item>paxr</item>
<item>raw</item>
<item>zip</item>
</list>
<list name="find_file_nargs">
<item>CMAKE_FIND_ROOT_PATH_BOTH</item>
@@ -398,6 +435,7 @@
<item>ONLY_CMAKE_FIND_ROOT_PATH</item>
<item>PATHS</item>
<item>PATH_SUFFIXES</item>
<item>REQUIRED</item>
</list>
<list name="find_library_nargs">
<item>CMAKE_FIND_ROOT_PATH_BOTH</item>
@@ -415,6 +453,7 @@
<item>ONLY_CMAKE_FIND_ROOT_PATH</item>
<item>PATHS</item>
<item>PATH_SUFFIXES</item>
<item>REQUIRED</item>
</list>
<list name="find_package_nargs">
<item>CMAKE_FIND_ROOT_PATH_BOTH</item>
@@ -458,6 +497,7 @@
<item>ONLY_CMAKE_FIND_ROOT_PATH</item>
<item>PATHS</item>
<item>PATH_SUFFIXES</item>
<item>REQUIRED</item>
</list>
<list name="find_program_nargs">
<item>CMAKE_FIND_ROOT_PATH_BOTH</item>
@@ -475,6 +515,7 @@
<item>ONLY_CMAKE_FIND_ROOT_PATH</item>
<item>PATHS</item>
<item>PATH_SUFFIXES</item>
<item>REQUIRED</item>
</list>
<list name="foreach_nargs">
<item>IN</item>
@@ -521,11 +562,13 @@
<item>SET</item>
<item>SOURCE</item>
<item>TARGET</item>
<item>TARGET_DIRECTORY</item>
<item>TEST</item>
<item>VARIABLE</item>
</list>
<list name="if_nargs">
<item>AND</item>
<item>COMMAND</item>
<item>DEFINED</item>
<item>EQUAL</item>
<item>EXISTS</item>
@@ -601,6 +644,7 @@
<item>DESCENDING</item>
<item>FILE_BASENAME</item>
<item>INSENSITIVE</item>
<item>NATURAL</item>
<item>SENSITIVE</item>
<item>STRING</item>
</list>
@@ -649,6 +693,7 @@
<item>PROPERTY</item>
<item>SOURCE</item>
<item>TARGET</item>
<item>TARGET_DIRECTORY</item>
<item>TEST</item>
<item>VARIABLE</item>
</list>
@@ -679,6 +724,7 @@
<item>GENEX_STRIP</item>
<item>GREATER</item>
<item>GREATER_EQUAL</item>
<item>HEX</item>
<item>JOIN</item>
<item>LENGTH</item>
<item>LESS</item>
@@ -722,6 +768,7 @@
</list>
<list name="while_nargs">
<item>AND</item>
<item>COMMAND</item>
<item>DEFINED</item>
<item>EQUAL</item>
<item>EXISTS</item>
@@ -866,6 +913,10 @@
<item>NAMESPACE</item>
<item>TARGETS</item>
</list>
<list name="get_source_file_property_nargs">
<item>DIRECTORY</item>
<item>TARGET_DIRECTORY</item>
</list>
<list name="include_directories_nargs">
<item>AFTER</item>
<item>BEFORE</item>
@@ -968,7 +1019,9 @@
<item>Swift</item>
</list>
<list name="set_source_files_properties_nargs">
<item>DIRECTORY</item>
<item>PROPERTIES</item>
<item>TARGET_DIRECTORY</item>
</list>
<list name="set_target_properties_nargs">
<item>PROPERTIES</item>
@@ -1221,6 +1274,7 @@
<item>RETURN_VALUE</item>
<item>SCHEDULE_RANDOM</item>
<item>START</item>
<item>STOP_ON_FAILURE</item>
<item>STOP_TIME</item>
<item>STRIDE</item>
<item>TEST_LOAD</item>
@@ -1244,6 +1298,9 @@
<list name="variables">
<item>ANDROID</item>
<item>APPLE</item>
<item>ARGC</item>
<item>ARGN</item>
<item>ARGV</item>
<item>BORLAND</item>
<item>BUILD_SHARED_LIBS</item>
<item>BUILD_TESTING</item>
@@ -1322,6 +1379,7 @@
<item>CMAKE_CROSS_CONFIGS</item>
<item>CMAKE_CTEST_ARGUMENTS</item>
<item>CMAKE_CTEST_COMMAND</item>
<item>CMAKE_CUDA_ARCHITECTURES</item>
<item>CMAKE_CUDA_COMPILE_FEATURES</item>
<item>CMAKE_CUDA_EXTENSIONS</item>
<item>CMAKE_CUDA_HOST_COMPILER</item>
@@ -1413,6 +1471,7 @@
<item>CMAKE_Fortran_MODDIR_FLAG</item>
<item>CMAKE_Fortran_MODOUT_FLAG</item>
<item>CMAKE_Fortran_MODULE_DIRECTORY</item>
<item>CMAKE_Fortran_PREPROCESS</item>
<item>CMAKE_GENERATOR</item>
<item>CMAKE_GENERATOR_INSTANCE</item>
<item>CMAKE_GENERATOR_NO_COMPILER_ENV</item>
@@ -1424,7 +1483,6 @@
<item>CMAKE_GLOBAL_AUTORCC_TARGET_NAME</item>
<item>CMAKE_GNUtoMS</item>
<item>CMAKE_HAS_ANSI_STRING_STREAM</item>
<item>CMAKE_HOME_DIRECTORY</item>
<item>CMAKE_HOST_APPLE</item>
<item>CMAKE_HOST_SOLARIS</item>
<item>CMAKE_HOST_SYSTEM</item>
@@ -1493,7 +1551,6 @@
<item>CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS</item>
<item>CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP</item>
<item>CMAKE_INSTALL_UCRT_LIBRARIES</item>
<item>CMAKE_INTERNAL_PLATFORM_ABI</item>
<item>CMAKE_INTERPROCEDURAL_OPTIMIZATION</item>
<item>CMAKE_IOS_INSTALL_COMBINED</item>
<item>CMAKE_JOB_POOLS</item>
@@ -1535,7 +1592,6 @@
<item>CMAKE_NETRC</item>
<item>CMAKE_NETRC_FILE</item>
<item>CMAKE_NINJA_OUTPUT_PATH_PREFIX</item>
<item>CMAKE_NOT_USING_CONFIG_FLAGS</item>
<item>CMAKE_NO_ANSI_FOR_SCOPE</item>
<item>CMAKE_NO_ANSI_STREAM_HEADERS</item>
<item>CMAKE_NO_ANSI_STRING_STREAM</item>
@@ -1548,6 +1604,7 @@
<item>CMAKE_OSX_SYSROOT</item>
<item>CMAKE_PARENT_LIST_FILE</item>
<item>CMAKE_PATCH_VERSION</item>
<item>CMAKE_PCH_WARN_INVALID</item>
<item>CMAKE_PDB_OUTPUT_DIRECTORY</item>
<item>CMAKE_POSITION_INDEPENDENT_CODE</item>
<item>CMAKE_PREFIX_PATH</item>
@@ -1592,8 +1649,6 @@
<item>CMAKE_STATIC_LINKER_FLAGS_INIT</item>
<item>CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS</item>
<item>CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE</item>
<item>CMAKE_SUPPRESS_DEVELOPER_ERRORS</item>
<item>CMAKE_SUPPRESS_DEVELOPER_WARNINGS</item>
<item>CMAKE_SUPPRESS_REGENERATION</item>
<item>CMAKE_SWIG_FLAGS</item>
<item>CMAKE_SWIG_OUTDIR</item>
@@ -1634,7 +1689,6 @@
<item>CMAKE_VS_GLOBALS</item>
<item>CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD</item>
<item>CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD</item>
<item>CMAKE_VS_INTEL_Fortran_PROJECT_VERSION</item>
<item>CMAKE_VS_JUST_MY_CODE_DEBUGGING</item>
<item>CMAKE_VS_MSBUILD_COMMAND</item>
<item>CMAKE_VS_NsightTegra_VERSION</item>
@@ -1678,6 +1732,7 @@
<item>CPACK_ABSOLUTE_DESTINATION_FILES</item>
<item>CPACK_ARCHIVE_COMPONENT_INSTALL</item>
<item>CPACK_ARCHIVE_FILE_NAME</item>
<item>CPACK_ARCHIVE_THREADS</item>
<item>CPACK_BUILD_SOURCE_DIRS</item>
<item>CPACK_BUNDLE_APPLE_CERT_APP</item>
<item>CPACK_BUNDLE_APPLE_CODESIGN_FILES</item>
@@ -1742,9 +1797,9 @@
<item>CPACK_DMG_SLA_LANGUAGES</item>
<item>CPACK_DMG_VOLUME_NAME</item>
<item>CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION</item>
<item>CPACK_EXT_ENABLE_STAGING</item>
<item>CPACK_EXT_PACKAGE_SCRIPT</item>
<item>CPACK_EXT_REQUESTED_VERSIONS</item>
<item>CPACK_EXTERNAL_ENABLE_STAGING</item>
<item>CPACK_EXTERNAL_PACKAGE_SCRIPT</item>
<item>CPACK_EXTERNAL_REQUESTED_VERSIONS</item>
<item>CPACK_GENERATOR</item>
<item>CPACK_IFW_ADMIN_TARGET_DIRECTORY</item>
<item>CPACK_IFW_BINARYCREATOR_EXECUTABLE</item>
@@ -1788,7 +1843,6 @@
<item>CPACK_INSTALL_CMAKE_PROJECTS</item>
<item>CPACK_INSTALL_COMMANDS</item>
<item>CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS</item>
<item>CPACK_INSTALL_SCRIPT</item>
<item>CPACK_INSTALL_SCRIPTS</item>
<item>CPACK_MONOLITHIC_INSTALL</item>
<item>CPACK_NSIS_COMPRESSOR</item>
@@ -1807,6 +1861,7 @@
<item>CPACK_NSIS_INSTALLED_ICON_NAME</item>
<item>CPACK_NSIS_INSTALLER_MUI_ICON_CODE</item>
<item>CPACK_NSIS_INSTALL_ROOT</item>
<item>CPACK_NSIS_MANIFEST_DPI_AWARE</item>
<item>CPACK_NSIS_MENU_LINKS</item>
<item>CPACK_NSIS_MODIFY_PATH</item>
<item>CPACK_NSIS_MUI_FINISHPAGE_RUN</item>
@@ -1838,7 +1893,6 @@
<item>CPACK_NUGET_PACKAGE_VERSION</item>
<item>CPACK_OUTPUT_CONFIG_FILE</item>
<item>CPACK_PACKAGE_CHECKSUM</item>
<item>CPACK_PACKAGE_CONTACT</item>
<item>CPACK_PACKAGE_DESCRIPTION</item>
<item>CPACK_PACKAGE_DESCRIPTION_FILE</item>
<item>CPACK_PACKAGE_DESCRIPTION_SUMMARY</item>
@@ -1850,7 +1904,6 @@
<item>CPACK_PACKAGE_INSTALL_DIRECTORY</item>
<item>CPACK_PACKAGE_INSTALL_REGISTRY_KEY</item>
<item>CPACK_PACKAGE_NAME</item>
<item>CPACK_PACKAGE_RELOCATABLE</item>
<item>CPACK_PACKAGE_VENDOR</item>
<item>CPACK_PACKAGE_VERSION</item>
<item>CPACK_PACKAGE_VERSION_MAJOR</item>
@@ -1926,8 +1979,10 @@
<item>CPACK_RPM_PACKAGE_VENDOR</item>
<item>CPACK_RPM_PACKAGE_VERSION</item>
<item>CPACK_RPM_POST_INSTALL_SCRIPT_FILE</item>
<item>CPACK_RPM_POST_TRANS_SCRIPT_FILE</item>
<item>CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE</item>
<item>CPACK_RPM_PRE_INSTALL_SCRIPT_FILE</item>
<item>CPACK_RPM_PRE_TRANS_SCRIPT_FILE</item>
<item>CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE</item>
<item>CPACK_RPM_RELOCATION_PATHS</item>
<item>CPACK_RPM_SOURCE_PKG_BUILD_PARAMS</item>
@@ -2023,6 +2078,8 @@
<item>CTEST_P4_COMMAND</item>
<item>CTEST_P4_OPTIONS</item>
<item>CTEST_P4_UPDATE_OPTIONS</item>
<item>CTEST_RESOURCE_SPEC_FILE</item>
<item>CTEST_RUN_CURRENT_SCRIPT</item>
<item>CTEST_SCP_COMMAND</item>
<item>CTEST_SITE</item>
<item>CTEST_SOURCE_DIRECTORY</item>
@@ -2120,6 +2177,21 @@
<item>XCODE_VERSION</item>
</list>
<list name="deprecated-or-internal-variables">
<item>CMAKE_HOME_DIRECTORY</item>
<item>CMAKE_INTERNAL_PLATFORM_ABI</item>
<item>CMAKE_NOT_USING_CONFIG_FLAGS</item>
<item>CMAKE_SUPPRESS_DEVELOPER_ERRORS</item>
<item>CMAKE_SUPPRESS_DEVELOPER_WARNINGS</item>
<item>CMAKE_VS_INTEL_Fortran_PROJECT_VERSION</item>
<item>CPACK_INSTALL_PREFIX</item>
<item>CPACK_INSTALL_SCRIPT</item>
<item>CPACK_PACKAGE_CONTACT</item>
<item>CPACK_PACKAGE_RELOCATABLE</item>
<item>CPACK_TEMPORARY_DIRECTORY</item>
<item>CPACK_TOPLEVEL_DIRECTORY</item>
</list>
<list name="environment-variables">
<item>CC</item>
<item>CFLAGS</item>
@@ -2293,6 +2365,7 @@
<item>COMPILE_PDB_NAME</item>
<item>COMPILE_PDB_OUTPUT_DIRECTORY</item>
<item>CROSSCOMPILING_EMULATOR</item>
<item>CUDA_ARCHITECTURES</item>
<item>CUDA_EXTENSIONS</item>
<item>CUDA_PTX_COMPILATION</item>
<item>CUDA_RESOLVE_DEVICE_SYMBOLS</item>
@@ -2324,6 +2397,7 @@
<item>FRAMEWORK_VERSION</item>
<item>Fortran_FORMAT</item>
<item>Fortran_MODULE_DIRECTORY</item>
<item>Fortran_PREPROCESS</item>
<item>GENERATOR_FILE_NAME</item>
<item>GNUtoMS</item>
<item>HAS_CXX</item>
@@ -2382,6 +2456,8 @@
<item>LINK_SEARCH_START_STATIC</item>
<item>LINK_WHAT_YOU_USE</item>
<item>LOCATION</item>
<item>MACHO_COMPATIBILITY_VERSION</item>
<item>MACHO_CURRENT_VERSION</item>
<item>MACOSX_BUNDLE</item>
<item>MACOSX_BUNDLE_INFO_PLIST</item>
<item>MACOSX_FRAMEWORK_INFO_PLIST</item>
@@ -2395,6 +2471,7 @@
<item>OSX_COMPATIBILITY_VERSION</item>
<item>OSX_CURRENT_VERSION</item>
<item>OUTPUT_NAME</item>
<item>PCH_WARN_INVALID</item>
<item>PDB_NAME</item>
<item>PDB_OUTPUT_DIRECTORY</item>
<item>POSITION_INDEPENDENT_CODE</item>
@@ -2425,6 +2502,7 @@
<item>UNITY_BUILD_BATCH_SIZE</item>
<item>UNITY_BUILD_CODE_AFTER_INCLUDE</item>
<item>UNITY_BUILD_CODE_BEFORE_INCLUDE</item>
<item>UNITY_BUILD_MODE</item>
<item>VERSION</item>
<item>VISIBILITY_INLINES_HIDDEN</item>
<item>VS_CONFIGURATION_TYPE</item>
@@ -2448,12 +2526,14 @@
<item>VS_MOBILE_EXTENSIONS_VERSION</item>
<item>VS_NO_SOLUTION_DEPLOY</item>
<item>VS_PACKAGE_REFERENCES</item>
<item>VS_PLATFORM_TOOLSET</item>
<item>VS_PROJECT_IMPORT</item>
<item>VS_SCC_AUXPATH</item>
<item>VS_SCC_LOCALPATH</item>
<item>VS_SCC_PROJECTNAME</item>
<item>VS_SCC_PROVIDER</item>
<item>VS_SDK_REFERENCES</item>
<item>VS_SOLUTION_DEPLOY</item>
<item>VS_USER_PROPS</item>
<item>VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION</item>
<item>VS_WINRT_COMPONENT</item>
@@ -2496,6 +2576,7 @@
<item>COMPILE_OPTIONS</item>
<item>EXTERNAL_OBJECT</item>
<item>Fortran_FORMAT</item>
<item>Fortran_PREPROCESS</item>
<item>GENERATED</item>
<item>HEADER_FILE_ONLY</item>
<item>INCLUDE_DIRECTORIES</item>
@@ -2520,6 +2601,7 @@
<item>VS_DEPLOYMENT_LOCATION</item>
<item>VS_INCLUDE_IN_VSIX</item>
<item>VS_RESOURCE_GENERATOR</item>
<item>VS_SETTINGS</item>
<item>VS_SHADER_DISABLE_OPTIMIZATIONS</item>
<item>VS_SHADER_ENABLE_DEBUG</item>
<item>VS_SHADER_ENTRYPOINT</item>
@@ -2609,6 +2691,10 @@
<item>COMPILE_FEATURES</item>
<item>COMPILE_LANG_AND_ID</item>
<item>COMPILE_LANGUAGE</item>
<item>LINK_LANG_AND_ID</item>
<item>LINK_LANGUAGE</item>
<item>DEVICE_LINK</item>
<item>HOST_LINK</item>
<item>ANGLE-R</item>
<item>COMMA</item>
<item>SEMICOLON</item>
@@ -2660,6 +2746,7 @@
<DetectSpaces/>
<WordDetect String="break" insensitive="true" attribute="Command" context="break_ctx" />
<WordDetect String="cmake_host_system_information" insensitive="true" attribute="Command" context="cmake_host_system_information_ctx" />
<WordDetect String="cmake_language" insensitive="true" attribute="Command" context="cmake_language_ctx" />
<WordDetect String="cmake_minimum_required" insensitive="true" attribute="Command" context="cmake_minimum_required_ctx" />
<WordDetect String="cmake_parse_arguments" insensitive="true" attribute="Command" context="cmake_parse_arguments_ctx" />
<WordDetect String="cmake_policy" insensitive="true" attribute="Command" context="cmake_policy_ctx" />
@@ -2667,11 +2754,11 @@
<WordDetect String="continue" insensitive="true" attribute="Command" context="continue_ctx" />
<WordDetect String="elseif" insensitive="true" attribute="Command" context="elseif_ctx" />
<WordDetect String="else" insensitive="true" attribute="Command" context="else_ctx" />
<WordDetect String="endforeach" insensitive="true" attribute="Command" context="endforeach_ctx" />
<WordDetect String="endfunction" insensitive="true" attribute="Command" context="endfunction_ctx" />
<WordDetect String="endif" insensitive="true" attribute="Command" context="endif_ctx" />
<WordDetect String="endmacro" insensitive="true" attribute="Command" context="endmacro_ctx" />
<WordDetect String="endwhile" insensitive="true" attribute="Command" context="endwhile_ctx" />
<WordDetect String="endforeach" insensitive="true" attribute="Command" context="endforeach_ctx" endRegion="foreach" />
<WordDetect String="endfunction" insensitive="true" attribute="Command" context="endfunction_ctx" endRegion="function" />
<WordDetect String="endif" insensitive="true" attribute="Command" context="endif_ctx" endRegion="if" />
<WordDetect String="endmacro" insensitive="true" attribute="Command" context="endmacro_ctx" endRegion="macro" />
<WordDetect String="endwhile" insensitive="true" attribute="Command" context="endwhile_ctx" endRegion="while" />
<WordDetect String="execute_process" insensitive="true" attribute="Command" context="execute_process_ctx" />
<WordDetect String="file" insensitive="true" attribute="Command" context="file_ctx" />
<WordDetect String="find_file" insensitive="true" attribute="Command" context="find_file_ctx" />
@@ -2679,17 +2766,17 @@
<WordDetect String="find_package" insensitive="true" attribute="Command" context="find_package_ctx" />
<WordDetect String="find_path" insensitive="true" attribute="Command" context="find_path_ctx" />
<WordDetect String="find_program" insensitive="true" attribute="Command" context="find_program_ctx" />
<WordDetect String="foreach" insensitive="true" attribute="Command" context="foreach_ctx" />
<WordDetect String="function" insensitive="true" attribute="Command" context="function_ctx" />
<WordDetect String="foreach" insensitive="true" attribute="Command" context="foreach_ctx" beginRegion="foreach" />
<WordDetect String="function" insensitive="true" attribute="Command" context="function_ctx" beginRegion="function" />
<WordDetect String="get_cmake_property" insensitive="true" attribute="Command" context="get_cmake_property_ctx" />
<WordDetect String="get_directory_property" insensitive="true" attribute="Command" context="get_directory_property_ctx" />
<WordDetect String="get_filename_component" insensitive="true" attribute="Command" context="get_filename_component_ctx" />
<WordDetect String="get_property" insensitive="true" attribute="Command" context="get_property_ctx" />
<WordDetect String="if" insensitive="true" attribute="Command" context="if_ctx" />
<WordDetect String="if" insensitive="true" attribute="Command" context="if_ctx" beginRegion="if" />
<WordDetect String="include" insensitive="true" attribute="Command" context="include_ctx" />
<WordDetect String="include_guard" insensitive="true" attribute="Command" context="include_guard_ctx" />
<WordDetect String="list" insensitive="true" attribute="Command" context="list_ctx" />
<WordDetect String="macro" insensitive="true" attribute="Command" context="macro_ctx" />
<WordDetect String="macro" insensitive="true" attribute="Command" context="macro_ctx" beginRegion="macro" />
<WordDetect String="mark_as_advanced" insensitive="true" attribute="Command" context="mark_as_advanced_ctx" />
<WordDetect String="math" insensitive="true" attribute="Command" context="math_ctx" />
<WordDetect String="message" insensitive="true" attribute="Command" context="message_ctx" />
@@ -2703,7 +2790,7 @@
<WordDetect String="string" insensitive="true" attribute="Command" context="string_ctx" />
<WordDetect String="unset" insensitive="true" attribute="Command" context="unset_ctx" />
<WordDetect String="variable_watch" insensitive="true" attribute="Command" context="variable_watch_ctx" />
<WordDetect String="while" insensitive="true" attribute="Command" context="while_ctx" />
<WordDetect String="while" insensitive="true" attribute="Command" context="while_ctx" beginRegion="while" />
<WordDetect String="add_compile_definitions" insensitive="true" attribute="Command" context="add_compile_definitions_ctx" />
<WordDetect String="add_compile_options" insensitive="true" attribute="Command" context="add_compile_options_ctx" />
<WordDetect String="add_custom_command" insensitive="true" attribute="Command" context="add_custom_command_ctx" />
@@ -2789,6 +2876,14 @@
<keyword attribute="Special Args" context="#stay" String="cmake_host_system_information_sargs" />
<IncludeRules context="User Function Args" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="cmake_language_ctx">
<DetectChar attribute="Normal Text" context="cmake_language_ctx_op" char="(" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="cmake_language_ctx_op">
<IncludeRules context="EndCmdPop2" />
<keyword attribute="Named Args" context="#stay" String="cmake_language_nargs" />
<IncludeRules context="User Function Args" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="cmake_minimum_required_ctx">
<DetectChar attribute="Normal Text" context="cmake_minimum_required_ctx_op" char="(" />
</context>
@@ -3370,6 +3465,7 @@
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="get_source_file_property_ctx_op">
<IncludeRules context="EndCmdPop2" />
<keyword attribute="Named Args" context="#stay" String="get_source_file_property_nargs" />
<keyword attribute="Property" context="#stay" String="source-properties" />
<IncludeRules context="Detect More source-properties" />
<IncludeRules context="User Function Args" />
@@ -3723,6 +3819,7 @@
<RegExpr attribute="Property" context="#stay" String="\b&id_re;_OUTPUT_NAME\b" />
<RegExpr attribute="Property" context="#stay" String="\b&id_re;_POSTFIX\b" />
<RegExpr attribute="Property" context="#stay" String="\bEXCLUDE_FROM_DEFAULT_BUILD_&id_re;\b" />
<RegExpr attribute="Property" context="#stay" String="\bFRAMEWORK_MULTI_CONFIG_POSTFIX_&id_re;\b" />
<RegExpr attribute="Property" context="#stay" String="\bIMPORTED_IMPLIB_&id_re;\b" />
<RegExpr attribute="Property" context="#stay" String="\bIMPORTED_LIBNAME_&id_re;\b" />
<RegExpr attribute="Property" context="#stay" String="\bIMPORTED_LINK_DEPENDENT_LIBRARIES_&id_re;\b" />
@@ -3757,6 +3854,7 @@
<RegExpr attribute="Property" context="#stay" String="\bVS_DOTNET_REFERENCE_&id_re;\b" />
<RegExpr attribute="Property" context="#stay" String="\bVS_DOTNET_REFERENCEPROP_&id_re;_TAG_&id_re;\b" />
<RegExpr attribute="Property" context="#stay" String="\bVS_GLOBAL_&id_re;\b" />
<RegExpr attribute="Property" context="#stay" String="\bVS_SOURCE_SETTINGS_&id_re;\b" />
<RegExpr attribute="Property" context="#stay" String="\bXCODE_ATTRIBUTE_&id_re;\b" />
</context>
@@ -3784,11 +3882,16 @@
<context attribute="Normal Text" lineEndContext="#stay" name="Detect Builtin Variables">
<RegExpr attribute="Internal Name" context="#stay" String="\b_&id_re;\b" />
<keyword attribute="CMake Internal Variable" context="#stay" String="deprecated-or-internal-variables" insensitive="false" />
<keyword attribute="Builtin Variable" context="#stay" String="variables" insensitive="false" />
<IncludeRules context="Detect More Builtin Variables" />
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="Detect More Builtin Variables">
<RegExpr attribute="CMake Internal Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_ABI\b" />
<RegExpr attribute="CMake Internal Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_ARCHITECTURE_ID\b" />
<RegExpr attribute="CMake Internal Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_VERSION_INTERNAL\b" />
<RegExpr attribute="CMake Internal Variable" context="#stay" String="\bCMAKE_&id_re;_PLATFORM_ID\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_BINARY_DIR\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_SOURCE_DIR\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_VERSION\b" />
@@ -3817,7 +3920,10 @@
<RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_LIBRARY_DIRS\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_VERSION_COUNT\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_VERSION_STRING\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_KEYWORDS_MISSING_VALUES\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_UNPARSED_ARGUMENTS\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\b&id_re;_MODULE_NAME\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bARGV[0-9]+\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_POSTFIX\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_ANDROID_TOOLCHAIN_MACHINE\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_ANDROID_TOOLCHAIN_PREFIX\b" />
@@ -3827,7 +3933,6 @@
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_ARCHIVE_FINISH\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_CLANG_TIDY\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_ABI\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_AR\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_EXTERNAL_TOOLCHAIN\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_ID\b" />
@@ -3869,7 +3974,6 @@
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_LINKER_WRAPPER_FLAG_SEP\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_LINK_EXECUTABLE\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_OUTPUT_EXTENSION\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_PLATFORM_ID\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_SIMULATE_ID\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_SIMULATE_VERSION\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_&id_re;_SIZEOF_DATA_PTR\b" />
@@ -3883,6 +3987,7 @@
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_DISABLE_FIND_PACKAGE_&id_re;\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_EXE_LINKER_FLAGS_&id_re;\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_EXE_LINKER_FLAGS_&id_re;_INIT\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_FRAMEWORK_MULTI_CONFIG_POSTFIX_&id_re;\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_INTERPROCEDURAL_OPTIMIZATION_&id_re;\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_LIBRARY_OUTPUT_DIRECTORY_&id_re;\b" />
<RegExpr attribute="Builtin Variable" context="#stay" String="\bCMAKE_MAP_IMPORTED_CONFIG_&id_re;\b" />
@@ -3991,18 +4096,12 @@
<context attribute="Normal Text" lineEndContext="#stay" name="Detect Variable Substitutions">
<RegExpr attribute="Cache Variable Substitution" context="#stay" String="\$CACHE\{\s*[\w-]+\s*\}" />
<RegExpr attribute="Environment Variable Substitution" context="EnvVarSubst" String="\$ENV\{\s*[\w-]+\s*\}" lookAhead="true" />
<RegExpr attribute="Environment Variable Substitution" context="EnvVarSubst" String="\$?ENV\{" />
<Detect2Chars attribute="Variable Substitution" context="VarSubst" char="$" char1="{" />
<RegExpr attribute="@Variable Substitution" context="@VarSubst" String="@&id_re;@" lookAhead="true" />
</context>
<context attribute="Environment Variable Substitution" lineEndContext="#pop" name="EnvVarSubst">
<DetectIdentifier />
<DetectChar attribute="Environment Variable Substitution" context="EnvVarSubstVar" char="{" />
<DetectChar attribute="Environment Variable Substitution" context="#pop" char="}" />
</context>
<context attribute="Environment Variable Substitution" lineEndContext="#pop" name="EnvVarSubstVar">
<keyword attribute="Standard Environment Variable" context="#stay" String="environment-variables" insensitive="false" />
<RegExpr attribute="Standard Environment Variable" context="#stay" String="\b&id_re;_DIR\b" />
<RegExpr attribute="Standard Environment Variable" context="#stay" String="\b&id_re;_ROOT\b" />
@@ -4010,7 +4109,8 @@
<RegExpr attribute="Standard Environment Variable" context="#stay" String="\bASM&id_re;FLAGS\b" />
<RegExpr attribute="Standard Environment Variable" context="#stay" String="\bCMAKE_&id_re;_COMPILER_LAUNCHER\b" />
<DetectIdentifier />
<DetectChar attribute="Environment Variable Substitution" context="#pop#pop" char="}" />
<IncludeRules context="Detect Variable Substitutions" />
<DetectChar attribute="Environment Variable Substitution" context="#pop" char="}" />
</context>
<context attribute="Variable Substitution" lineEndContext="#pop" name="VarSubst">
@@ -4021,6 +4121,7 @@
</context>
<context attribute="@Variable Substitution" lineEndContext="#pop" name="@VarSubst">
<IncludeRules context="Detect Builtin Variables" />
<DetectChar attribute="@Variable Substitution" context="VarSubst@" char="@" />
</context>
@@ -4067,6 +4168,7 @@
</context>
<context attribute="Comment" lineEndContext="#stay" name="Bracketed Comment" dynamic="true">
<LineContinue attribute="Comment" context="#stay" />
<RegExpr attribute="Comment" context="#pop" String=".*\]%1\]" dynamic="true" />
<IncludeRules context="##Alerts" />
<IncludeRules context="##Modelines" />
@@ -4111,6 +4213,7 @@
<itemData name="Strings" defStyleNum="dsString" spellChecking="true" />
<itemData name="Escapes" defStyleNum="dsChar" spellChecking="false" />
<itemData name="Builtin Variable" defStyleNum="dsDecVal" color="#c09050" selColor="#c09050" spellChecking="false" />
<itemData name="CMake Internal Variable" defStyleNum="dsDecVal" color="#303030" selColor="#303030" spellChecking="false" />
<itemData name="Internal Name" defStyleNum="dsDecVal" color="#303030" selColor="#303030" spellChecking="false" />
<itemData name="Variable Substitution" defStyleNum="dsDecVal" spellChecking="false" />
<itemData name="@Variable Substitution" defStyleNum="dsBaseN" spellChecking="false" />

View File

@@ -2,9 +2,11 @@
<!DOCTYPE language SYSTEM "language.dtd"
[
<!ENTITY wordsep "([][,?;()]|\.$|\.?\s)"> <!-- things that end a TagWord -->
<!ENTITY sl_word ".*?(?=&wordsep;)">
<!ENTITY ml_word ".*?(?=&wordsep;|\*/)">
]>
<language name="Doxygen"
version="6"
version="7"
kateversion="5.0"
section="Markup"
extensions="*.dox;*.doxygen"
@@ -42,10 +44,6 @@
<item>\endrtfonly</item> <item>@endrtfonly</item>
<item>\endsecreflist</item> <item>@endsecreflist</item>
<item>\endxmlonly</item> <item>@endxmlonly</item>
<item>\f[</item> <item>@f[</item>
<item>\f]</item> <item>@f]</item>
<item>\f$</item> <item>@f$</item>
<!-- TODO Add @f{environment}{ and @f} -->
<item>\hideinitializer</item> <item>@hideinitializer</item>
<item>\htmlonly</item> <item>@htmlonly</item>
<!-- TODO @internal is a candidate to be handled separately, cuz may introduce folding region -->
@@ -84,21 +82,6 @@
<item>\test</item> <item>@test</item>
<item>\version</item> <item>@version</item>
<item>\xmlonly</item> <item>@xmlonly</item>
<!-- TODO Introduce separate context for @~ ? -->
<item>\#</item> <item>@#</item>
<item>\$</item> <item>@$</item>
<item>\%</item> <item>@%</item>
<item>\&amp;</item> <item>@&amp;</item>
<item>\&gt;</item> <item>@&gt;</item>
<item>\&lt;</item> <item>@&lt;</item>
<item>\&quot;</item> <item>@&quot;</item>
<item>\::</item> <item>@::</item>
<item>\@</item> <item>@@</item>
<item>\\</item> <item>@\</item>
<item>\~</item> <item>@~</item>
<item>\.</item> <item>@.</item>
<item>\--</item> <item>@--</item>
<item>\---</item> <item>@---</item>
</list>
<list name="TagWord">
@@ -202,6 +185,12 @@
<item>\var</item> <item>@var</item>
<item>\vhdlflow</item> <item>@vhdlflow</item>
</list>
<list name="TagEnd">
<item>\endcode</item> <item>@endcode</item>
<item>\endverbatim</item> <item>@endverbatim</item>
<item>\endmsc</item> <item>@endmsc</item>
<item>\enddot</item> <item>@enddot</item>
</list>
<list name="Note">
<item>\note</item> <item>@note</item>
</list>
@@ -231,8 +220,8 @@
TODO Not all commands are handled properly nowadays :( Need few more contexts...
-->
<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
<RegExpr attribute="Comment" context="LineComment" String="//(!|(/(?=[^/]|$)))&lt;?" />
<RegExpr attribute="Comment" context="BlockComment" String="/\*(\*[^*/]|!|[*!]&lt;|\*$)" beginRegion="BlockComment" />
<RegExpr attribute="Comment" context="LineComment" String="//(?:!|(?:/(?=[^/]|$)))&lt;?" />
<RegExpr attribute="Comment" context="BlockComment" String="/\*(?:\*[^*/]|!|[*!]&lt;|\*$)" beginRegion="BlockComment" />
<RegExpr attribute="Region" context="#stay" String="//\s*@\{\s*$" beginRegion="MemberGroup" />
<RegExpr attribute="Region" context="#stay" String="//\s*@\}\s*$" endRegion="MemberGroup" />
<RegExpr attribute="Region" context="#stay" String="/\*\s*@\{\s*\*/" beginRegion="MemberGroup" />
@@ -242,38 +231,21 @@
<LineContinue attribute="Comment" context="#stay" />
<DetectSpaces />
<IncludeRules context="##Alerts" />
<IncludeRules context="SL_DetectEnv" />
<keyword attribute="Tags" context="#stay" String="TagOnly" />
<keyword attribute="Tags" context="SL_TagWord" String="TagWord" />
<keyword attribute="Tags" context="SL_TagParam" String="TagParam" />
<keyword attribute="Tags" context="SL_TagWordWord" String="TagWordWord" />
<keyword attribute="Tags" context="SL_TagString" String="TagString" />
<keyword attribute="Tags" context="SL_TagWordString" String="TagWordString" />
<RegExpr attribute="Custom Tags" context="#stay" String="[@\\][^@\\ \t]+" />
<DetectIdentifier />
<StringDetect attribute="HTML Comment" context="SL_htmlcomment" String="&lt;!--" />
<Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
<RegExpr attribute="HTML Tag" context="SL_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
<DetectChar attribute="Comment" context="SL_StartTag" char="\" lookAhead="true" />
<DetectChar attribute="Comment" context="SL_StartTag" char="@" lookAhead="true" />
<DetectChar attribute="Comment" context="SL_StartHTMLTag" char="&lt;" lookAhead="true" />
<DetectChar attribute="Comment" context="Entities" char="&amp;" lookAhead="true" />
</context>
<context attribute="Comment" lineEndContext="#stay" name="BlockComment">
<DetectSpaces />
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="BlockComment" />
<IncludeRules context="##Alerts" />
<Detect2Chars attribute="Region" context="#stay" char="@" char1="{" beginRegion="Group" />
<Detect2Chars attribute="Region" context="#stay" char="@" char1="}" endRegion="Group" />
<IncludeRules context="SL_DetectEnv" />
<keyword attribute="Tags" context="#stay" String="TagOnly" />
<keyword attribute="Tags" context="ML_TagWord" String="TagWord" />
<keyword attribute="Tags" context="ML_TagParam" String="TagParam" />
<keyword attribute="Tags" context="ML_TagWordWord" String="TagWordWord" />
<keyword attribute="Tags" context="ML_TagString" String="TagString" />
<keyword attribute="Tags" context="ML_TagWordString" String="TagWordString" />
<RegExpr attribute="Custom Tags" context="#stay" String="[@\\]([^@\\ \t\*]|\*(?!/))+" />
<DetectIdentifier />
<RegExpr attribute="Tags" context="#stay" String="\\(&lt;|&gt;)" />
<Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
<RegExpr attribute="HTML Tag" context="ML_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
<StringDetect attribute="HTML Comment" context="ML_htmlcomment" String="&lt;!--" />
<DetectChar attribute="Comment" context="ML_StartTag" char="\" lookAhead="true" />
<DetectChar attribute="Comment" context="ML_StartTag" char="@" lookAhead="true" />
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="BlockComment" />
<DetectChar attribute="Comment" context="ML_StartHTMLTag" char="&lt;" lookAhead="true" />
<DetectChar attribute="Comment" context="Entities" char="&amp;" lookAhead="true" />
</context>
<!-- NOTE: all contexts beginning with ML_ are for multiline comments
@@ -284,123 +256,254 @@
much more complex and very hard to understand! (But use IncludeRules where the rules don't
refer to another SL_*/ML_* context, to help maintainability.)
-->
<context attribute="Comment" lineEndContext="#pop" name="ML_StartTag">
<keyword attribute="Tags" context="#pop!ML_TagWord" String="TagWord" />
<keyword attribute="Tags" context="#pop!ML_TagParam" String="TagParam" />
<keyword attribute="Tags" context="#pop!ML_TagWordWord" String="TagWordWord" />
<keyword attribute="Tags" context="#pop!ML_TagString" String="TagString" />
<keyword attribute="Tags" context="#pop!ML_TagWordString" String="TagWordString" />
<WordDetect attribute="Tags" context="#pop!ML_Code" String="\code" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!ML_Code" String="@code" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!ML_Verbatim" String="\verbatim" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!ML_Verbatim" String="@verbatim" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!ML_Formula" String="\f[" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!ML_Formula" String="@f[" beginRegion="VerbatimBlock" />
<StringDetect attribute="Tags" context="#pop!ML_FormulaShort" String="\f$" beginRegion="VerbatimBlock" />
<StringDetect attribute="Tags" context="#pop!ML_FormulaShort" String="@f$" beginRegion="VerbatimBlock" />
<StringDetect attribute="Tags" context="#pop!ML_FormulaEnv" String="\f{" beginRegion="VerbatimBlock" />
<StringDetect attribute="Tags" context="#pop!ML_FormulaEnv" String="@f{" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!ML_Msc" String="\msc" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!ML_Msc" String="@msc" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!ML_Dot" String="\dot" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!ML_Dot" String="@dot" beginRegion="VerbatimBlock" />
<IncludeRules context="Inc_OtherTag" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="ML_StartHTMLTag">
<Detect2Chars attribute="Comment" context="#pop" char="&lt;" char1="&lt;" />
<RegExpr attribute="HTML Tag" context="#pop!ML_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
<StringDetect attribute="HTML Comment" context="#pop!ML_htmlcomment" String="&lt;!--" />
<DetectChar attribute="Comment" context="#pop" char="&lt;" />
</context>
<!-- tag contexts -->
<context attribute="Comment" lineEndContext="#pop" name="ML_TagWord">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
<IncludeRules context="SL_TagWord" />
<DetectSpaces />
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
<keyword attribute="Tags" context="#pop!ML_TagWord" String="TagWord" />
<IncludeRules context="ML_Inc_Word" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="ML_TagParam">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
<DetectSpaces />
<StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[in]" />
<StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[out]" />
<StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[in,out]" />
<RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
<RegExpr attribute="Word" context="#stay" String="\S" />
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
<StringDetect attribute="Tags" context="#pop!ML_TagWord" String="[in]" />
<StringDetect attribute="Tags" context="#pop!ML_TagWord" String="[out]" />
<StringDetect attribute="Tags" context="#pop!ML_TagWord" String="[in,out]" />
<IncludeRules context="ML_Inc_Word" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="ML_TagWordWord">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
<DetectSpaces />
<RegExpr attribute="Word" context="ML_Tag2ndWord" String="\S(?=&wordsep;)" />
<RegExpr attribute="Word" context="#stay" String="\S" />
</context>
<!-- TODO for kate 2.x, convert references to "#pop!ML_TagWord" -->
<context attribute="Comment" lineEndContext="#pop#pop" name="ML_Tag2ndWord">
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" lookAhead="true" />
<IncludeRules context="SL_Tag2ndWord" />
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
<RegExpr attribute="Word" context="#pop!ML_TagWord" String="&ml_word;" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="ML_TagString">
<DetectSpaces />
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
<StringDetect attribute="HTML Comment" context="ML_htmlcomment" String="&lt;!--" />
<Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
<RegExpr attribute="HTML Tag" context="ML_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
<RegExpr attribute="Description" context="#stay" String="." />
<RegExpr attribute="Description" context="#stay" String="[&lt;*]?[^&lt;*\s]+" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="ML_TagWordString">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
<IncludeRules context="SL_TagWordString" />
<DetectSpaces />
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
<IncludeRules context="ML_Inc_Word" />
</context>
<context name="ML_Inc_Word" attribute="Word" lineEndContext="#pop">
<RegExpr attribute="Word" context="#pop" String="&ml_word;" />
</context>
<!-- html contexts -->
<context name="ML_htmltag" attribute="Identifier" lineEndContext="#stay">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
<Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1="&gt;" />
<DetectChar attribute="HTML Tag" context="#pop" char="&gt;" />
<RegExpr attribute="Identifier" context="ML_identifiers" String="\s*=\s*" />
<DetectSpaces />
<DetectChar attribute="Identifier" context="ML_identifiers" char="=" />
</context>
<context name="ML_htmlcomment" attribute="HTML Comment" lineEndContext="#stay">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
<DetectSpaces />
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
<IncludeRules context="##Alerts" />
<DetectIdentifier />
<StringDetect attribute="HTML Comment" context="#pop" String="--&gt;" />
</context>
<context name="ML_identifiers" attribute="Identifier" lineEndContext="#stay">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
<RegExpr attribute="Identifier" context="#pop" String="\s*#?[a-zA-Z0-9]*" />
<DetectSpaces />
<Detect2Chars attribute="Comment" context="#pop#pop#pop" char="*" char1="/" endRegion="BlockComment" />
<DetectChar attribute="Types" context="ML_types1" char="'" />
<DetectChar attribute="Types" context="ML_types2" char="&quot;" />
</context>
<context name="ML_types1" attribute="Types" lineEndContext="#stay">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
<Detect2Chars attribute="Comment" context="#pop#pop#pop#pop" char="*" char1="/" endRegion="BlockComment" />
<DetectChar attribute="Types" context="#pop#pop" char="'" />
</context>
<context name="ML_types2" attribute="Types" lineEndContext="#stay">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
<Detect2Chars attribute="Comment" context="#pop#pop#pop#pop" char="*" char1="/" endRegion="BlockComment" />
<DetectChar attribute="Types" context="#pop#pop" char="&quot;" />
</context>
<context name="ML_FindNextLine" attribute="Comment" lineEndContext="#pop" fallthroughContext="#pop">
<DetectSpaces />
<Detect2Chars attribute="Comment" context="#pop!ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
<Detect2Chars attribute="Comment" context="ML_VerbatimPrefix" char="*" char1="*" lookAhead="true" />
<DetectChar attribute="Comment" context="#pop" char="*" />
</context>
<context name="ML_VerbatimPrefix" attribute="Comment" lineEndContext="#stay">
<DetectChar attribute="Comment" context="#pop" char="*" />
</context>
<context name="ML_End_BlockComment" attribute="Comment" lineEndContext="#stay">
<Detect2Chars attribute="Error" context="#pop#pop#pop" char="*" char1="/" endRegion="BlockComment"/>
</context>
<context name="ML_Code" attribute="Code" lineEndContext="ML_FindNextLine">
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
<WordDetect attribute="Tags" context="#pop" String="\endcode" endRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop" String="@endcode" endRegion="VerbatimBlock" />
</context>
<context name="ML_Verbatim" attribute="Verbatim" lineEndContext="ML_FindNextLine">
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
<WordDetect attribute="Tags" context="#pop" String="\endverbatim" endRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop" String="@endverbatim" endRegion="VerbatimBlock" />
</context>
<context name="ML_Formula" attribute="Formulas" lineEndContext="ML_FindNextLine">
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
<WordDetect attribute="Tags" context="#pop" String="\f]" endRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop" String="@f]" endRegion="VerbatimBlock" />
<!-- TODO: How to force LaTeX math context here?? -->
<!-- <IncludeRules context="##LaTeX" /> -->
</context>
<context name="ML_FormulaShort" attribute="Formulas" lineEndContext="ML_FindNextLine">
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
<WordDetect attribute="Tags" context="#pop" String="\f$" endRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop" String="@f$" endRegion="VerbatimBlock" />
<!-- TODO: How to force LaTeX math context here?? -->
<!-- <IncludeRules context="##LaTeX" /> -->
</context>
<context name="ML_FormulaEnv" attribute="Word" lineEndContext="ML_FindNextLine">
<DetectChar attribute="Tags" context="#pop!ML_FormulaEnvStart" char="}" />
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
</context>
<context name="ML_FormulaEnvStart" attribute="Formulas" lineEndContext="ML_FindNextLine" fallthroughContext="#pop!ML_FormulaEnvFormula">
<DetectSpaces attribute="Comment" />
<DetectChar attribute="Tags" context="#pop!ML_FormulaEnvFormula" char="{" />
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
</context>
<context name="ML_FormulaEnvFormula" attribute="Formulas" lineEndContext="ML_FindNextLine">
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
<WordDetect attribute="Tags" context="#pop" String="\f}" endRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop" String="@f}" endRegion="VerbatimBlock" />
<!-- TODO: How to force LaTeX math context here?? -->
<!-- <IncludeRules context="##LaTeX" /> -->
</context>
<context name="ML_Msc" attribute="Message Sequence Chart" lineEndContext="ML_FindNextLine">
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
<WordDetect attribute="Tags" context="#pop" String="\endmsc" endRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop" String="@endmsc" endRegion="VerbatimBlock" />
</context>
<context name="ML_Dot" attribute="Dot Graph" lineEndContext="ML_FindNextLine">
<Detect2Chars attribute="Comment" context="ML_End_BlockComment" char="*" char1="/" endRegion="VerbatimBlock" lookAhead="1"/>
<WordDetect attribute="Tags" context="#pop" String="\enddot" endRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop" String="@enddot" endRegion="VerbatimBlock" />
</context>
<!-- NOTE: all contexts beginning with SL_ are for singleline comments -->
<context attribute="Comment" lineEndContext="#pop" name="SL_StartTag">
<keyword attribute="Tags" context="#pop!SL_TagWord" String="TagWord" />
<keyword attribute="Tags" context="#pop!SL_TagParam" String="TagParam" />
<keyword attribute="Tags" context="#pop!SL_TagWordWord" String="TagWordWord" />
<keyword attribute="Tags" context="#pop!SL_TagString" String="TagString" />
<keyword attribute="Tags" context="#pop!SL_TagWordString" String="TagWordString" />
<WordDetect attribute="Tags" context="#pop!SL_Code" String="\code" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!SL_Code" String="@code" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!SL_Verbatim" String="\verbatim" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!SL_Verbatim" String="@verbatim" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!SL_Formula" String="\f[" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!SL_Formula" String="@f[" beginRegion="VerbatimBlock" />
<StringDetect attribute="Tags" context="#pop!SL_FormulaShort" String="\f$" beginRegion="VerbatimBlock" />
<StringDetect attribute="Tags" context="#pop!SL_FormulaShort" String="@f$" beginRegion="VerbatimBlock" />
<StringDetect attribute="Tags" context="#pop!SL_FormulaEnv" String="\f{" beginRegion="VerbatimBlock" />
<StringDetect attribute="Tags" context="#pop!SL_FormulaEnv" String="@f{" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!SL_Msc" String="\msc" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!SL_Msc" String="@msc" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!SL_Dot" String="\dot" beginRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop!SL_Dot" String="@dot" beginRegion="VerbatimBlock" />
<IncludeRules context="Inc_OtherTag" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="SL_StartHTMLTag">
<Detect2Chars attribute="Comment" context="#pop" char="&lt;" char1="&lt;" />
<RegExpr attribute="HTML Tag" context="#pop!SL_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
<StringDetect attribute="HTML Comment" context="#pop!SL_htmlcomment" String="&lt;!--" />
<DetectChar attribute="Comment" context="#pop" char="&lt;" />
</context>
<!-- tag contexts -->
<context attribute="Comment" lineEndContext="#pop" name="SL_TagWord">
<DetectSpaces />
<keyword attribute="Tags" context="#pop" String="TagWord" lookAhead="true" />
<RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
<RegExpr attribute="Word" context="#stay" String="\S" />
<keyword attribute="Tags" context="#pop!SL_TagWord" String="TagWord" />
<IncludeRules context="SL_Inc_Word" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="SL_TagParam">
<DetectSpaces />
<StringDetect attribute="Tags" context="SL_Tag2ndWord" String="[in]" />
<StringDetect attribute="Tags" context="SL_Tag2ndWord" String="[out]" />
<StringDetect attribute="Tags" context="SL_Tag2ndWord" String="[in,out]" />
<RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
<RegExpr attribute="Word" context="#stay" String="\S" />
<StringDetect attribute="Tags" context="#pop!SL_TagWord" String="[in]" />
<StringDetect attribute="Tags" context="#pop!SL_TagWord" String="[out]" />
<StringDetect attribute="Tags" context="#pop!SL_TagWord" String="[in,out]" />
<IncludeRules context="SL_Inc_Word" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="SL_TagWordWord">
<DetectSpaces />
<RegExpr attribute="Word" context="SL_Tag2ndWord" String="\S(?=&wordsep;)" />
<RegExpr attribute="Word" context="#stay" String="\S" />
</context>
<!-- TODO for kate 2.x, convert references to "#pop!SL_TagWord" -->
<context attribute="Comment" lineEndContext="#pop#pop" name="SL_Tag2ndWord">
<DetectSpaces />
<RegExpr attribute="Word" context="#pop#pop" String="\S(?=&wordsep;)" />
<RegExpr attribute="Word" context="#stay" String="\S" />
<RegExpr attribute="Word" context="#pop!SL_TagWord" String="&sl_word;" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="SL_TagString">
<DetectSpaces />
<StringDetect attribute="HTML Comment" context="SL_htmlcomment" String="&lt;!--" />
<Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
<RegExpr attribute="HTML Tag" context="SL_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
<RegExpr attribute="Description" context="#stay" String="." />
<RegExpr attribute="Description" context="#stay" String="&lt;?[^&lt;\s]+" />
</context>
<context attribute="Comment" lineEndContext="#pop" name="SL_TagWordString">
<DetectSpaces />
<RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
<RegExpr attribute="Word" context="#stay" String="\S" />
<IncludeRules context="SL_Inc_Word" />
</context>
<context name="SL_Inc_Word" attribute="Word" lineEndContext="#pop">
<RegExpr attribute="Word" context="#pop" String="&sl_word;" />
</context>
<!-- html contexts -->
<context name="SL_htmltag" attribute="Identifier" lineEndContext="#pop">
<Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1="&gt;" />
<DetectChar attribute="HTML Tag" context="#pop" char="&gt;" />
<RegExpr attribute="Identifier" context="SL_identifiers" String="\s*=\s*" />
<DetectSpaces />
<DetectChar attribute="Identifier" context="SL_identifiers" char="=" />
</context>
<context name="SL_htmlcomment" attribute="HTML Comment" lineEndContext="#pop">
<DetectSpaces />
<IncludeRules context="##Alerts" />
<DetectIdentifier />
<StringDetect attribute="HTML Comment" context="#pop" String="--&gt;" />
</context>
<context name="SL_identifiers" attribute="Identifier" lineEndContext="#pop">
<RegExpr attribute="Identifier" context="#pop" String="\s*#?[a-zA-Z0-9]*" />
<DetectSpaces />
<DetectChar attribute="Types" context="SL_types1" char="'" />
<DetectChar attribute="Types" context="SL_types2" char="&quot;" />
</context>
@@ -411,50 +514,88 @@
<DetectChar attribute="Types" context="#pop#pop" char="&quot;" />
</context>
<context attribute="Comment" name="SL_DetectEnv" lineEndContext="#pop">
<RegExpr attribute="Tags" context="Code" String="[@\\]code\b" beginRegion="Code" />
<RegExpr attribute="Tags" context="Verbatim" String="[@\\]verbatim\b" beginRegion="Verbatim" />
<RegExpr attribute="Tags" context="Formula" String="[@\\]f\[" beginRegion="Formula" />
<RegExpr attribute="Tags" context="Msc" String="[@\\]msc\b" beginRegion="Msc" />
<RegExpr attribute="Tags" context="Dot" String="[@\\]dot\b" beginRegion="Dot" />
<keyword attribute="Note" context="#stay" String="Note" />
<keyword attribute="Warning" context="#stay" String="Warning" />
<keyword attribute="Attention" context="#stay" String="Attention" />
<keyword attribute="Todo" context="#stay" String="Todo" />
<RegExpr attribute="Entities" context="#stay" String="&amp;[A-Za-z]+&#59;" />
<context name="SL_FindNextLine" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop#pop#pop">
<DetectSpaces />
<StringDetect attribute="Comment" context="#pop" String="///" />
<StringDetect attribute="Comment" context="#pop" String="//!" />
<RegExpr attribute="Comment" context="#pop#pop#pop" String="." lookAhead="true" endRegion="VerbatimBlock" />
</context>
<context attribute="Comment" name="SL_DetectComment" lineEndContext="#pop">
<Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
<DetectChar attribute="Comment" context="#stay" char="*" />
<StringDetect attribute="Comment" context="#stay" String="///" />
<context name="SL_Code" attribute="Code" lineEndContext="SL_FindNextLine">
<WordDetect attribute="Tags" context="#pop" String="\endcode" endRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop" String="@endcode" endRegion="VerbatimBlock" />
</context>
<context attribute="Code" lineEndContext="#stay" name="Code">
<IncludeRules context="SL_DetectComment" />
<RegExpr attribute="Tags" context="#pop" String="[@\\]endcode\b" endRegion="Code" />
<context name="SL_Verbatim" attribute="Verbatim" lineEndContext="SL_FindNextLine">
<WordDetect attribute="Tags" context="#pop" String="\endverbatim" endRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop" String="@endverbatim" endRegion="VerbatimBlock" />
</context>
<context attribute="Verbatim" lineEndContext="#stay" name="Verbatim">
<IncludeRules context="SL_DetectComment" />
<RegExpr attribute="Tags" context="#pop" String="[@\\]endverbatim\b" endRegion="Verbatim" />
</context>
<context attribute="Formulas" lineEndContext="#stay" name="Formula">
<IncludeRules context="SL_DetectComment" />
<RegExpr attribute="Tags" context="#pop" String="[@\\]f\]" endRegion="Formula" />
<context name="SL_Formula" attribute="Formulas" lineEndContext="SL_FindNextLine">
<WordDetect attribute="Tags" context="#pop" String="\f]" endRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop" String="@f]" endRegion="VerbatimBlock" />
<!-- TODO: How to force LaTeX math context here?? -->
<!-- <IncludeRules context="##LaTeX" /> -->
</context>
<context attribute="Message Sequence Chart" lineEndContext="#stay" name="Msc">
<IncludeRules context="SL_DetectComment" />
<RegExpr attribute="Tags" context="#pop" String="[@\\]endmsc\b" endRegion="Msc" />
<context name="SL_FormulaShort" attribute="Formulas" lineEndContext="SL_FindNextLine">
<StringDetect attribute="Tags" context="#pop" String="\f$" endRegion="VerbatimBlock" />
<StringDetect attribute="Tags" context="#pop" String="@f$" endRegion="VerbatimBlock" />
<!-- TODO: How to force LaTeX math context here?? -->
<!-- <IncludeRules context="##LaTeX" /> -->
</context>
<context attribute="Dot Graph" lineEndContext="#stay" name="Dot">
<IncludeRules context="SL_DetectComment" />
<RegExpr attribute="Tags" context="#pop" String="[@\\]enddot\b" endRegion="Dot" />
<context name="SL_FormulaEnv" attribute="Word" lineEndContext="SL_FindNextLine">
<DetectChar attribute="Tags" context="#pop!SL_FormulaEnvStart" char="}" />
</context>
<context name="SL_FormulaEnvStart" attribute="Formulas" lineEndContext="SL_FindNextLine" fallthroughContext="#pop!SL_FormulaEnvFormula">
<DetectSpaces attribute="Comment" />
<DetectChar attribute="Tags" context="#pop!SL_FormulaEnvFormula" char="{" />
</context>
<context name="SL_FormulaEnvFormula" attribute="Formulas" lineEndContext="SL_FindNextLine">
<StringDetect attribute="Tags" context="#pop" String="\f}" endRegion="VerbatimBlock" />
<StringDetect attribute="Tags" context="#pop" String="@f}" endRegion="VerbatimBlock" />
<!-- TODO: How to force LaTeX math context here?? -->
<!-- <IncludeRules context="##LaTeX" /> -->
</context>
<context name="SL_Msc" attribute="Message Sequence Chart" lineEndContext="SL_FindNextLine">
<WordDetect attribute="Tags" context="#pop" String="\endmsc" endRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop" String="@endmsc" endRegion="VerbatimBlock" />
</context>
<context name="SL_Dot" attribute="Dot Graph" lineEndContext="SL_FindNextLine">
<WordDetect attribute="Tags" context="#pop" String="\enddot" endRegion="VerbatimBlock" />
<WordDetect attribute="Tags" context="#pop" String="@enddot" endRegion="VerbatimBlock" />
</context>
<context name="Entities" attribute="Word" lineEndContext="#stay">
<RegExpr attribute="Entities" context="#pop" String="&amp;[A-Za-z]+&#59;" />
<DetectChar attribute="Comment" context="#pop" char="&amp;" />
</context>
<context name="Inc_OtherTag" attribute="Comment" lineEndContext="#pop">
<keyword attribute="Note" context="#pop" String="Note" />
<keyword attribute="Warning" context="#pop" String="Warning" />
<keyword attribute="Attention" context="#pop" String="Attention" />
<keyword attribute="Todo" context="#pop" String="Todo" />
<keyword attribute="Tags" context="#pop" String="TagOnly" />
<Detect2Chars attribute="Region" context="#pop" char="@" char1="{" beginRegion="Group" />
<Detect2Chars attribute="Region" context="#pop" char="@" char1="}" endRegion="Group" />
<Detect2Chars attribute="Tags" context="#pop!LanguageId" char="\" char1="~" />
<Detect2Chars attribute="Tags" context="#pop!LanguageId" char="@" char1="~" />
<keyword attribute="Error" context="#pop" String="TagEnd" />
<RegExpr attribute="Error" context="#pop" String="[@\\]f[]}]" />
<RegExpr attribute="Tags" context="#pop" String="[@\\](?:[#$%&amp;&lt;&gt;&quot;@\\.]|::|---?)(?=&wordsep;)" />
<RegExpr attribute="Custom Tags" context="#pop" String="[@\\](?:[^@\\ \t\*]|\*(?!/))+" />
<DetectChar attribute="Comment" context="#pop" char="\" />
<DetectChar attribute="Comment" context="#pop" char="@" />
</context>
<context name="LanguageId" attribute="Word" lineEndContext="#pop" fallthroughContext="#pop">
<DetectIdentifier />
</context>
</contexts>
@@ -480,10 +621,11 @@
<itemData name="Warning" defStyleNum="dsWarning" bold="1" italic="0" />
<itemData name="Attention" defStyleNum="dsAnnotation" bold="1" italic="0" />
<itemData name="Todo" defStyleNum="dsAnnotation" bold="1" italic="0" />
<itemData name="Error" defStyleNum="dsError" />
</itemDatas>
</highlighting>
<general>
<keywords casesensitive="1" weakDeliminator="\$~" />
<keywords casesensitive="1" weakDeliminator="\$" />
</general>
</language>
<!-- kate: indent-width 2; -->

View File

@@ -4,7 +4,7 @@
<!ENTITY int "[0-9]([0-9_]*[0-9])?">
<!ENTITY hex "[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?">
]>
<language name="Java" version="5" kateversion="5.0" section="Sources" extensions="*.java" mimetype="text/x-java" license="LGPL" author="Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)">
<language name="Java" version="6" kateversion="5.0" section="Sources" extensions="*.java" mimetype="text/x-java" license="LGPL" author="Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)">
<highlighting>
<list name="java15">
<item>ACTIVE</item>
@@ -3786,9 +3786,9 @@
<RegExpr attribute="Keyword" context="Imports" String="\b(package|import)\b" />
<RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*(/\*\s*\d+\s*\*/\s*)?[(])" />
<RegExpr attribute="Annotation" context="#stay" String="@[_\w][_\w\d]*" />
<RegExpr attribute="Symbol" context="Member" String="[.]{1,1}" />
<DetectChar attribute="Symbol" context="Member" char="." />
<DetectChar attribute="Symbol" context="InFunctionCall" char="("/>
<AnyChar attribute="Symbol" context="#stay" String=":!%&amp;+,-/.*&lt;=&gt;?[]|~^&#59;"/>
<AnyChar attribute="Symbol" context="#stay" String=":!%&amp;+,-/*&lt;=&gt;?[]|~^&#59;"/>
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="InFunctionCall">
<IncludeRules context="Normal"/>

View File

@@ -90,7 +90,7 @@
<!ENTITY checkbox "\[[ x]\](?=\s)">
]>
<language name="Markdown" version="11" kateversion="5.53" section="Markup" extensions="*.md;*.mmd;*.markdown" priority="15" author="Darrin Yeager, Claes Holmerson" license="GPL,BSD">
<language name="Markdown" version="13" kateversion="5.53" section="Markup" extensions="*.md;*.mmd;*.markdown" priority="15" author="Darrin Yeager, Claes Holmerson" license="GPL,BSD">
<highlighting>
<contexts>
<!-- Start of the Markdown document: find metadata or code block -->
@@ -320,11 +320,12 @@
<RegExpr attribute="Fenced Code" context="#pop!matlab-code" String="&fcode;\s*matlab&end;" insensitive="true"/>
<RegExpr attribute="Fenced Code" context="#pop!markdown-code" String="&fcode;\s*(?:markdown|m?md)&end;" insensitive="true"/>
<RegExpr attribute="Fenced Code" context="#pop!mustache-code" String="&fcode;\s*(?:handlebars|hbs|mustache|mst|ractive|hogan|hulk)&end;" insensitive="true"/> <!-- Included in the HTML definition -->
<RegExpr attribute="Fenced Code" context="#pop!perl-code" String="&fcode;\s*(?:perl|p[lm]|pod|psgi|vcl|perl6|p[lm]?6|nqp)&end;" insensitive="true"/>
<RegExpr attribute="Fenced Code" context="#pop!perl-code" String="&fcode;\s*(?:perl|p[lm]|pod|psgi|vcl)&end;" insensitive="true"/>
<RegExpr attribute="Fenced Code" context="#pop!php-code" String="&fcode;\s*(?:php[3457t]?|wml|phtml?|aw|ctp)&end;" insensitive="true"/>
<RegExpr attribute="Fenced Code" context="#pop!python-code" String="&fcode;\s*(?:python[23]?|py[23w]?|[rc]py|sconstruct|gypi?)&end;" insensitive="true"/>
<RegExpr attribute="Fenced Code" context="#pop!qml-code" String="&fcode;\s*qml(?:types)?&end;" insensitive="true"/>
<RegExpr attribute="Fenced Code" context="#pop!r-code" String="&fcode;\s*(?:r|rprofile|rscript)&end;" insensitive="true"/>
<RegExpr attribute="Fenced Code" context="#pop!raku-code" String="&fcode;\s*(?:raku(?:mod|doc|test)?|perl6|p[lm]?6|pod6|nqp)&end;" insensitive="true"/>
<RegExpr attribute="Fenced Code" context="#pop!rest-code" String="&fcode;\s*(?:rst|rest|restructuredtext)&end;" insensitive="true"/> <!-- Included in the CMake definition -->
<RegExpr attribute="Fenced Code" context="#pop!ruby-code" String="&fcode;\s*(?:ruby|rbx?|rjs|rake|f?cgi|gemspec|irbrc|ru|prawn|Appraisals|(?:Rake|Cap|Chef|Gem|Guard|Hobo|Vagrant||Rant|Berks|Thor|Puppet)file|rxml|(?:xml|js)\.erb)&end;" insensitive="true"/>
<RegExpr attribute="Fenced Code" context="#pop!rust-code" String="&fcode;\s*(?:rust|rs)&end;" insensitive="true"/>
@@ -432,6 +433,10 @@
<IncludeRules context="code"/>
<IncludeRules context="##R Script" includeAttrib="true"/>
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="raku-code">
<IncludeRules context="code"/>
<IncludeRules context="base##Raku" includeAttrib="true"/>
</context>
<context attribute="Normal Text" lineEndContext="#stay" name="rest-code">
<IncludeRules context="code"/>
<IncludeRules context="##reStructuredText" includeAttrib="true"/>

View File

@@ -39,7 +39,7 @@
Enhance tr/// and y/// support.
-->
<language name="Perl" version="10" kateversion="2.4" section="Scripts" extensions="*.pl;*.PL;*.pm" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">
<language name="Perl" version="11" kateversion="2.4" section="Scripts" extensions="*.pl;*.PL;*.pm" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">
<highlighting>
<list name="keywords">
<item>if</item>
@@ -674,7 +674,7 @@
<context name="regex_pattern_internal_rules_2" attribute="Pattern" lineEndContext="#stay">
<Detect2Chars attribute="Pattern Internal Operator" context="pat_ext" char="(" char1="?" />
<DetectChar attribute="Pattern Internal Operator" context="pat_char_class" char="[" />
<RegExpr attribute="Pattern Internal Operator" context="#stay" String="[()?^*+|]" />
<AnyChar attribute="Pattern Internal Operator" context="#stay" String="()?^*+|" />
<RegExpr attribute="Pattern Internal Operator" context="#stay" String="\{[\d, ]+\}" />
<DetectChar attribute="Pattern Internal Operator" context="#stay" char="$" />
<RegExpr attribute="Comment" context="#stay" String="\s{3,}#.*$" />
@@ -694,8 +694,8 @@
<IncludeRules context="regex_pattern_internal_rules_2" />
</context>
<context name="pat_ext" attribute="Pattern Internal Operator" lineEndContext="#stay">
<AnyChar attribute="Pattern Internal Operator" context="#pop" String=":=!&gt;&lt;" />
<RegExpr attribute="Comment" context="#pop" String="\#[^)]*" />
<RegExpr attribute="Pattern Internal Operator" context="#pop" String="[:=!&gt;&lt;]+" />
<DetectChar attribute="Pattern Internal Operator" context="#pop" char=")" />
</context>
<context name="pat_char_class" attribute="Pattern Character Class" lineEndContext="#stay">

View File

@@ -1,7 +1,7 @@
<!DOCTYPE language SYSTEM "language.dtd">
<language
name="PowerShell"
version="5"
version="6"
kateversion="5.0"
extensions="*.ps1;*.ps1m;*.ps1d"
section="Scripts"
@@ -889,8 +889,8 @@
<RegExpr attribute="Keyword" context="#stay" String="\b\$script(?=\s+(:))"/>
<RegExpr attribute="Variable" context="#stay" String="\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*" />
<keyword attribute="Special Variable" context="#stay" String="special-variables"/>
<RegExpr attribute="Symbol" context="Member" String="[.]{1,1}" />
<AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
<DetectChar attribute="Symbol" context="Member" char="." />
<AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/*&lt;=&gt;?[]|~^&#59;"/>
</context>
<context attribute="String Char" lineEndContext="#stay" name="StringEscape">
<RegExpr attribute="String Char" String="`[`&quot;0abefnrtv]" context="#stay"/>

View File

@@ -3,3 +3,9 @@ if(TARGET Qt5::Gui)
add_subdirectory(lib)
add_subdirectory(cli)
endif()
ecm_qt_install_logging_categories(
EXPORT KSYNTAXHIGHLIGHTING
FILE ksyntaxhighlighting.categories
DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
)

View File

@@ -25,7 +25,7 @@
#include <QDebug>
#include <QFile>
#include <QFileInfo>
#include <QJsonDocument>
#include <QCborValue>
#include <QRegularExpression>
#include <QVariant>
#include <QXmlStreamReader>
@@ -774,7 +774,7 @@ int main(int argc, char *argv[])
return 9;
// write out json
outFile.write(QJsonDocument::fromVariant(QVariant(hls)).toBinaryData());
outFile.write(QCborValue::fromVariant(QVariant(hls)).toCbor());
// be done
return 0;

View File

@@ -22,7 +22,8 @@ set(syntax_highlighting_srcs
ecm_qt_declare_logging_category(syntax_highlighting_srcs
HEADER ksyntaxhighlighting_logging.h
IDENTIFIER KSyntaxHighlighting::Log
CATEGORY_NAME org.kde.ksyntaxhighlighting
CATEGORY_NAME kf.syntaxhighlighting
OLD_CATEGORY_NAMES org.kde.ksyntaxhighlighting
DESCRIPTION "Syntax Highlighting"
EXPORT KSYNTAXHIGHLIGHTING
)

View File

@@ -37,10 +37,10 @@
#include "rule_p.h"
#include "xml_p.h"
#include <QCborMap>
#include <QCoreApplication>
#include <QFile>
#include <QHash>
#include <QJsonObject>
#include <QStringList>
#include <QVector>
#include <QXmlStreamReader>
@@ -456,12 +456,12 @@ bool DefinitionData::loadMetaData(const QString &definitionFileName)
return false;
}
bool DefinitionData::loadMetaData(const QString &file, const QJsonObject &obj)
bool DefinitionData::loadMetaData(const QString &file, const QCborMap &obj)
{
name = obj.value(QLatin1String("name")).toString();
section = obj.value(QLatin1String("section")).toString();
version = obj.value(QLatin1String("version")).toInt();
priority = obj.value(QLatin1String("priority")).toInt();
version = obj.value(QLatin1String("version")).toInteger();
priority = obj.value(QLatin1String("priority")).toInteger();
style = obj.value(QLatin1String("style")).toString();
author = obj.value(QLatin1String("author")).toString();
license = obj.value(QLatin1String("license")).toString();

View File

@@ -32,8 +32,8 @@
#include <QVector>
QT_BEGIN_NAMESPACE
class QCborMap;
class QXmlStreamReader;
class QJsonObject;
QT_END_NAMESPACE
namespace KSyntaxHighlighting
@@ -53,7 +53,7 @@ public:
bool isLoaded() const;
bool loadMetaData(const QString &definitionFileName);
bool loadMetaData(const QString &fileName, const QJsonObject &obj);
bool loadMetaData(const QString &fileName, const QCborMap &obj);
void clear();

View File

@@ -30,11 +30,11 @@
#include "themedata_p.h"
#include "wildcardmatcher_p.h"
#include <QCborMap>
#include <QCborValue>
#include <QDirIterator>
#include <QFile>
#include <QFileInfo>
#include <QJsonDocument>
#include <QJsonObject>
#ifndef NO_STANDARD_PATHS
#include <QStandardPaths>
@@ -224,13 +224,13 @@ bool RepositoryPrivate::loadSyntaxFolderFromIndex(Repository *repo, const QStrin
if (!indexFile.open(QFile::ReadOnly))
return false;
const auto indexDoc(QJsonDocument::fromBinaryData(indexFile.readAll()));
const auto index = indexDoc.object();
const auto indexDoc(QCborValue::fromCbor(indexFile.readAll()));
const auto index = indexDoc.toMap();
for (auto it = index.begin(); it != index.end(); ++it) {
if (!it.value().isObject())
if (!it.value().isMap())
continue;
const auto fileName = QString(path + QLatin1Char('/') + it.key());
const auto defMap = it.value().toObject();
const auto fileName = QString(path + QLatin1Char('/') + it.key().toString());
const auto defMap = it.value().toMap();
Definition def;
auto defData = DefinitionData::get(def);
defData->repo = repo;

View File

@@ -147,8 +147,8 @@ bool InitializeParams::isValid(ErrorHierarchy *error) const
&& checkOptional<QString, std::nullptr_t>(error, rootUriKey)
&& check<ClientCapabilities>(error, capabilitiesKey)
&& checkOptional<int>(error, traceKey)
&& (checkOptional<std::nullptr_t>(error, workSpaceFoldersKey)
|| checkOptionalArray<WorkSpaceFolder>(error, workSpaceFoldersKey));
&& (checkOptional<std::nullptr_t>(error, workspaceFoldersKey)
|| checkOptionalArray<WorkSpaceFolder>(error, workspaceFoldersKey));
}
InitializeRequest::InitializeRequest(const InitializeParams &params)

View File

@@ -115,11 +115,11 @@ public:
*
* Since 3.6.0
*/
Utils::optional<LanguageClientArray<WorkSpaceFolder>> workSpaceFolders() const
{ return optionalClientArray<WorkSpaceFolder>(workSpaceFoldersKey); }
Utils::optional<LanguageClientArray<WorkSpaceFolder>> workspaceFolders() const
{ return optionalClientArray<WorkSpaceFolder>(workspaceFoldersKey); }
void setWorkSpaceFolders(const LanguageClientArray<WorkSpaceFolder> &folders)
{ insert(workSpaceFoldersKey, folders.toJson()); }
void clearWorkSpaceFolders() { remove(workSpaceFoldersKey); }
{ insert(workspaceFoldersKey, folders.toJson()); }
void clearWorkSpaceFolders() { remove(workspaceFoldersKey); }
bool isValid(ErrorHierarchy *error) const override;
};

View File

@@ -212,7 +212,6 @@ constexpr char valueSetKey[] = "valueSet";
constexpr char versionKey[] = "version";
constexpr char willSaveKey[] = "willSave";
constexpr char willSaveWaitUntilKey[] = "willSaveWaitUntil";
constexpr char workSpaceFoldersKey[] = "workSpaceFolders";
constexpr char workspaceEditKey[] = "workspaceEdit";
constexpr char workspaceFoldersKey[] = "workspaceFolders";
constexpr char workspaceKey[] = "workspace";

View File

@@ -102,7 +102,7 @@ void WorkspaceEdit::setChanges(const Changes &changes)
insert(changesKey, changesObject);
}
WorkSpaceFolder::WorkSpaceFolder(const QString &uri, const QString &name)
WorkSpaceFolder::WorkSpaceFolder(const DocumentUri &uri, const QString &name)
{
setUri(uri);
setName(name);

View File

@@ -442,12 +442,12 @@ class LANGUAGESERVERPROTOCOL_EXPORT WorkSpaceFolder : public JsonObject
{
public:
WorkSpaceFolder() = default;
WorkSpaceFolder(const QString &uri, const QString &name);
WorkSpaceFolder(const DocumentUri &uri, const QString &name);
using JsonObject::JsonObject;
// The associated URI for this workspace folder.
QString uri() const { return typedValue<QString>(uriKey); }
void setUri(const QString &uri) { insert(uriKey, uri); }
DocumentUri uri() const { return DocumentUri::fromProtocol(typedValue<QString>(uriKey)); }
void setUri(const DocumentUri &uri) { insert(uriKey, uri); }
// The name of the workspace folder. Defaults to the uri's basename.
QString name() const { return typedValue<QString>(nameKey); }

View File

@@ -342,7 +342,10 @@ public:
DScontrolBackgroundInteraction,
DStranslationIndicatorBorder,
DSsectionHeadBackground,
DSchangedStateText
DSchangedStateText,
DS3DAxisXColor,
DS3DAxisYColor,
DS3DAxisZColor
};
enum Gradient {

View File

@@ -44,7 +44,7 @@ class TouchBarPrivate;
@property (retain, atomic) NSString *closeButtonIdentifier;
- (id)initWithParent:(Utils::Internal::TouchBarPrivate *)parent;
- (NSTouchBar *)makeTouchBar;
@end
namespace Utils {

View File

@@ -195,10 +195,7 @@ CMakeBuildSystem::CMakeBuildSystem(CMakeBuildConfiguration *bc)
connect(&m_reader, &FileApiReader::errorOccurred, this, &CMakeBuildSystem::handleParsingFailed);
connect(&m_reader, &FileApiReader::dirty, this, &CMakeBuildSystem::becameDirty);
connect(SessionManager::instance(),
&SessionManager::projectAdded,
this,
&CMakeBuildSystem::wireUpConnections);
wireUpConnections();
}
CMakeBuildSystem::~CMakeBuildSystem()
@@ -712,13 +709,8 @@ void CMakeBuildSystem::handleParsingFailed(const QString &msg)
combineScanAndParse();
}
void CMakeBuildSystem::wireUpConnections(const Project *p)
void CMakeBuildSystem::wireUpConnections()
{
if (p != project())
return; // That's not us...
disconnect(SessionManager::instance(), nullptr, this, nullptr);
// At this point the entire project will be fully configured, so let's connect everything and
// trigger an initial parser run
@@ -740,6 +732,12 @@ void CMakeBuildSystem::wireUpConnections(const Project *p)
setParametersAndRequestParse(BuildDirParameters(cmakeBuildConfiguration()),
CMakeBuildSystem::REPARSE_DEFAULT);
});
connect(project(), &Project::activeTargetChanged, this, [this]() {
// Build configuration has changed:
qCDebug(cmakeBuildSystemLog) << "Requesting parse due to active target changed";
setParametersAndRequestParse(BuildDirParameters(cmakeBuildConfiguration()),
CMakeBuildSystem::REPARSE_DEFAULT);
});
// BuildConfiguration changed:
connect(cmakeBuildConfiguration(), &CMakeBuildConfiguration::environmentChanged, this, [this]() {

View File

@@ -134,7 +134,7 @@ private:
void handleParsingSucceeded();
void handleParsingFailed(const QString &msg);
void wireUpConnections(const ProjectExplorer::Project *p);
void wireUpConnections();
Utils::FilePath workDirectory(const BuildDirParameters &parameters);
void stopParsingAndClearState();

View File

@@ -32,7 +32,7 @@
namespace CodePaster {
static QString baseUrl() { return QString("http://dpaste.com"); }
static QString baseUrl() { return QString("https://dpaste.com"); }
static QString apiUrl() { return baseUrl() + "/api/v2/"; }
QString DPasteDotComProtocol::protocolName() { return QString("DPaste.Com"); }

View File

@@ -2629,15 +2629,16 @@ bool BreakpointManager::contextMenuEvent(const ItemViewEvent &ev)
rowCount() > 0,
&BreakpointManager::executeDeleteAllBreakpointsDialog);
// Delete by file: Find indices of breakpoints of the same file.
// Delete by file: Find breakpoints of the same file.
GlobalBreakpoints breakpointsInFile;
FilePath file;
if (GlobalBreakpoint gbp = itemForIndexAtLevel<1>(ev.sourceModelIndex())) {
file = gbp->markerFileName();
if (!file.isEmpty()) {
for (int i = 0; i != rowCount(); ++i)
forItemsAtLevel<1>([file, &breakpointsInFile](const GlobalBreakpoint &gbp) {
if (gbp->markerFileName() == file)
breakpointsInFile.append(gbp);
});
}
}
addAction(menu, tr("Delete Breakpoints of \"%1\"").arg(file.toUserOutput()),

View File

@@ -262,8 +262,9 @@ void Client::initialize()
params.setInitializationOptions(m_initializationOptions);
if (m_project) {
params.setRootUri(DocumentUri::fromFilePath(m_project->projectDirectory()));
params.setWorkSpaceFolders(Utils::transform(SessionManager::projects(), [](Project *pro){
return WorkSpaceFolder(pro->projectDirectory().toString(), pro->displayName());
params.setWorkSpaceFolders(Utils::transform(SessionManager::projects(), [](Project *pro) {
return WorkSpaceFolder(DocumentUri::fromFilePath(pro->projectDirectory()),
pro->displayName());
}));
}
InitializeRequest initRequest(params);
@@ -837,7 +838,8 @@ void Client::projectOpened(ProjectExplorer::Project *project)
if (!sendWorkspceFolderChanges())
return;
WorkspaceFoldersChangeEvent event;
event.setAdded({WorkSpaceFolder(project->projectDirectory().toString(), project->displayName())});
event.setAdded({WorkSpaceFolder(DocumentUri::fromFilePath(project->projectDirectory()),
project->displayName())});
DidChangeWorkspaceFoldersParams params;
params.setEvent(event);
DidChangeWorkspaceFoldersNotification change(params);
@@ -857,8 +859,8 @@ void Client::projectClosed(ProjectExplorer::Project *project)
if (!sendWorkspceFolderChanges())
return;
WorkspaceFoldersChangeEvent event;
event.setRemoved(
{WorkSpaceFolder(project->projectDirectory().toString(), project->displayName())});
event.setRemoved({WorkSpaceFolder(DocumentUri::fromFilePath(project->projectDirectory()),
project->displayName())});
DidChangeWorkspaceFoldersParams params;
params.setEvent(event);
DidChangeWorkspaceFoldersNotification change(params);
@@ -1236,7 +1238,7 @@ void Client::handleMethod(const QString &method, MessageId id, const IContent *c
result = nullptr;
} else {
result = Utils::transform(projects, [](ProjectExplorer::Project *project) {
return WorkSpaceFolder(project->projectDirectory().toString(),
return WorkSpaceFolder(DocumentUri::fromFilePath(project->projectDirectory()),
project->displayName());
});
}

View File

@@ -633,6 +633,7 @@ extend_qtc_plugin(QmlDesigner
SOURCES
hyperlinkdialog.cpp hyperlinkdialog.h hyperlinkdialog.ui
richtexteditor.cpp richtexteditor.h hyperlinkdialog.ui
richtexteditorproxy.cpp richtexteditorproxy.h
)
extend_qtc_plugin(QmlDesigner

Some files were not shown because too many files have changed in this diff Show More