Workaround for wrong cursor annotated by Clang.
Use clang_getCursor in case of the variable used as
operator argument to get the proper cursor.
Task-number: QTCREATORBUG-20966
Change-Id: Idb195bffc2296f3fae27595cf9c43c9e6b2c5cd0
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Try to complete constructor after left brace with fallback
to normal completion.
Task-number: QTCREATORBUG-20957
Change-Id: I6c33790a3ee1e623a3d8abe9a44cfd821b6f3106
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
We don't index system headers any more and introduce a first step to
decrease double indexing. For that we introduces the SourcesManager which
so far tells you only if a file was already indexed for a certain time
stamp.
Change-Id: Icde54465693ca84a622764c595635cac365c0111
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
For many index cases such a function call it is needed to check if
any of the included files are changed because the function which is called
could be changed too.
Change-Id: Ibe0f43426c735d39072f284cad075dd4dc6f99c0
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
It has an internal QWeakPointer<QObject>, which is not helpful. Cast to the
QPointer's template argument instead.
Change-Id: I9308c5eb9ea3867a682c4e4cba5d8041547981d1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Indexing source files multiple times is unneeded overhead in many cases.
The source manager is a support class to handle that cases.
Change-Id: Id737eaa9a691c54563279562833493a221eb3431
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
They fit our use-case much better.
Task-number: QTCREATORBUG-20874
Change-Id: Ifa06ce00f3e6999a99c3bc2bb7e9ba759fa02e94
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
When used in SubItem, enums were displayed as
"value of type E at address <addr>".
Change-Id: Ieecfb791126c6f63f272817afc6c8d05f28b9242
Reviewed-by: David Schulz <david.schulz@qt.io>
System includes suppress warnings and prevent indexing of unwanted symbols.
Using system includes for all includes outside of the project can be
quite advantageous. The rootProjectDirectory() can be extended to be set
in the project settings. An automatic generation could be possible but
could create an unwanted path which includes files outside of the
perceived project.
Change-Id: Ib9d3158f14f41efe1f6657f962d5c4437bb324b2
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This is an intermediate step to handle the indexing of the project parts
completely. The generated files are now independently handled from the
project parts. We still not handle the case the a file is indexed but the
generated file is not provided. This will be done in a different patch.
All provided data is now sorted too to improve merging.
Change-Id: I09712b99217a881ec0a233d09aea8659fb787324
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
The code of the helper function has changed and what worked
before by pure coincidence now fell apart.
Passing a list to a function that tries to use it as a key
for a dict results in an exception as lists are not hashable.
The code is likely to change by adding a newer kit. This patch
just makes the current state work without crashing instead of
adding functionality that is not yet used.
Amends aed1616b35.
Change-Id: I6e8a6490988700de14596ba981b5e6900133a79d
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
Only libclang has issues with the include directory
search therefore undefining include folders makes sense
only for libclang options builder.
Change-Id: Ie3f62f5f3a89503e6e0ab59e18889e92425c3abc
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Since we now destinguish FunctionDefinitionCompletionKind from
FunctionCompletionKind use the proper enum in some tests.
Change-Id: Ia3a47c4632ce4d2a1e42de87289dd08d4cac6ef7
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
To manage generated files it is very useful to have a class which adds,
updates and remove them.
Change-Id: Ifc842400e17d1a51adf723c32996a080f0348f57
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
There must be a management about it but this will be added in a different
change set.
Change-Id: I47b6ce7f671f1c8ae07083d6d99c534069e3cc1a
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Warnings from static code checks, that is, not test.warning() at runtime.
Change-Id: I651d13491106583908059ecdb5f700f539b6d9c8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The design of the Projects mode changed several times. We wrote lots of
workarounds to keep even more old code alive because we never had the time
for a proper refactoring. This time is now.
Leads to more stable code with far less variables flying around.
Task-number: QTCREATORBUG-20265
Change-Id: I29e5956ea3279cdb1d6da61bf5b461666de436bc
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Yes, there are only ten pastes per IP per day. But doesn't that mean that
nobody can rely on it being availabe anyway? So it's better to use some
of those ten pastes for testing instead of not testing pasting at all.
Change-Id: I45362e5ab0c3eb43f1ddd18d4be39474e26c8460
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The patch that removed Qt4 completely from the widget app wizard
has been reverted.
Adjusting the tests now.
Change-Id: I0af1eb2102caa22022658d1189794c7757c7628f
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
Each completion coming from libclang now has it's own
list of fix-its which are required to be applied before
completion itself.
This saves one extra reparse cycle and gives an ability
to provide both kinds of completion (initial and corrected
one) for cases like shared_ptr, unique_ptr or any other
class with overloaded arrow operator.
Each of these extra fix-its is applied together with
corresponding completion dircetly before completion itself.
Change-Id: Ide37e45bb15fa2f1375cd6b86ecd43ced3593046
Reviewed-by: David Schulz <david.schulz@qt.io>
It breaks cross-compilation on linux/mingw.
This reverts commit 1c014ed3d9.
Change-Id: I3e8183ec318541a4393ad242eefbdeaa78b7be44
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Instead of laborously calculating which properties have changed under
which circumstances, we can just connect the signals of dependent
properties. This will give us a few false positive signals at a greatly
reduced risk of missing some actual change. Also, the number of expanded
and collapsed rows will always be determined by the content of the
model. We don't need separate signals for those.
Change-Id: Id8495ee525a91405b039fd032509afa125f96412
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Although Windows is case insensitive, and lower case always works, Clang
complains:
Lexical or Preprocessor Issue: warning: non-portable path to file
'<FooBar.h>'; specified path differs in case from file name on disk
Change-Id: I8f94e9fb62f6afec8aa6b9d08a7c78f6ba8a4435
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>