aboutsummaryrefslogtreecommitdiffstats
path: root/doc/qtcreatordev/src/qtcreator-module.qdoc
blob: 8af9661ce897fe6fd65d665cd1957b915efc861a (plain)
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
*/