Qt Creator 11
=============

Qt Creator version 11 contains bug fixes and new features.

The most important changes are listed in this document. For a complete list of
changes, see the Git log for the Qt Creator sources that you can check out from
the public Git repository. For example:

    git clone git://code.qt.io/qt-creator/qt-creator.git
    git log --cherry-pick --pretty=oneline origin/10.0..v11.0.0

What's new?
------------

* Markdown editor with preview
  ([QTCREATORBUG-27883](https://bugreports.qt.io/browse/QTCREATORBUG-27883))
* Internal terminal
  ([QTCREATORBUG-8511](https://bugreports.qt.io/browse/QTCREATORBUG-8511))
* Experimental support for GitHub Copilot
* Experimental support for the `vcpkg` C/C++ package manager
* Experimental support for the Axivion static analyzer

### Markdown

You can open markdown (.md) files for editing or select `File > New File >
General > Markdown File` to create a new file.

([Documentation](https://doc.qt.io/qtcreator/creator-markdown-editor.html))

### Terminal

When you select the `Run in Terminal` check box and run an application or the
`Open Terminal` button to open a terminal, the default terminal opens in the
`Terminal` output view. It supports multiple tabs, as well as various
shells, colors, and fonts.

To use an external terminal, deselect the `Use internal terminal` check box in
`Preferences > Terminal`.

([Documentation](https://doc.qt.io/qtcreator/creator-reference-terminal-view.html))

### Copilot

The Copilot plugin (disabled by default) integrates
[GitHub Copilot](https://github.com/features/copilot), which uses OpenAI to
suggest code in the `Edit` mode.

To set Copilot preferences, select `Preferences > Copilot`.

([Documentation](https://doc.qt.io/qtcreator/creator-copilot.html))

### vcpkg

The experimental vcpkg plugin integrates the [vcpgk](https://vcpkg.io)
package manager for downloading and managing libraries.

Select the `vcpkg` installation location in `Preferences > CMake > Vcpkg > Path`.

To create a new `vcpkg.json` package manifest file, select `File > New File >
vcpkg`. The file is automatically added to the CMakeLists.txt file for the
project.

Edit manifest files in the manifest editor. To search for packages to add to the
file, select the `Search Package` button on the manifest editor toolbar.

([Documentation](https://doc.qt.io/qtcreator/creator-vcpkg.html))

### Axivion

After you configure access to the [Axivion](https://www.axivion.com) Dashboard
and link a project to an Axivion project in the project settings, Qt Creator
shows annotations of the latest run in the editors and allows you to view some
details on the issues.

([Documentation](https://doc.qt.io/qtcreator/creator-axivion.html))

General
-------

* Added a more spacious `Relaxed` toolbar style to `Preferences > Environment >
  Interface`
* Added a pin button to progress details instead of automatically resetting
  their position
  ([QTCREATORBUG-28829](https://bugreports.qt.io/browse/QTCREATORBUG-28829))
* Improved the selection and navigation in the `Issues` view
  ([QTCREATORBUG-26128](https://bugreports.qt.io/browse/QTCREATORBUG-26128),
   [QTCREATORBUG-27006](https://bugreports.qt.io/browse/QTCREATORBUG-27006),
   [QTCREATORBUG-27506](https://bugreports.qt.io/browse/QTCREATORBUG-27506))
* Fixed a crash with a large number of search hits from Silver Searcher
  ([QTCREATORBUG-29130](https://bugreports.qt.io/browse/QTCREATORBUG-29130))
* Locator
    * Improved performance
    * Added the creation of directories to the `Files in File System` filter
    * Added device roots and browsing remote file systems to the
      `Files in File System` filter

Editing
-------

* Improved the performance of the multi-cursor support
* Fixed the saving of hardlinked files
  ([QTCREATORBUG-19651](https://bugreports.qt.io/browse/QTCREATORBUG-19651))
* Fixed an issue of copy and paste with multiple cursors
  ([QTCREATORBUG-29117](https://bugreports.qt.io/browse/QTCREATORBUG-29117))
* Fixed the handling of pre-edit text for input methods
  ([QTCREATORBUG-29134](https://bugreports.qt.io/browse/QTCREATORBUG-29134))

### C++

* Improved the style of forward declarations in the outline
  ([QTCREATORBUG-312](https://bugreports.qt.io/browse/QTCREATORBUG-312))
* Added highlighting for typed string literals and user-defined literals
  ([QTCREATORBUG-28869](https://bugreports.qt.io/browse/QTCREATORBUG-28869))
* Extended the `Add Class Member` refactoring action to create class
  members from assignments
  ([QTCREATORBUG-1918](https://bugreports.qt.io/browse/QTCREATORBUG-1918))
* Fixed that generated functions did not have a `const` qualifier when
  required
  ([QTCREATORBUG-29274](https://bugreports.qt.io/browse/QTCREATORBUG-29274))
* Fixed that the locator showed both the declaration and the definition of symbols
  ([QTCREATORBUG-13894](https://bugreports.qt.io/browse/QTCREATORBUG-13894))
* Fixed the handling of C++20 keywords and concepts
* Fixed that the automatic Doxygen comment generation did not work when
  initializer lists `{}` were present
  ([QTCREATORBUG-29198](https://bugreports.qt.io/browse/QTCREATORBUG-29198))
* Fixed an issue when matching braces
  ([QTCREATORBUG-29339](https://bugreports.qt.io/browse/QTCREATORBUG-29339))
* Clangd
    * Fixed that the index could be outdated after VCS operations
    * Fixed the highlighting of labels
      ([QTCREATORBUG-27338](https://bugreports.qt.io/browse/QTCREATORBUG-27338))
    * Fixed freezes when showing tool tips
      ([QTCREATORBUG-29356](https://bugreports.qt.io/browse/QTCREATORBUG-29356))
* Built-in
    * Fixed support for `if`-statements with initializer
      ([QTCREATORBUG-29182](https://bugreports.qt.io/browse/QTCREATORBUG-29182))
* Clang Format
    * Fixed the conversion of tab indentation settings to Clang Format
      ([QTCREATORBUG-29185](https://bugreports.qt.io/browse/QTCREATORBUG-29185))

### Language Server Protocol

* Added actions for opening the `Call Hierarchy` to the context menu of the
  editor
  ([QTCREATORBUG-28839](https://bugreports.qt.io/browse/QTCREATORBUG-28839),
   [QTCREATORBUG-28842](https://bugreports.qt.io/browse/QTCREATORBUG-28842))

### QML

* Fixed the reformatting in the presence of JavaScript directives and function
  return type annotations
  ([QTCREATORBUG-29001](https://bugreports.qt.io/browse/QTCREATORBUG-29001),
   [QTCREATORBUG-29046](https://bugreports.qt.io/browse/QTCREATORBUG-29046))
* Fixed that reformatting changed `of` to `in`
  ([QTCREATORBUG-29123](https://bugreports.qt.io/browse/QTCREATORBUG-29123))
* Fixed the completion for Qt Quick Controls
  ([QTCREATORBUG-28648](https://bugreports.qt.io/browse/QTCREATORBUG-28648))
* Fixed that `qmllint` issues were not shown in the `Issues` view
  ([QTCREATORBUG-28720](https://bugreports.qt.io/browse/QTCREATORBUG-28720),
   [QTCREATORBUG-27762](https://bugreports.qt.io/browse/QTCREATORBUG-27762))
* Fixed a wrong `M16` warning
  ([QTCREATORBUG-28468](https://bugreports.qt.io/browse/QTCREATORBUG-28468))

### Python

* Added the `Create Virtual Environment` option to the Python interpreter
  selector on the editor toolbar and to the wizards in `File > New Project >
  > Application (Qt for Python)`
  ([PYSIDE-2152](https://bugreports.qt.io/browse/PYSIDE-2152))
* Fixed that too many progress indicators could be created
  ([QTCREATORBUG-29224](https://bugreports.qt.io/browse/QTCREATORBUG-29224))

  ([Documentation](https://doc.qt.io/qtcreator/creator-python-development.html))

### Meson

* Fixed the file targets
  ([QTCREATORBUG-29349](https://bugreports.qt.io/browse/QTCREATORBUG-29349))

Projects
--------

* Made it possible to add devices in `Preferences > Devices > Add` without going
  through the wizard
  ([Documentation](https://doc.qt.io/qtcreator/creator-developing-b2qt.html))
  ([Documentation](https://doc.qt.io/qtcreator/creator-developing-generic-linux.html))
* Added support for moving files to a different directory when renaming them in
  the `File System` view
  ([QTCREATORBUG-15981](https://bugreports.qt.io/browse/QTCREATORBUG-15981))
  ([Documentation](https://doc.qt.io/qtcreator/creator-file-system-view.html))

### CMake

* Implemented adding files to the project
  ([QTCREATORBUG-25922](https://bugreports.qt.io/browse/QTCREATORBUG-25922),
   [QTCREATORBUG-26006](https://bugreports.qt.io/browse/QTCREATORBUG-26006),
   [QTCREATORBUG-27213](https://bugreports.qt.io/browse/QTCREATORBUG-27213),
   [QTCREATORBUG-27538](https://bugreports.qt.io/browse/QTCREATORBUG-27538),
   [QTCREATORBUG-28493](https://bugreports.qt.io/browse/QTCREATORBUG-28493),
   [QTCREATORBUG-28904](https://bugreports.qt.io/browse/QTCREATORBUG-28904),
   [QTCREATORBUG-28985](https://bugreports.qt.io/browse/QTCREATORBUG-28985),
   [QTCREATORBUG-29006](https://bugreports.qt.io/browse/QTCREATORBUG-29006))
  ([Documentation](https://doc.qt.io/qtcreator/creator-project-cmake.html))
* Added support for the `block()` and `endblock()` CMake commands
  ([CMake documentation](https://cmake.org/cmake/help/latest/command/block.html#command:block))
* Fixed issues with detecting a configured Qt version when importing a build
  ([QTCREATORBUG-29075](https://bugreports.qt.io/browse/QTCREATORBUG-29075))
* Fixed the project wizards for Qt 6.3 and earlier
  ([QTCREATORBUG-29067](https://bugreports.qt.io/browse/QTCREATORBUG-29067))
* Presets
    * Added `Build > Reload CMake Presets` to reload CMake presets after making
      changes to them
      ([Documentation](https://doc.qt.io/qtcreator/creator-build-settings-cmake-presets.html))
    * Fixed that presets were not visible in the `Projects` view
      ([QTCREATORBUG-28966](https://bugreports.qt.io/browse/QTCREATORBUG-28966))
    * Fixed the type handling of the `architecture` and `toolset` fields
      ([QTCREATORBUG-28693](https://bugreports.qt.io/browse/QTCREATORBUG-28693))
    * Fixed the setting for QML debugging when creating build configurations
      ([QTCREATORBUG-29311](https://bugreports.qt.io/browse/QTCREATORBUG-29311))


### Qmake

* Fixed an infinite loop when the Qt ABI changed
  ([QTCREATORBUG-29204](https://bugreports.qt.io/browse/QTCREATORBUG-29204))

### Python

* Added an option for selecting the interpreter to the wizards in
  `File > New Project > Application (Qt for Python)`
  ([Documentation](https://doc.qt.io/qtcreator/creator-project-creating.html))

Debugging
---------

* Improved the UI for enabling and disabling debuggers in `Projects > Run >
  Debugger settings`
  ([QTCREATORBUG-28627](https://bugreports.qt.io/browse/QTCREATORBUG-28627))
  ([Documentation](https://doc.qt.io/qtcreator/creator-debugging-qml.html))
* Fixed the automatic source mapping for Qt versions from an installer
  ([QTCREATORBUG-28950](https://bugreports.qt.io/browse/QTCREATORBUG-28950))
* Fixed pretty printer for `std::string` for recent `libc++`
  ([QTCREATORBUG-29230](https://bugreports.qt.io/browse/QTCREATORBUG-29230))
* Fixed the pretty printers on Fedora 37
  ([QTCREATORBUG-28659](https://bugreports.qt.io/browse/QTCREATORBUG-28659))
* Fixed the display of arrays with `Array of 10,000 items`
  ([QTCREATORBUG-29196](https://bugreports.qt.io/browse/QTCREATORBUG-29196))

### C++

* Added the `Default array size` option for setting the default number of array
  elements to show in `Preferences > Debugger > Locals & Expressions`
* Fixed debugging in a terminal as the root user
  ([QTCREATORBUG-27519](https://bugreports.qt.io/browse/QTCREATORBUG-27519))
* CDB
    * Added automatic source file mapping for Qt packages
    * Fixed the variables view on remote Windows devices
      ([QTCREATORBUG-29000](https://bugreports.qt.io/browse/QTCREATORBUG-29000))
* LLDB
    * Fixed that long lines in the application output were broken into multiple
      lines
      ([QTCREATORBUG-29098](https://bugreports.qt.io/browse/QTCREATORBUG-29098))

### Qt Quick

* Improved the auto-detection of whether QML debugging is required
  ([QTCREATORBUG-28627](https://bugreports.qt.io/browse/QTCREATORBUG-28627))
* Added the `Use customized static analyzer` option for disabling static analyzer
  messages to `Preferences > Qt Quick > QML/JS Editing`
  ([QTCREATORBUG-29095](https://bugreports.qt.io/browse/QTCREATORBUG-29095))
  ([Documentation](https://doc.qt.io/qtcreator/creator-checking-code-syntax.html))

Analyzer
--------

### Clang

* Fixed that a `.clang-tidy` file in the project directory was not used by
  default
  ([QTCREATORBUG-28852](https://bugreports.qt.io/browse/QTCREATORBUG-28852))

Version Control Systems
-----------------------

### Git

* Instant Blame
    * Improved the performance
      ([QTCREATORBUG-29151](https://bugreports.qt.io/browse/QTCREATORBUG-29151))
    * Fixed that it did not show at the end of the document

Platforms
---------

### Android

* Fixed an issue with building library targets
  ([QTCREATORBUG-26980](https://bugreports.qt.io/browse/QTCREATORBUG-26980))

### iOS

* Improved the bundle ID that the project wizards create
  ([QTCREATORBUG-29340](https://bugreports.qt.io/browse/QTCREATORBUG-29340))

### Remote Linux

* Removed the automatic sourcing of target-side shell profiles

### Docker

* Added support for `qmake` based projects
  ([QTCREATORBUG-29140](https://bugreports.qt.io/browse/QTCREATORBUG-29140))
* Fixed issues after deleting the Docker image for a registered Docker device
  ([QTCREATORBUG-28880](https://bugreports.qt.io/browse/QTCREATORBUG-28880))

### MCU

* Fixed that errors were shown for valid QML code
  ([QTCREATORBUG-26655](https://bugreports.qt.io/browse/QTCREATORBUG-26655),
   [QTCREATORBUG-29155](https://bugreports.qt.io/browse/QTCREATORBUG-29155))
* Fixed that files were missing from locator and project search
  ([QTCREATORBUG-29297](https://bugreports.qt.io/browse/QTCREATORBUG-29297))

### QNX

* Added `slog2info` as a requirement for devices
* Fixed the support for remote working directories
  ([QTCREATORBUG-28900](https://bugreports.qt.io/browse/QTCREATORBUG-28900))

Credits for these changes go to:
--------------------------------
Aleksei German  
Alessandro Portale  
Alexander Drozdov  
Alexander Pershin  
Alexey Edelev  
Alexis Jeandet  
Ali Kianian  
Alibek Omarov  
Amr Essam  
Andre Hartmann  
André Pönitz  
Artem Mukhin  
Artem Sokolovskii  
Assam Boudjelthia  
Björn Schäpers  
Brook Cronin  
Burak Hancerli  
Christian Kandeler  
Christian Stenger  
Cristian Adam  
David Schulz  
Eike Ziller  
Esa Törmänen  
Fabian Kosmale  
Filippo Gentile  
Friedemann Kleint  
Haowei Hsu  
Henning Gruendl  
Jaroslaw Kobus  
Joni Poikelin  
Jussi Witick  
Kai Köhne  
Knud Dollereder  
Knut Petter Svendsen  
Leena Miettinen  
Mahmoud Badri  
Marco Bubke  
Marcus Tillmanns  
Martin Delille  
Mats Honkamaa  
Miikka Heikkinen  
Mitch Curtis  
Niels Weber  
Olivier Delaune  
Orgad Shaneh  
Pranta Dastider  
Robert Löhning  
Samuel Ghinet  
Semih Yavuz  
Tasuku Suzuki  
Thiago Macieira  
Thomas Hartmann  
Tim Jenssen  
Ulf Hermann  
Vikas Pachdha  
Wladimir Leuschner  
Yasser Grimes  
Yixue Wang  
