Commit Graph

2583 Commits

Author SHA1 Message Date
Orgad Shaneh
5f973de952 Merge remote-tracking branch 'origin/4.3'
Change-Id: Ib5405ed2c3356f65b49fe2f454f8ac2e0de44ef6
2017-06-26 08:24:26 +03:00
Ivan Donchevskii
1e68d91cb1 Clang: fix intrinsic errors with boost
Add extra define not to include intrinsic headers
from boost headers.

Task-number: QTCREATORBUG-16439
Change-Id: I887fe63e2560afebdbe9f3d3587f99f95d408997
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-06-21 08:12:08 +00:00
Orgad Shaneh
687466ac47 Merge remote-tracking branch 'origin/4.3'
Change-Id: I126f3a05212a3d5df78812e66285bc9e8078360b
2017-06-20 11:32:02 +03:00
Nikolai Kosjar
e50ad1e09c CppTools: Avoid concurrent access to QTextDocument
Do not pass QTextCursor to another thread, but determine what we need
from it in the main thread.

Change-Id: I86900cfc5a28849efc1bd1dacb9b1452a5db252e
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2017-06-20 07:42:06 +00:00
Orgad Shaneh
b89888ca9d Clang: substitute __float128 with short instead of void
There is an argument of this type in std_abs.h. void argument is invalid.

Replacing with float, double or long double causes an error in type_traits,
which has template specializations for __is_floating_point_helper for all
these types.

Change-Id: Ife95fa992cbf9684bc67a2098d6609a9a925d015
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-06-20 07:02:19 +00:00
Nikolai Kosjar
0bc782c468 Clang: Add CLANG-UPGRADE-CHECK marker
...for things to watch out on an upgrade.

Change-Id: I75b77a3c8fa238939b625d084c7db220ab429319
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-06-16 07:11:43 +00:00
Przemyslaw Gorszkowski
7bcf483189 C++: fix code completion of stl containers in internal code model
This fix makes some trick and replaces existing typedef of 'pointer'
to the simplest one(only in class unique_ptr), e.g.:
template <class _Tp>
class unique_ptr
{
  typedef some_strange_things pointer;
  pointer operator->();
}
is replace with
template <class _Tp>
class unique_ptr
{
  typedef _Tp* pointer;
  pointer operator->();
}

In most of the implementation of unique_ptr it should work.

Similar approach is done for std::list, std::vector, std::queue, std::set,
std::multiset, std::unordered_set.

It is done in this hacky way to omit problems with cyclic and complex
resolving of typedefs.

Change-Id: I1363dfc5e23d3cd2fa7af7fc27423bfbac2d894d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-06-15 17:18:20 +00:00
Nikolai Kosjar
d3d3e2ace5 CppTools: Simplify/Modernize SemanticInfo
Change-Id: I7bef1dee81678f77f5c0d8a6d22488aa63f981e7
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2017-06-15 15:11:48 +00:00
David Schulz
2b83869236 TextEditor: Animate navigation within file
Change-Id: I490d70a785c947cd41809503e15a317152126641
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2017-06-15 09:24:07 +00:00
Nikolai Kosjar
38789eb0a6 CppTools: Use class member prefix "m_" in builtincursorinfo.cpp
Change-Id: I8e4079734f9167dcc9da2ceff027f8559bab367f
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2017-06-14 12:33:22 +00:00
Nikolai Kosjar
fdf0a104ec CppEditor: Generalize CppUseSelectionsUpdater
Let CppUseSelectionsUpdater delegate the work to
*EditorDocumentProcessor so that the clang code model can also provide
results.

Change-Id: I6872afbfeea1a5c4a64fdf19fcb1992f134dde08
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2017-06-14 12:24:59 +00:00
Eike Ziller
247639d9c3 Remove 1-1 dependency between locator and locator input widget
Add possibility for filters to set a new search text when accepting
an entry.
Move placeholder text update from locator manager to widget.
Propagate filter update through signal-slot connection instead of directly.
LocatorManager::show is the only place left that directly references the locator widget.

Change-Id: Id61354d9f166c2af8c9d5528ad8998c7c6b8e1ab
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-06-13 12:42:13 +00:00
Ivan Donchevskii
78db7d7ed2 Clang: turn off delayed template parsing
Fix templates highlight and completion on Windows
Add UI to turn on/off delayed parsing (off by default)

Task-number: QTCREATORBUG-17222
Change-Id: I0cd5e0bcfff2789cd938e4096829f777ff15957a
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-06-08 10:53:31 +00:00
Orgad Shaneh
59a5c0c232 CppTools: Avoid QT_SUPPORT macro
It is deprecated, and GCC7 warns about RHS expansion to defined.

Change-Id: I161ee9c566ee12d0e443a9054dd0e5cdadc0518e
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-06-06 07:32:08 +00:00
Eike Ziller
33cc799b98 Locator filters: Add overrides
Change-Id: I20f93d6bcb22a342d9f662d8190f97798ca3e423
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-06-02 07:17:24 +00:00
Nikolai Kosjar
3e203e1208 CppTools: Fix uninitialized values warnings
...from coverity scan.

Change-Id: I7f4c3de39279cfffab2246aa84ae2ac13916bd1e
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
2017-06-01 13:33:27 +00:00
Eike Ziller
68a89c29a4 Make functionality of applying mixin text styles available for everyone
Change-Id: I0e702be0572229ec96c71d0ae2b5395a3c2fb29e
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-05-29 06:54:18 +00:00
Nikolai Kosjar
6174cca5a0 Move CanonicalSymbol from CppEditor to CppTools
Needed for a follow-up change.

Change-Id: Ibb4815f3411f0d63deac8c32583178470668f67b
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2017-05-29 06:42:09 +00:00
Daniel Teske
ef951eaea7 Class Renaming: Offer to rename files that match the symbols name
Task-number: QTCREATORBUG-14696
Change-Id: I6d140dac510e47d1a19d6759148f5f24dad44062
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2017-05-16 16:04:17 +00:00
Nikolai Kosjar
e788333510 Clang: Add -Wno-used-but-marked-unused
...to built-in diagnostic configuration "Warnings for almost
everything".

Change-Id: I2a70c76c5b876cc0dc8cebd80c2457550b608593
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-05-12 10:13:55 +00:00
Orgad Shaneh
edbaea4f60 C++: Use Utils::FileName for Usage::path
Change-Id: I1d22333ad60d229202db5d372d00019b5870e60f
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-04-27 08:34:59 +00:00
Eike Ziller
9443f7104b Remove the need to create ISnippetProvider subclasses
Change-Id: I1810aaa945136d9726a66dad41377429a6adc8e1
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-04-25 12:03:08 +00:00
Eike Ziller
dae2556d2f Merge remote-tracking branch 'origin/4.3'
Change-Id: I44511e06986b7df6007be7daf7051c895a10794b
2017-04-21 15:30:00 +02:00
Nikolai Kosjar
2ed089ba7f Clang: Fix path to intrinsics dir
...which got lost in

    commit 1e3f2eec8d
    Clang: Consolidate all ClangCompilerOptionsBuilder into one implementation

This will fix

    SOFT ASSERT: "!resourceDir.isEmpty()" in file
        C:\work\build\qt-creator\src\plugins\cpptools\clangcompileroptionsbuilder.cpp,
        line 119

Change-Id: Ie0301517eca580b4907bbcd8f524775f2b0bedb8
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-04-19 13:23:55 +00:00
Eike Ziller
88897f3a87 Merge remote-tracking branch 'origin/4.3'
Conflicts:
	src/plugins/genericprojectmanager/genericproject.cpp
	src/plugins/genericprojectmanager/genericproject.h
	src/plugins/genericprojectmanager/genericprojectnodes.cpp
	src/plugins/genericprojectmanager/genericprojectnodes.h

Change-Id: Ie0c870f68c8d200a75489b75860987655b2f6175
2017-04-19 09:56:14 +02:00
Tobias Hunger
0951589420 Project: Unify handling of displayName
Unify the handling of displayName with a proper changed signal across
all projects.

Change-Id: I7e503528854b85f6f38de4b0943775f82a0d6123
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2017-04-07 14:49:51 +00:00
Eike Ziller
bac2e6c17a Merge remote-tracking branch 'origin/4.3'
Conflicts:
	src/plugins/cmakeprojectmanager/servermodereader.cpp

Change-Id: I58e7b33d32c41cb48a24a5638ddb256212dd6107
2017-03-30 13:59:12 +02:00
Tobias Hunger
b0c7bb0f7b Project: Move ProjectDocument setup into Project class
Change-Id: I5c0ec79ddf066e37660fb9a6b24f9d882355d511
Reviewed-by: hjk <hjk@qt.io>
2017-03-29 11:53:24 +00:00
Thomas Hartmann
d882cb4a8f Utils: Adjust name fillWithZero()
The name was quite missleading.

Change-Id: I538eca2a59e8a861e707fecd8331488e1919408a
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-03-29 08:23:14 +00:00
Eike Ziller
016767b2a6 Merge remote-tracking branch 'origin/4.3'
Conflicts:
	src/plugins/genericprojectmanager/genericproject.cpp
	src/plugins/genericprojectmanager/genericproject.h
	src/plugins/projectexplorer/projectmodels.cpp

Change-Id: I290cba328212cadd3c12909d1f2f3642d326a1ca
2017-03-28 09:56:16 +02:00
Tobias Hunger
fc5ce1e710 ProjectExplorer: Handle project file list globally
Handle the generation of the list of files in a project globally, based
on the project tree.

Creator now has the concept of TreeManagers which can enrich the project
tree with additional data (e.g. the files found in a resource file), which
the project does not necessarily know about. So use that tree to find
the files that belong to a project instead of implementing similar features
in each project.

Change-Id: Ia375a914a1f2c0adaa427f9eda834eec2db07f68
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
2017-03-27 15:32:13 +00:00
Nikolai Kosjar
7d39f94f3d Clang: Avoid warnings about unknown pragmas
Task-number: QTCREATORBUG-17460
Change-Id: Ic57f59f87b58c44ac738fb87039b4844d82bc924
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-03-24 10:51:43 +00:00
Nikolai Kosjar
535cc76cac Clang: Avoid dot-arrow-correction if dot is gone
Change-Id: Iba23a17ba9345ed4f08e16faad02054903c04afc
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-03-23 17:26:06 +00:00
Serhii Moroz
6ecb1c4018 Locator: Add highlighting of the search text
Change-Id: Ia166e9667076e46770a754b626ceb28080139e79
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2017-03-21 12:31:46 +00:00
Nikolai Kosjar
b2e537baaa ProjectExplorer: Move built-in parser workarounds to built-in code model
...so that only the built-in code model parser sees them, but not the
clang code model, which has problems with them. The specific case here
is due to definition of __int32:

  winnt.h:3077:1: error: functions that differ only in their return type
                  cannot be overloaded
  intrin.h:357:31: note: previous declaration is here

While moving, drop __MSVCRT__, which seems to be a predefined macro of
ancient MSVC versions, see

https://sourceforge.net/p/mpg123/mailman/mpg123-devel/?viewmonth=201010&viewday=24

Change-Id: I4b8c49ed4bdc942a2190dbae3c260f3a1a8078a4
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-03-16 16:18:44 +00:00
Tobias Hunger
802eff3485 CppTools: Add target information to ProjectPart
This is important to be able to map sources to actual things that are
going to be built.

Change-Id: I1aef940767d60192642ed79a1703cff8dfdad9e1
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-03-15 11:03:45 +00:00
Orgad Shaneh
da7cb91446 Merge remote-tracking branch 'origin/4.2' into 4.3
Change-Id: I4931dcc81be872d7712e67123e94d15ee696459f
2017-03-14 16:20:14 +02:00
Samuel Gaist
4033471aa9 QRegExp include cleanup
This patch adds the missing include statements for QRegExp.

Change-Id: Ibb03b929940adb84ae190b5090cb6b88653cc14c
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2017-03-13 22:05:30 +00:00
Nikolai Kosjar
8a076e3f4b CppTools: De-duplicate and rename function in ProjectPart
Change-Id: I675ce4c9059d8ae4046f6a13aa7c04b88141d443
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-03-09 14:35:29 +00:00
Tobias Hunger
546df41853 ProjectPart: Add callGroupId
Do not rely on the projectfile being unique anymore.

Change-Id: I52e63b3ac8aeca43ef70af1d59d1d8612bd3540e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-03-09 13:50:08 +00:00
Tobias Hunger
cee92463f7 ProjectPart: Allow for line/column information in project file
Keep this information separate so that plugins using the information
do not need to start parsing the project file.

Change-Id: Ibecf431de1b12bbe820c6f8f9c986cffeb4972d2
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-03-09 13:49:36 +00:00
Nikolai Kosjar
187f48c238 CppTools: Clean up includes of doxygengenerator.cpp
Change-Id: Ie9ad5cbebc2d97c51889ccc1539caed7d7ded8d4
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-03-08 11:07:12 +00:00
Nikolai Kosjar
45b7c5ac29 Revert "CppTools: Do not put configuration document into global snapshot and working copy"
This reverts commit 05942b63f8 because it
breaks refactoring, e.g. Q_PROPERTY generators.

Change-Id: I9a14b912ba72663f08ea99e7e066d824b18da4b0
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-03-07 11:54:16 +00:00
hjk
3f5caf4cdc Utils: Wrap MimeDatabase into static functions
To avoid repeating the 'MimeDatabase mdb; mdb.something(); ' mantra
all over the place.

Change-Id: I4bfef62e73275a991455141671d6071162788e9d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2017-03-03 07:57:54 +00:00
Tim Jenssen
f2b8e9acd1 SessionManager: Clean up methods around projects
Clean up methods around projects() and update its usages to modern
language standards.

Change-Id: Ia0a4574d014ce41e0d511a392e4eed4680981d0e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-03-02 09:31:23 +00:00
Eike Ziller
d64e17ad55 Move mimetype definitions to plugin specs
- Avoids the hassle of QRC files and manually registering mime types
- Avoids performance regressions because of mime types that are
  registered after mime database has been used
- Makes it technically possible to detect that a disabled plugin could
  handle a mime type if it was enabled

Change-Id: I373008b1b56e9c6b4853055f20b3eeb112a6eff9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2017-02-27 13:54:59 +00:00
Tim Jenssen
2631ffabd5 Remove spaces in initializer lists
Format initializer lists code style like.

Change-Id: Ib82c235e4ba7dc75ee96a7abc0c47eff7b0a9013
Reviewed-by: hjk <hjk@qt.io>
2017-02-22 16:25:09 +00:00
Nikolai Kosjar
0c0b004493 CppTools: Fix setting ProjectPart::project
This was forgotten in

  commit 8c90998fff
  CppTools/ProjectManagers: Reduce ui blocking when loading projects

Change-Id: I5c3a8a4015dd3b4389a21a80367a9eac7ebd95fd
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-02-21 11:45:00 +00:00
Nikolai Kosjar
8c90998fff CppTools/ProjectManagers: Reduce ui blocking when loading projects
${AnyProject}::updateCppCodeModel() did two potentially not that cheap
operations in the ui thread:
 (1) Querying the MimeDatabase for the mime type for the source files of
     the project. In 99.9% of the cases no files need to be read for
     this as the file extension will resolve the type. The expensiveness
     comes from the sheer number of files that can occur.
 (2) Calling compilers with the "(sub)project's compiler command line"
     to determine the macros. While the caches avoid redundant calls,
     the number of the unique compiler calls makes this still a
     ui-freezing experience.

These two operations are moved into a worker thread. For this, the
expensive compiler calls are encapsulated in thread safe lambdas
("runners") in order to keep the "mutexed" data minimal. The original
API calls of the toolchains are implemented in terms of the runners.

While adapting the project managers, remove also the calls to
setProjectLanguage(). These are redundant because all of the project
managers already set a proper value in the constructor. Also, currently
there is no need (client) to report back detection of C sources in
project parts. This also keeps CppProjectUpdater simple.

There is still room for improvement:
 * Run the compiler calls in parallel instead of sequence.
 * Ensure that the mime type for a file is determined exactly once.

Change-Id: I2efc4e132ee88e3c8f264012ec8fafe3d86c404f
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-02-20 09:18:13 +00:00
Marco Bubke
1a75db12f4 Clang: Improve speed by content generation
The argument parsing has some considerable overhead. We try to avoid that
with merging all content together in one file.

Change-Id: Icf426bb5d6a5569d59c180f94c7eab66a22a251c
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-02-16 17:39:05 +00:00