// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only /*! \page qtcreator-api.html \title C++ API Reference The core of \QC is basically only a \l{ExtensionSystem}{plugin loader}. All functionality is implemented in C++-based plugins or Lua-based extensions. The basis of \QC is implemented in the Core plugin. The plugin manager lets plugins cooperate by providing hooks for other plugins. \section1 Libraries \section2 Core Libraries There are a few core libraries used by many parts of \QC. \table \header \li Library Name \li Description \row \li \l{Aggregation} \li Adds functionality for \e glueing QObjects of different types together, so you can \e cast between them. \row \li \l{ExtensionSystem} \li Implements the plugin loader framework. Provides a base class for plugins and basic mechanisms for plugin interaction like an object pool. \row \li \l{Tasking} \li A solution containing a TaskTree and other classes for writing declarative trees of asynchronous task flows. \row \li \l{Utils} \li Useful classes that are reused in a lot of places in \QC code. \omit \row \li \l{QmlJS} \li QML and JavaScript language support library. \endtable \section2 Additional libraries \table \header \li Library Name \li Description \row \li \l{qtcreatorcdbext} \li Windows CDB debugger extension \endomit \endtable \section1 Plugins As already mentioned, \QC is basically only a plugin loader framework which gets its IDE functionality through C++-based plugins and Lua-based extensions. The most important plugin is the Core plugin which provides all the basic functionality needed later to integrate e.g. editors or mode windows. \table \header \li Plugin Name \li Description \row \li \l{Core} \li The core plugin. Provides the main window and managers for editors, actions, mode windows and files, just to mention the most important ones. This plugin also contains classes necessary to hook into the \l{Core::ILocatorFilter}{Locator} as well as support for searching text in arbitrary widgets. \omit \row \li \l{ProjectExplorer} \li The project explorer plugin. Provides base classes for project handling. \row \li \l{Debugging} \li Debugging functionality. \row \li \l{VcsBase} \li Base classes for version control support. \row \li \l{TextEditor} \li This is where everything starts if you want to create a text editor. Besides the base editor itself, this plugin contains APIs for supporting functionality like \l{Snippets}{snippets}, highlighting, \l{CodeAssist}{code assist}, indentation and style, and others. \endomit \endtable \section1 Solutions \QC uses object libraries that are independent of any \QC-specific code, and are threfore ready to be a part of Qt. \table \header \li Solution Name \li Description \row \li \l{Spinner Solution}{Spinner} \li Renders a circular, endlessly animated progress indicator, which may be attached to any widget as an overlay. \row \li \l{Tasking Solution}{Tasking} \li Enables you to build extensible, declarative task tree structures that contain possibly asynchronous tasks. \endtable \section1 Reference \list \li \l {\QC C++ Classes} \li \l {\QC Namespaces} \li \l {\QC Functions} \li \l {Solutions} \endlist */ /*! \module QtCreator \title \QC C++ Classes This topic lists the documented \QC C++ classes. For information about the classes that have not been documented, please inspect the source code. */ /*! \page namespaces.html \title \QC Namespaces This topic lists the documented \QC namespaces. For information about the namespaces that have not been documented, please inspect the source code. \generatelist namespaces */ /*! \page mainclasses.html \title \QC Main Classes This topic lists the most important \QC C++ classes. \generatelist mainclasses */ /*! \page functions.html \title \QC Functions This topic lists the documented \QC functions. For information about the functions that have not been documented, please inspect the source code. \generatelist functionindex */