1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
// 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
*/
|