Commit Graph

2698 Commits

Author SHA1 Message Date
Christian Kandeler
a88266798f CPlusPlus: Differentiate declarations with an initializer
... from those without one, and display the former like write accesses.

Task-number: QTCREATORBUG-24894
Change-Id: I5e2d83b2a3ec4735054441c346687f97eeb039fb
Reviewed-by: André Hartmann <aha_1980@gmx.de>
2020-11-04 13:02:52 +00:00
Eike Ziller
8527cbedcc Fix more compilation issues with Qt6
Various Windows related issues and issues with additional QML designer
components.
Don't use very generic template definitions if the type has to provide
not so generic base functionality (in this case providing a stream
operator for QDataStream).

Task-number: QTCREATORBUG-24098
Change-Id: Id0729c249d1b81e4e939fdaeb2e02b8a64e7e8f9
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-11-04 12:52:17 +00:00
Eike Ziller
1cd87a05b5 Fix build with newest Qt6
Task-number: QTCREATORBUG-24098
Change-Id: I8ced79ecd590dbeeb3038054e75ee0632ca37462
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-10-30 15:17:15 +00:00
Christian Stenger
050f6b083c Qbs: Fix linking tests when building release with tests
Change-Id: I5df34f06b5ca107b5e85cf6319d6d08aba244e5b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-10-28 13:12:54 +00:00
Christian Kandeler
7b6ab79f3e ClangTools: Do not include our wrapped Qt headers
These are only necessary for the code model and can prevent clazy from
finding certain issues.

Fixes: QTCREATORBUG-24845
Change-Id: I04ba6703812918c39ebbde1dbac5af85fe18622d
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-10-28 12:44:34 +00:00
Eike Ziller
5e67bc5055 Fix build with Qt6
Add missing includes for "incomplete type" issues.
Remove usage of QDesktopWidget.
Don't compile native WebKit help backend (missing native widget integration).
Add SvgWidget dependency.

Task-number: QTCREATORBUG-24098
Change-Id: I1b3afb54d385940ff283824870fa7454866212a4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-10-26 08:44:21 +00:00
Christian Kandeler
2b5e1ea62e CppEditor: Fix some "convert to camel case" edge cases
Fixes: QTCREATORBUG-16560
Change-Id: I8573ae6c5dce0956c868addc69a921c62f1d571a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-10-20 13:27:54 +00:00
Christian Kandeler
2e25e2859d CppTools: Fix test on Windows
Another CRLF issue.

Change-Id: I172bcef5beabf1c85eb3c0b66a1839c03a870f8c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-10-13 08:27:20 +00:00
Christian Kandeler
7125406305 CppTools: Consider .cu files
... when switching via F4 from a .h file and vice versa.

Fixes: QTCREATORBUG-24418
Change-Id: I121967dbec90125b3feed0a9d2aceb9826f925f3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-10-02 11:53:08 +00:00
Eike Ziller
f811b87c66 EditorManager: Small API clean-up
- Move private enum to private header
- Add missing parameter to openEditorAtSearchResult
- Remove convenience singular close* methods, we have {} nowadays

Change-Id: Ic5b6d831a9f506ffee09b89b3358874433d62998
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-09-30 14:57:20 +00:00
Eike Ziller
4dc9d92b1e Remove unneeded QStringList forward declarations
Fixes build issue with Qt6, for which QStringList is now a
QList<QString>.

Task-number: QTCREATORBUG-24098
Change-Id: I0c81aa5bae413b836dbedea0bb6117b46f6f24c2
Reviewed-by: hjk <hjk@qt.io>
2020-09-29 08:58:12 +00:00
Christian Kandeler
4376bc1e39 Core: Allow different highlight colors in search result window
... and make use of that in CppTool's "Find Usages" by assigning
different colors to read and write accesses.

Fixes: QTCREATORBUG-12734
Change-Id: I067db2c8d693bb2c5be44249931ee4f0269f7e52
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-09-18 09:33:07 +00:00
Eike Ziller
6f596ea5ee CppTools: Fix Qt6 build wrt internal QString changes
Task-number: QTCREATORBUG-24098

Change-Id: Ic1f72365a696993b3e81e9600b3b89d75d5e8bc4
Reviewed-by: hjk <hjk@qt.io>
2020-09-15 13:57:41 +00:00
Eike Ziller
242579099a CppTools: Fix QStringRef and QSharedPointer related issues with Qt6
Task-number: QTCREATORBUG-24098
Change-Id: I97347ac3fb397fea8eee655e3cc4ee252c511885
Reviewed-by: hjk <hjk@qt.io>
2020-09-15 13:57:32 +00:00
Eike Ziller
20f51bc642 Merge remote-tracking branch 'origin/4.13' into master
Conflicts:
	src/plugins/languageclient/languageclientcompletionassist.cpp

Change-Id: If12e1c532e5623ef063681309a918e7b51117b1c
2020-09-14 10:12:14 +02:00
Christian Kandeler
a89e3e22b9 CppTools: Guard against null pointer access
... when looking up definitions of variables.
Amends a0764603d0.

Fixes: QTCREATORBUG-24610
Change-Id: I79e6f69066eaa385013e722ec4793c27231ab8eb
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-09-11 11:44:02 +00:00
Christian Kandeler
58e633a8a4 CppTools: De-duplicate list of include paths
It makes more sense to handle this centrally than in all the build
system plugins.

Fixes: QTCREATORBUG-24515
Change-Id: I1c0f815d44135bcfb76ce51c67b6494a50e1de48
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-09-08 15:52:22 +00:00
David Schulz
dba4bff703 TextEditor: use Utils::FilePath as file member in AssistInterface
Change-Id: I3bf9b013b9350411f918efdb9d1a36a2c22bf972
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-09-04 10:14:21 +00:00
Christian Kandeler
45dd074441 CPlusPlus: Categorize "Find Usages" results
That is, find out whether a certain access was a read, a write, a
declaration or something else, and report the result to upper layers.
Follow-up patches can make this information visible to users.

Task-number: QTCREATORBUG-12734
Task-number: QTCREATORBUG-19373
Change-Id: Iee79e39dd1eb5a986a7e27846991e0e01b2c3a2f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-09-03 14:32:47 +00:00
Eike Ziller
3b76714290 Merge remote-tracking branch 'origin/4.13' into master
Conflicts:
	share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ListViewSpecifics.qml
	share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/MouseAreaSpecifics.qml
	share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/RowSpecifics.qml
	share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlickableSection.qml
	share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontSection.qml
	share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/StandardTextSection.qml

Change-Id: Ie5deacd39ae4f3c0966e7cb41a8fd832dcefbb09
2020-09-03 12:18:02 +02:00
Orgad Shaneh
a408bcfd3d Clang: Add conditions for adding exceptions flag
For GCC it can be deduced from the compiler flags, so no correction is
needed.

For MSVC it can be deduced from the detected defines.

Amends 26693e8212.

Change-Id: Ie4850f328a2afdb3e5158c58f8c30a2644d9c592
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-09-02 15:26:19 +00:00
Christian Kandeler
a79b0c6558 C++: Offer only signals when completing in a connect() call
... at the second argument.
The logic is as follows: The clang code model checks whether the set of
completions contains any signals. If so, it instructs the built-in code
model to analyze the AST to find out whether the completion location was
at the second argument of a call to QObject::connect(). In that case, we
filter out all non-signals, because they are not valid at that location.

Fixes: QTCREATORBUG-13558
Change-Id: I9c7d0bd16161c723aef822280626cd06ece7df93
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-08-27 14:02:51 +00:00
Eike Ziller
00ced26f47 Merge remote-tracking branch 'origin/4.13' into master
Change-Id: Ib60df85a85fc1c94d8cc0dc23ea9fcdb4822bcab
2020-08-25 12:42:04 +02:00
Christian Kandeler
d65ef60ea2 clang: Fix include/resource dir confusion
The getClangResourceDirAndVersion() function in ClangTools could return
the actual resource dir or the include dir, depending on the input. This
mistake happened because of misleading names spread all around the code.
Now the function returns what it says, and the other names are accurate
as well.

Change-Id: I0a8600857ee7b9fafb16256e0d1ad203ac3273d2
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-08-24 10:18:30 +00:00
Christian Kandeler
a40d2ea705 CppTools: Do not ignore "built-in" compiler macros for custom toolchains
Built-in compiler macros are normally not passed to the code model,
because of potential conflicts with clang. However, in the case of custom
toolchains, these macros are provided by the user for the explicit
purpose of making them known to the code model.
Another exception are the bare metal toolchains, for which we now make
sure we won't get out of sync when new ones are added.

Fixes: QTCREATORBUG-24367
Change-Id: I2a0458d9132fdff15eb9adfcb2c06d7ef72508bc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-08-24 10:02:20 +00:00
Christian Kandeler
f852cfe284 CppEditor: Skip over access specifier when inserting a doxygen comment
That is, also do function-specific magic on typing "/**<return>" in front
of a function if there is an access specifier such as "public:" in
between.
This use case is rather weird, but it's also pretty easy to support and
it should not hurt anyone.
Note that depending on the indentation of the access specifier, the
indentation of the inserted comment will probably not be what the user
expects, but this is not easily fixable.

Fixes: QTCREATORBUG-20311
Change-Id: Ie32a71eede91ef64a19381c8e379a183a91fd27d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-08-21 12:23:18 +00:00
Miklos Marton
3299239095 C++ Refactoring: Fix the include macros in header files after renaming
Fixes: QTCREATORBUG-4686
Change-Id: If22078bb183910941d8e2a94b0e8629baa2fa8de
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-08-21 06:50:42 +00:00
Christian Kandeler
86728b84f1 CppEditor: Properly handle multiple inheritance
... in "Insert Virtual Functions" quickfix.

Fixes: QTCREATORBUG-12223
Change-Id: I7dad7c219017a8c7b10b08190e35d1899ca5dfe6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-08-20 10:34:53 +00:00
Christian Kandeler
ddf7f5f232 CppTools: Do not indent within string literals
Multi-line strings must be kept as the user wrote them.

Fixes: QTCREATORBUG-20180
Change-Id: I141eff52b55d31215e6f5c6c5a0e026689db877a
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-08-20 08:10:22 +00:00
Christian Kandeler
414561e4cc CppTools: More consistent fuzzy matching behavior
There were annoying inconsistencies, for instance:
    - A not fully matching declaration was found from the definition,
      but not vice versa.
    - An implementation MyClass::foo(int) would fall back to a
      declaration foo(), but an implementation MyClass::foo() would
      not fall back to a declaration foo(int).
These cases behave consistently now. To this end, the clang code model
now forwards to the built-in code model if a function lookup has failed.

Fuzzy matching for free functions has been limited, as the cons appear
to outweigh the pros. For instance:
    void foo(int);
    void foo(double) {}
Following the definition would lead to the non-matching declaration,
which the user most likely does not want.

As a side effect, redundant code has been removed in the SymbolFinder
class.

Fixes: QTCREATORBUG-20279
Change-Id: Ib97d6710c7e12fb0fdbc30b51a0067e09bfc2190
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-08-14 13:21:36 +00:00
Christian Kandeler
760d91665f TextEditor: Make threshold for automatic completion configurable
Fixes: QTCREATORBUG-19920
Change-Id: Id6be79485b1fb8c2ab4cce2706816949ae5e217b
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-08-13 13:49:44 +00:00
Christian Kandeler
7938320291 TextEditor: Introduce shortcut for forcing a function hint proposal
... and support it in the ClangCodeModel.
This allows users to get function signature(s) displayed regardless of
where exactly the cursor is on the function call.

Fixes: QTCREATORBUG-19394
Change-Id: I033e8774db93680bfc3ee52610b817e0ef8ccc76
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-08-11 10:10:08 +00:00
Eike Ziller
3944162039 Merge remote-tracking branch 'origin/4.13' into master
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/cmakeprojectmanager/cmakebuildstep.cpp
	src/plugins/cmakeprojectmanager/cmakebuildstep.h
	tests/auto/debugger/tst_namedemangler.cpp
	tests/auto/qml/codemodel/check/tst_check.cpp

Change-Id: Iefd5f71c03c0078513b76a92af764a4fb22ee4c2
2020-08-10 15:56:54 +02:00
hjk
52b2ca55c9 Replace QT_USE_FAST_{OPERATOR_PLUS,CONCATENTION} by QT_USE_QSTRINGBUILDER
QT_USE_FAST_CONCATENATION doesn't do anything nowadays.

Using QT_USE_QSTRINGBUILDER is the same as QT_USE_FAST_OPERATOR_PLUS
for QStrings and enables more QStringBuilder use for QByteArrays.

Change-Id: Ibd297817c50d86661d47822799f989447249af1b
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-08-07 12:45:03 +00:00
Christian Kandeler
89eb33dd67 CppTools: Use consistent sorting in the two outlines
Use case-sensitive sorting in the side bar outline, just like in
the editor outline.

Fixes: QTCREATORBUG-12714
Change-Id: I9d8243c61fcceb6e3d7b55e3b27fa5d20accccea
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-08-06 14:04:57 +00:00
Christian Kandeler
3f9427200b CppTools: Fix formatting for lambdas with trailing return type
After the arrow, the state is still the same, as now a type is expected.
Only after the opening brace does the actual function start.

Fixes: QTCREATORBUG-18497
Change-Id: I7bf18fbd6907d36f8869af3a78ad617cf0ee9dbb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-31 08:15:18 +00:00
Christian Kandeler
77d13f08ba CppEditor: Let users create implementations for all member functions
... in one go.

Fixes: QTCREATORBUG-12164
Change-Id: Ifc81c8b1caf4319ce57882375f513d72e4c0ea52
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-29 11:56:07 +00:00
Alessandro Portale
6c45c3fb1c CppTools: Bump TIDY_DOCUMENTATION_URL_TEMPLATE from 8.0.1 to 10.0.0
Change-Id: I198f805768984eb060b2a72f705e618e6a7a53ff
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-07-28 19:37:51 +00:00
Leander Schulten
755659e663 CppTools: Prevent SegFault in the ClangFormatIndenter
If you create a ClangFormatIndenter but do not set the
fileName, the indenter will SegFault while indenting.

Change-Id: I93a56d7916bc1a02da9ee21a116bd48b4405edb1
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2020-07-28 14:17:54 +00:00
hjk
43b658e9e7 Utils: Drop Utils::SkipEmptyParts again
We require Qt 5.14 nowadays.

Change-Id: Iff245257d3cb19207007c0445ee13814e66152dd
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-21 12:42:27 +00:00
Christian Kandeler
c41847ce5d CppEditor: Find implementations for pure virtual declaration
Clearly, if a user presses F2 on the declaration of an (unimplemented)
pure virtual function, they want to go to an implementation in a derived
class.

Fixes: QTCREATORBUG-10160
Change-Id: Ie8c4ff0001ab2c98a2d0e2ebc8d954cc928578c0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-21 10:13:43 +00:00
Christian Kandeler
45dd017853 Wizards: Offer auto-completion in "New C++ Class" wizard
That is, offer existing namespaces for the class name line edit and
existing classes for the base class line edit.

Fixes: QTCREATORBUG-10066
Change-Id: I276036864626eff92997e40e4e22ab16c4f4d617
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-21 10:11:37 +00:00
Christian Kandeler
f905fcea71 Wizards: Fix function parameter type in CppToolsJsExtension
We did not notice because the JS array was auto-converted into a string.
Amends bcc2b5e08d.

Change-Id: I06ee43f78cb3081bdff0a02f8d446326a01bc2d1
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-07-17 07:46:08 +00:00
hjk
9b0b86297e CppTools: Qt6: Drop use of QTextStream::setEncoding from CppFileSettings
This now requires license templates file to be Unicode compatible,
effectively restricting it to plain ASCII in non-Unicode codebases.

Task-number: QTCREATORBUG-24098
Change-Id: I713fed1ddb288360abbdbb40c6ca67444eb62ef3
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-07-17 07:33:48 +00:00
Leander Schulten
d51a419458 CppTools: Use indenter from TextDocument or create one
So if you use the ClangFormat Plugin, the ClangFormatIndenter is used
and not the CppQtStyleIndenter.

Change-Id: I7e71867cd4b48525ddc2f9b2dce8f13a65c3ad88
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-07-14 09:03:17 +00:00
Christian Stenger
7598018a7f CppEditor:CppTools: Replace QRegExp by QRegularExpression
Task-number: QTCREATORBUG-24098
Change-Id: Id1804a31162d0239659de33c1700354494c11689
Reviewed-by: hjk <hjk@qt.io>
2020-07-13 12:09:15 +00:00
Christian Kandeler
782ca5d8d8 Clang: Fix error when including float.h with mingw
Prevent mingw from trying to #include_next a private header from a path
we cannot add to our list of includes.

Fixes: QTCREATORBUG-24251
Task-number: QTCREATORBUG-24027
Change-Id: I18a9db130b9c2265cd208c3506d08d2e1c4cee45
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-07-09 17:24:16 +00:00
Christian Kandeler
8bd6453d76 CppTools: Fix warning about fall-through
Change-Id: I6984265c4678b70e2684908b144560b6fbd542dd
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-07-06 14:11:02 +00:00
hjk
e1c88116b3 Core/Utils: Migrate further to Utils::Id
The coreplugin/id.h header is kept for downstream for now.

Change-Id: I8c44590f7b988b3770ecdc177c40783e12353e66
(cherry picked from commit 430a33dcd9)
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-07-06 11:15:18 +00:00
Christian Kandeler
b9413bcec7 Cpp: Fix leaks in ClangCodeModel tests
Change-Id: I19d4dc445d82fd24361f1eb752d9f35ccadd3efb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-06-19 11:19:42 +00:00