Qt Creator 9
============

Qt Creator version 9 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/8.0..v9.0.0

General
-------

* Added change log browser `Help > Change Log` (`Qt Creator > Change Log` on
  macOS)
* Added option for showing locator as a centered popup
* Locator `t` filter
    * Added non-menu actions
    * Added fuzzy matching
* Added `Remove Folder` to `File System` view (QTCREATORBUG-27331)
* Fixed that clipboard was cleared on shutdown (QTCREATORBUG-28317)

Help
----

* Added support for dark themes to Qt documentation (QTCREATORBUG-26557)
* Fixed that Qt 6 documentation was shown for Qt 5 based projects
  (QTCREATORBUG-10331)

Editing
-------

* Added option for visualizing indentation (QTCREATORBUG-22756)
* Added option for `Tint whole margin area`
* Added option for line spacing (QTCREATORBUG-13727)
* Added `Create Cursors at Selected Line Ends`
* Added support for character encoding in binary/memory editor
* Improved UI for multiple markers on the same line (QTCREATORBUG-27415)
* Fixed performance issue with large selections
* Fixed saving files with non-breaking spaces (QTCREATORBUG-17875)
* Fixed `Rewrap Paragraph` for Doxygen comments (QTCREATORBUG-9739)
* Fixed MIME type matching for generic highlighting with MIME type aliases

### C++

* Moved code style editor from dialog directly into the preferences page
* Added `Show Preprocessed Source`
* Added `Follow Symbol Under Cursor to Type`
* Added `Follow Symbol` for QRC files in string literals (QTCREATORBUG-28087)
* Added option for returning only non-value types by const reference
  (QTCREATORBUG-25790)
* Added option for using `auto` in `Assign to Local Variable` refactoring
  action (QTCREATORBUG-28099)
* Fixed that selection was not considered for refactoring actions
  (QTCREATORBUG-27886)
* Fixed code style preview editor size (QTCREATORBUG-27267)
* Clangd
    * Added option for using single Clangd instance for the whole session
      (QTCREATORBUG-26526)
    * Added option for indexing priority (`--background-index-priority`)
    * Added option for maximum number of completion results (default 100)
      (QTCREATORBUG-27152)
    * Added option for document specific preprocessor directives
      (QTCREATORBUG-20423)
    * Fixed semantic highlighting for `__func__`
    * Fixed double items in outline after switching Clangd off and on
      (QTCREATORBUG-27594)
* Built-in
    * Added support for structured bindings (QTCREATORBUG-27975)
    * Fixed that document specific preprocessor directives were not used after
      session load (QTCREATORBUG-22584)
* ClangFormat
    * Moved settings back to top level preferences page
    * Updated formatting options (QTCREATORBUG-28263)
    * Fixed indentation of comments (QTCREATORBUG-25539)

### Language Server Protocol

* Improved performance for large documents
* Fixed that server was not restarted after 5 times, even if a long time passed
  after the last time

### QML

* Fixed that `Follow Symbol` could open file from build directory
  (QTCREATORBUG-27173)
* Fixed cursor position and breakpoints after reformatting (QTCREATORBUG-25218,
  QTCREATORBUG-28349)

### Image Viewer

* Made `Fit to Screen` sticky and added option for the default
  (QTCREATORBUG-27816)
* Cleaned up tool bar (QTCREATORBUG-28309)

### Diff Viewer

* Fixed that calculating differences blocked Qt Creator
* Fixed that description widget height was not persistent (QTCREATORBUG-24286)

Projects
--------

* Added option for hiding build system output with `Show Right Sidebar`
  (QTCREATORBUG-26069)
* Fixed that opening terminal from build environment settings did not change
  directory to build directory
* Fixed that local environment was used when inspecting GCC toolchain on remote
* Fixed stopping terminal process (QTCREATORBUG-28365)

### CMake

* Moved settings from `Kits` and `Build & Run` into their own `CMake` category
* Turned `Package manager auto setup` off by default
* Added support for CMake configure and build presets, including conditions and
  toolchain files (QTCREATORBUG-24555)
  ([CMake Documentation](https://cmake.org/cmake/help/v3.21/manual/cmake-presets.7.html))
* Added option for changing environment for configure step
* Added option for hiding subfolders in source groups (QTCREATORBUG-27432)
* Added support for `Build File` also from header files (QTCREATORBUG-26164)
* Fixed that `PATH` environment variable was not completely set up during first
  CMake run
* Fixed issues with importing builds using Visual C++ generator

### Qbs

* Fixed that `qbs.sysroot` was not considered

### Qmake

* Added workaround for `mkspec`s that add compiler flags to `QMAKE_CXX`
  (QTCREATORBUG-28201)
* Fixed unnecessary updates after project build (QTCREATORBUG-27785)

### Python

* Adapted to move of project tool to `PySide6-Essentials` package

Debugging
---------

* Added warning for missing QML debugging functionality for mobile and embedded
  devices
* Fixed display of strings with characters more than 2 bytes long
* Improved type name lookup performance for heavily templated code
* Improved display performance for large array-like data (QTCREATORBUG-28111)

Analyzer
--------

### Clang

* Fixed error when analyzing non-desktop targets (QTCREATORBUG-25615)
* Fixed wrong failure count display (QTCREATORBUG-27330)

Version Control Systems
-----------------------

### Git

* Added support for user-configured comment character (QTCREATORBUG-28042)
* Improved matching of commit hashes (QTCREATORBUG-24768, QTCREATORBUG-28268)
* Fixed adding or deleting files in nested directories (QTCREATORBUG-27644,
  QTCREATORBUG-27405)
* Fixed that text encoding in project settings was not respected on diff
  (QTCREATORBUG-21794)

Test Integration
----------------

* Added support for Squish
  ([Documentation](https://doc-snapshots.qt.io/qtcreator-9.0/creator-squish.html))
* Catch 2
    * Fixed handling of exceptions (QTCREATORBUG-28131)
    * Fixed crash (QTCREATORBUG-28269)
    * Fixed handling of `WARN`, `FAIL` and `INFO` (QTCREATORBUG-28394)

Platforms
---------

### Windows

* Improved detection of MinGW and LLVM ABI (QTCREATORBUG-26247)
* Fixed wrong debugger when importing build (QTCREATORBUG-27758)
* Fixed issues when drives are mapped (QTCREATORBUG-27869, QTCREATORBUG-28031)
* Fixed that output could be missing for Qt based external tools
  (QTCREATORBUG-27828)
* Fixed that Clink and other applications could increase startup time for
  toolchain detection (QTCREATORBUG-27906)
* Fixed that running Qt Creator from a MSVC environment could interfere with
  MSVC auto-detection (QTCREATORBUG-28315)

### macOS

* Added auto-detection of `ccache` compilers from Homebrew (QTCREATORBUG-27792)
* Fixed that theme partially switched between dark and light when system theme
  changed during runtime (QTCREATORBUG-28066)
* Fixed wrong target being set for the code model for iOS kits
  (QTCREATORBUG-28278)
* Fixed that Touch Bar contained `Edit Bookmark` instead of `Toggle Bookmark`
  (QTCREATORBUG-28108)
* Fixed missing `Search` item in `Help` menu (QTCREATORBUG-24751)

### Android

* Fixed emulator operations when the deprecated `SDK Tools` is installed in
  addition to `SDK Command-line Tools` (QTCREATORBUG-28196)
* Fixed debugging over WiFi (QTCREATORBUG-28342)

### iOS

* Fixed determination of Qt version when debugging

### Remote Linux

* Enable usage as build device
* Added option for SSH port to wizard
* Added fallback for devices without `base64`
* Added experimental support to user remote linux build devices (QTCREATORBUG-28242)

### Boot to Qt

* Fixed that `rsync` was not available for deployment (QTCREATORBUG-24731)

### Docker

* Added option for `docker` command
* Added detection of Python
* Added option to auto-detect in PATH plus additional directories
* Added option for overwriting `ENTRYPOINT` of docker container
* Added automatic mounting of source and build directory before building
* Improved device wizard
    * Added sorting of images
    * Added option to hide images without tag
    * Added double-click for selecting image
* Fixed `Browse` button for build directory for remote directories
* Fixed interrupting and pausing of GDB
* Fixed running `ctest` on device
* Fixed mounting paths with spaces or colons
* Fixed opening remote text files without extension

Credits for these changes go to:
--------------------------------
Aaron Barany  
Adam Sowa  
Alessandro Portale  
Alexander Akulich  
Alexander Drozdov  
André Pönitz  
Ari Parkkila  
Artem Sokolovskii  
Assam Boudjelthia  
Björn Schäpers  
Christiaan Janssen  
Christian Kandeler  
Christian Stenger  
Cristian Adam  
Daniele Bortolotti  
David Schulz  
Eike Ziller  
Fawzi Mohamed  
Florian Koch  
Henning Gruendl  
Jaroslaw Kobus  
Kwangsub Kim  
Leena Miettinen  
Lucie Gérard  
Marc Mutz  
Marco Bubke  
Marcus Tillmanns  
Miikka Heikkinen  
Orgad Shaneh  
Piotr Mućko  
Rainer Keller  
Robert Löhning  
Sergey Levin  
Sivert Krøvel  
Tasuku Suzuki  
Thiago Macieira  
Thomas Hartmann  
Tim Jenssen  
Ulf Hermann  
Yasser Grimes  
