Commit Graph

2751 Commits

Author SHA1 Message Date
Eike Ziller
ed9177f74c CppTools: Move ProjectUpdateInfo to ProjectExplorer
Used for updating project parts, so move it near RawProjectPart.

Change-Id: I77aeffbdbfb3d2ec0de600f61dcf7fbb7a355a98
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-09-12 06:37:41 +00:00
Eike Ziller
9cc45fe1fb CppTools: Move RawProjectPart to ProjectExplorer
Doesn't have any dependencies into CppTools anymore, therefore moving it
reduces the dependencies of the project managers to CppTools as well.

Change-Id: Ibe728abe59eb88a8877943dca1f48a85163e27ac
Reviewed-by: hjk <hjk@qt.io>
2019-09-11 06:22:12 +00:00
hjk
e9d8ff21b0 Remove unused QObject parent arguments on options pages
In the new plugin setup scheme they are data members of the
plugin pimpl and never use the parent.

Change-Id: I28fe150393e8159064dcfbd113ce0320af50fd58
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-09-11 06:03:40 +00:00
Andre Hartmann
d1b997474d CppLocatorFilter: Add highlighting auto-tests
Change-Id: Ibd5b8318040876b46bfb14561c69019abd8dd8b7
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-09-10 09:09:05 +00:00
Andre Hartmann
92daed1f6c CppLocatorFilter: Fix highlighting in extra info column
Given the following example:

  typedef int value;
  void value_test(void) {}
  void test(value v) {}

searching for "value" findes both candidates; and
for the locator filters "m" and "." highlighting
already worked fine.

For the locator filter ":", however, the arguments
are displayed in the extraInfo column. To get proper
highlighting here, we have to repeat the regexp match
in this column.

While fixing that, make sure that full-qualified
searches (separated by "::") are still highlighted
properly.

For the Clang Code Model, there is still a bug not
addressed by this patch:

 Ctrl+K with ". value" -> "value" isn't highlighted yellow.

Change-Id: Idd5eeeedb893151cd5c7f70f6b11397db788b706
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-09-10 08:05:18 +00:00
Eike Ziller
8452264a18 CppTools: Move QtVersion and BuildTargetType
QtVersion to utils/cpplanguage_details.h which already contains similar
flags.

BuildTargetType to ProjectExplorer, next to BuildTargetInfo (but not in the
same header to not pull that in everywhere).

Removes dependency on ProjectPart from RawProjectPart.

Change-Id: I5791065e4266f20c2657ee4b1b594df04b238a1c
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-09-10 07:31:21 +00:00
Eike Ziller
c7e3bbcd11 CppTools: Remove dependency of RawProjectPart to ProjectFile
The feature to category files to ProjectFiles was used by the qmake
project manager to specify if the file is "active", and by the Qbs
project manager to avoid unnecessary MIME type checking.

Make these two different use-cases explicit in the API.

Change-Id: Ia5a7da37f100149366fc75060fe04687e15f2bd3
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-09-03 13:15:31 +00:00
Sona Kurazyan
8e31932c29 Remove usages of deprecated APIs of QLayout
Replaced:
  QLayout::setMargin() -> QLayout::setContentsMargins()
  QLayout::margin() -> QLayout::getContentsMargins()

Task-number: QTBUG-76491
Change-Id: If28ef6910b3afe5d04e4746b74f9362a3e3b3c8e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-09-02 13:01:07 +00:00
Marco Bubke
20a304c8e0 CppEditor: Reuse document for search results
Instead of open a document for every entry we do open it only once per
search. For that we sort the entries by file path, so that they are clustered
together and reuse the last document if the path hasn't changed. This can
improve the calculations of the search results drastically.

Change-Id: I9c9c1e387624297d84c6a2ca6edb6130f739d295
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-08-29 07:53:24 +00:00
Leander Schulten
75a065d3d1 DoxygenGenerator: Ignore Q_INVOKABLE in front of function declarations
Otherwise the doxygen generation will not work.

Fixes: QTCREATORBUG-12411
Change-Id: I3e887dfeb5caba727da6e56a056c092c5a2e23f9
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-08-27 08:13:35 +00:00
Andre Hartmann
a1db400e65 CppLocatorFilterTest: De-noise
Change-Id: Ie7c8bdb55764a229b24a9acf68d1e93d82f5edef
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2019-08-25 19:18:57 +00:00
Tobias Hunger
0c062e5827 Locator: Do not consider generated files in the project-related searches
It is unlikely that a user will want to look at generated files --
and if she wants to, there is always file search.

Task-number: QTCREATORBUG-20176
Change-Id: Iefb0aece1dbd6b39aa8892388411c10162319102
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-08-22 10:34:55 +00:00
Andre Hartmann
3b41b9b24b Locator: Extract MatchLevel and use it in several filters
... that already used index-based prioritising.

There are a few more with two- or three-level priority,
but these still use the old scheme with multiple lists
good/better/bestEntries and converting them would not
gain much.

Change-Id: I21f7cfe07a3ae8183db9cb62311697d03db6e4da
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-08-15 09:57:46 +00:00
Eike Ziller
857b299356 VcsBase: Make dependency on CppTools optional
The VcsBaseSubmitEditor uses CppModelManager to collect the symbol names
from the affected files for completion in the commit message.

Move the C++ code model code into CppModelManager, register it in the
plugin manager, and call it via QObject means from the submit editor.

This avoids a hard dependency from VcsBase to CppTools.

Change-Id: I2fb34dbef153c1414820d711e7fc5596bcac1691
Reviewed-by: hjk <hjk@qt.io>
2019-08-15 06:27:29 +00:00
Andre Hartmann
56948e75d8 CppLocatorFilter: Simplify priority handling
Change-Id: I612e0cc5e56a50bd6830ae2f25291aaed571ae67
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-07-31 06:32:03 +00:00
hjk
e3b1106afa Compile fix with recent Qt dev
The reasoning in 1b4766e26c did not take into account that the scope
of QT_NO_JAVA_STYLE_ITERATORS may change over time, as done with
f70905448f6 in Qt base.

Change-Id: Ib1966ff26c4d36d5f62e149d6b45baa4aecf825d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-07-29 08:54:18 +00:00
hjk
7ab6783e24 Standardize on int for line and column values
Recently tons of warnings show up for presumably "problematic"
singned <-> unsigned and size conversions.

The Qt side uses 'int', and that's the biggest 'integration surface'
for us, so instead of establishing some internal boundary between
signed and unsigned areas, push that boundary out of creator core code,
and use 'int' everywhere.

Because it reduces friction further, also do it in libcplusplus.

Change-Id: I84f3b79852c8029713e7ea6f133ffb9ef7030a70
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-07-26 09:23:48 +00:00
hjk
2c0b69cdc5 Core: Use more of Utils::FilePath in locator filters
Change-Id: Ie550691861317f2af6f38170b5dfc6413af5954f
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-07-24 07:18:17 +00:00
hjk
e23664cc42 TextEditor: Privatize BaseHoverHandler::decorateToolTip()
Never overridden, and does not look safe to invoke more than once.

Change-Id: If5f3830f3fbf26badb6335443defd628c05cf65a
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: David Schulz <david.schulz@qt.io>
2019-07-24 06:50:34 +00:00
hjk
251287f0d3 Avoid warning on empty expressions
For some reason, Q_UNUSED includes already a semicolon, adding one
on the user side creates an additional empty statement.

Change-Id: I9c5e8fac381345a60792cb75e2938fd53958d3b0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-07-23 11:55:59 +00:00
Nikolai Kosjar
2778a5adab CppTools: Fix updating pending queue in CppLocatorData
Fix that the invocations

  CppLocatorData::onDocumentUpdated(Document{"bla.cpp", revision=5}),
  CppLocatorData::onDocumentUpdated(Document{"bla.cpp", revision=3}),

would add two entries in m_pendingDocuments. The document from the
latter invocation should be ignored due to its outdated revision.

Change-Id: I5e9eb4de77f59633d5525d808bd60ca1259f894d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-07-16 14:02:59 +00:00
Tim Jenssen
333b33edbe Merge remote-tracking branch 'origin/4.10'
Change-Id: Iaf27911e4e9fb762c1a24c84c458462bafe95728
2019-07-12 15:53:56 +02:00
Christian Kandeler
f7520b7d99 Make the project managers tell the code model about include paths
... from the environment.

Fixes: QTCREATORBUG-17985
Change-Id: I9b54e550121cfcc0684a6e173337d59d235c6107
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-07-12 09:13:42 +00:00
Nikolai Kosjar
51cd2885ef CppTools: Allow enabling debugging of locator filter tests by environment
Change-Id: I9786b7c6959b77eebb1bc774d2e7bd4c8ed3edeb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-07-11 14:02:21 +00:00
Joel Smith
8c437362bc C++: Support single quote digit separator in integer literals
C++14 supports the use of single quotes inserted between integer digits
as a separator.  Updates the built-in C++ code model to recognize such
quotes.  This fixes highlighting and indentation issues.

Change-Id: Ic35ce93060b96700a11d108dce1f3cf6c4543632
Fixes: QTCREATORBUG-14939
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-07-09 08:59:23 +00:00
Nikolai Kosjar
69d8b7f739 Clang: Fix tidy checks
generateClangTidyChecks.py generated funny output as it was not
considering new major categories.

Fixes: QTCREATORBUG-22450
Change-Id: Ibd6d0cc7539c9fb846caacbe936770d0c960f04f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-07-09 06:54:23 +00:00
hjk
9703f2e948 CppTools: Avoid some deprecation warnings
Change-Id: I0726bbcf9fd3992312e5980bd176ce85903f27a9
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-07-05 12:32:33 +00:00
Tim Jenssen
1df6443d4a Merge remote-tracking branch 'origin/4.10'
Conflicts:
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/libs/utils/synchronousprocess.cpp
	src/plugins/baremetal/iarewtoolchain.cpp
	src/plugins/cmakeprojectmanager/cmakeproject.cpp
	tests/unit/unittest/CMakeLists.txt

Change-Id: I124ad492df403286751e175d27fe36487ddf6d07
2019-07-04 15:17:55 +02:00
hjk
6a58666f44 More Utils::toSet/toList
... and unrelated cosmetic changes.

Change-Id: I591b17fd5289831e701b683f8fb47816efd1fa67
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-07-04 12:28:38 +00:00
hjk
b9d6721be8 ProjectExplorer: Reduce ProjectExplorer::configureAsExampleProject()
... to the bits that are actually used.

Change-Id: I39a6ed1f4136d75b776bb89eec6165479097a4ec
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-07-01 10:05:19 +00:00
Eike Ziller
10098b2508 Merge remote-tracking branch 'origin/4.10'
Conflicts:
	CMakeLists.txt
	tests/unit/unittest/unittest.pro

Change-Id: I64296ad31502d9b35012da129a28e9277e9fcf8e
2019-06-28 12:50:03 +02:00
Nikolai Kosjar
c54ef80a4e CppTools: Ignore -f[no-]keep-inline-dllexport
Fixes: QTCREATORBUG-22452
Change-Id: Ic17e6331e92f23c31f4f7319257f2d09c66af8a4
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2019-06-26 06:37:18 +00:00
Nikolai Kosjar
e9e8852f50 CppTools: Handle not only "-std=X" but also "--std=X"
Fixes: QTCREATORBUG-22444
Change-Id: Iedb0b17a26724d0cc8233a3bad273f3e6bd7462d
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2019-06-25 12:29:07 +00:00
Eike Ziller
5455234308 Merge remote-tracking branch 'origin/4.10'
Conflicts:
	src/libs/utils/consoleprocess.h

Change-Id: I771630cb4dc60a9e87e9d30d6295040c27348d8c
2019-06-20 11:03:05 +02:00
Cristian Adam
60c2aae023 qtcreator: Set thread pool stack size to 2MiB
Visual C++ sets 1MiB as stack size, macOSX has 512KiB.
Both crash with a specified project.

MinGW sets 2MiB as stack size, the specified project loads
just fine.

Fixes: QTCREATORBUG-22496
Change-Id: I6f19e74a681977e4fe1dceee292ea9c838999a1a
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-06-19 14:38:49 +00:00
Nikolai Kosjar
c22e9cea13 CppTools: Stop printing "Skipping file X"
We already put it into "General Messages".

Change-Id: I9756fbe5c5f641cd83ab39c8ef0fff83ad63a85d
Reviewed-by: David Schulz <david.schulz@qt.io>
2019-06-19 08:33:48 +00:00
Eike Ziller
917636b88b Merge remote-tracking branch 'origin/4.10'
Conflicts:
        src/libs/utils/consoleprocess.h
        src/libs/utils/consoleprocess_unix.cpp
        src/libs/utils/consoleprocess_win.cpp
        src/plugins/projectexplorer/devicesupport/sshdeviceprocess.cpp
        src/tools/clangrefactoringbackend/source/symbolscollector.cpp
        tests/unit/mockup/projectexplorer/project.h

Change-Id: I8d10f26b9bcb54829ba31cdc2272885691df1e16
2019-06-18 12:30:55 +02:00
Eike Ziller
b02f4ae615 Merge remote-tracking branch 'origin/4.9' into 4.10
Change-Id: I6f1bc9381dc8c0ce8abc5a6c006087076d8fc1bc
2019-06-18 11:48:32 +02:00
Eike Ziller
a2cfa43468 Fix expansion of %DATE% in license template
If the format contains '/', that must be escaped to avoid the expander
to interpret that as regexp style replacement.

Task-number: QTCREATORBUG-22440
Change-Id: Iaa6c0ae0aa74a055a30b3c0413e325c497f9310f
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-06-18 09:45:06 +00:00
Tobias Hunger
6796a5edcd Extract heuristics to detect framework paths from CppRawProjectPart
Move the code into a separate function of CppRawProjectPart so that
it can be used by the project managers to do the framework detection
magic as well.

Change-Id: I80b9fdadb25005c7e089cb45429c91dd8549eecc
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2019-06-14 09:29:19 +00:00
Nikolai Kosjar
e32fcbfbd1 CppTools: Add logging to built-in indexer
This might help to identify problematic files.

Change-Id: I76848e6ca12a654c8426cf0d73b50612273d48c3
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2019-06-11 10:56:17 +00:00
Cristian Adam
f50859e856 CMake build: Add unittest CMake build files
On MinGW 8.1 I get the following after running ctest -j 40

99% tests passed, 35 tests failed out of 2631

Change-Id: I2c3ce7940b036e52ef393feab5837886355e7b5a
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2019-05-29 13:46:25 +00:00
Alessandro Portale
0933c20de8 connect() to ambiguous signals/slots: Replace static_cast with QOverload
Change-Id: I473d7a2a16509cee944a2a21b022a3f6f02cfd8d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-05-28 14:07:03 +00:00
hjk
473a741c9f Utils: Rename FileName to FilePath
More in line with QFileInfo terminonlogy which appears to be
best-of-breed within Qt.

Change-Id: I1d051ff1c8363ebd4ee56376451df45216c4c9ab
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-05-28 12:23:26 +00:00
hjk
19e1cf1520 Replace uses of qVariantFromValue with QVariant::fromValue
Deprecated in Qt 5.14, alternative has been around since Qt 4 at least.

Change-Id: I4e3a53c289088368609e0d0ce2405a832d311308
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2019-05-27 12:33:29 +00:00
Eike Ziller
6fb9bf453f CMake build: Add ability to disable building of individual plugins
Adds a cache entry "BUILD_PLUGIN_${NAME}", defaulting to ON which
can be set to OFF to disable building of a plugin.

Adds a extend_qtc_plugin function that should be used to add
properties to a plugin after add_qtc_plugin, instead of the
standard CMake functions target_... . The new function results
in a no-op if the plugin was disabled.

Change-Id: I57f6799620aea0aaa8b56acead4815ccced95911
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-05-23 11:13:21 +00:00
Nikolai Kosjar
975173af11 CodeAssist: Ensure perfect match for keywords
...as otherwise the completion windows stays open and gets in the way.

Fixes: QTCREATORBUG-21767
Change-Id: Ib0a841b9d9de52109439f067c466478744361814
Reviewed-by: David Schulz <david.schulz@qt.io>
2019-05-23 08:08:30 +00:00
Christian Stenger
1433a83805 CppTools: Fix build for old compiler
Change-Id: Ia245e9867c4fffe256b0da5708542c88d73ae069
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2019-05-22 05:03:36 +00:00
Nikolai Kosjar
f7b3e0a6c2 CppTools: Show more project part details in inspector dialog
Change-Id: Ic7c94c9cd83f73cad0603ceb75836fa21768a649
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2019-05-21 09:19:05 +00:00
hjk
535f0da977 Utils: Make FileName::shortNativePath a member
Change-Id: If1ab02ae9dc7efb97792cdf3bbdce3bba18b3e3d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-20 13:07:38 +00:00