Commit Graph

1594 Commits

Author SHA1 Message Date
Eike Ziller
e7ea94b688 Merge remote-tracking branch 'origin/3.2'
Conflicts:
	src/plugins/git/gerrit/gerritparameters.cpp
	src/plugins/git/gerrit/gerritplugin.h
	src/plugins/git/gitclient.cpp

Change-Id: Ie7719cfe45489b72d64260e729dcce3760f33bec
2014-07-17 12:42:04 +02:00
Nikolai Kosjar
dc59d28736 C++: Check for Function::name() before using it
Lambdas do not have a name.

Change-Id: Ifda4816c62dcfe19bdbb1649dc1caf408e056b37
Task-number: QTCREATORBUG-12686
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2014-07-17 12:09:36 +02:00
Tobias Hunger
4d429751a4 CppTools: Export licensetemplate and licensetemplatepath as variables
Change-Id: Id86b72b275d3381a32003c0439ff2d6b3b6ab505
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-07-15 14:45:25 +02:00
Eike Ziller
ca59e8b53a Merge remote-tracking branch 'gerrit/3.2'
Change-Id: I8e200637585eeea739840868d8450cba955df058
2014-07-08 13:38:15 +02:00
Nikolai Kosjar
170389cf40 CppTools: Remove a QTC_ASSERT
Triggering the action "Rename Symbol Under Cursor" before the
SnapshotUpdater::update() call in parse() of cpptoolseditorsupport.cpp
led to the failing assertion.

Triggering the action in the initialization phase of the editor is not
supported, therefore replace the assert with a silent if.

Change-Id: Ib911b8aa038ae3d9ea28c720853780b11dfa0fb7
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-07-08 10:44:39 +02:00
Przemyslaw Gorszkowski
059cfde677 C++: template base class and default argument for template class
Fix code completion for case:
struct Foo
{
    int bar;
};

template <typename T>
struct Base
{
    T t;
};

template <typename T1 = Foo>
struct Derived : Base<T1>
{};

int main()
{
    Derived<> foo;
    foo.t.// no code completion
    return 0;
}

Task-number: QTCREATORBUG-12606
Change-Id: Iadf2fae172739d0a5844c6b437fd2686616e64e7
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-07-08 09:53:48 +02:00
Eike Ziller
0016e385ab Merge remote-tracking branch 'gerrit/3.2'
Change-Id: I2567b8f19e502777f6566ce573a6970fb62a7521
2014-07-07 17:57:39 +02:00
Przemyslaw Gorszkowski
4aa4e64b77 C++: base class and default argument for template class
Fix code completion in case:
struct Foo
{
  int bar;
};

template <typename T1 = Foo>
struct Derived : T1 { };

int main()
{
  Derived<> foo;
  foo. // members from Foo are not proposed
  return 0;
}

Task-number: QTCREATORBUG-12605
Change-Id: Ibe35c7b9a161e789057a4518c72390ac52489a3e
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-07-07 13:26:14 +02:00
Eike Ziller
62aea4728f Merge remote-tracking branch 'origin/3.2'
Change-Id: I05f76a4f5134c4edd91a79b757bcce9d6e7c258b
2014-07-07 09:19:03 +02:00
Nikolai Kosjar
1b31286932 CppTools: Fix compilation with MSVC
Change-Id: I81e966414f7b2060b86879b696918227eac13a73
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
2014-07-04 14:59:06 +02:00
Erik Verbruggen
3d33886e53 C++: fix include/framework path handling.
Instead of having two lists of paths, now only one list is used where
both include paths and framework paths can be mixed. This reflects the
way the compiler is invoked, and retains the (correct) search order.

Task-number: QTCREATORBUG-11599
Change-Id: I373953e3e305df5b7a0d10920e12d146584adf9f
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-07-04 13:51:36 +02:00
hjk
c898fff111 CppTools: Compile fix for namespaced Qt
Change-Id: I21b0af020938db77e92661d6c481e60df3e87bef
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-07-04 13:28:21 +02:00
Nikolai Kosjar
8ff225d9d6 C++: Fix (Find)LocalSymbols for lambda parameters
Change-Id: I5cb69749b4f15e4f70dea410aa6f943c4189c502
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-07-04 12:35:13 +02:00
Nikolai Kosjar
995d1f777f C++: Add basic LocalSymbols test
Change-Id: I199e912203f329ec9b8bed2eb105e4a56f729e7d
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-07-04 12:35:05 +02:00
Nikolai Kosjar
d4ce510974 C++: Fix completion for lambda parameters
Change-Id: I6db51aeba328dbb69ec59082a70be7bc2d95699b
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-07-04 12:34:57 +02:00
Nikolai Kosjar
f5cad52a09 CppTools: Remove unused members
Change-Id: Id8402ac62ea73b98a6ab1d641d45dff621a096c4
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-07-04 12:34:47 +02:00
Thiago Macieira
56ddd1947a Use the functions in QRefCount to check if the QString is in use
QStringLiteral() returns a string that has a refcount of -1 and it must
be kept. There is no way to determine if it's still in use, so we'll
just assume it is. Any QStringLiteral inserted into the structure will
stay there forever.

On the other hand, we must not accept unsharable strings, so Q_ASSERT on
that.

Change-Id: I5fbdc1046f0f00319f27fdfb7aa3ff87371ea668
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-07-01 20:58:14 +02:00
Christian Kandeler
93304df038 Always pass Core::Id by value.
Currently we pass in some places by value, elsewhere by const ref and
for some weird reason also by const value in a lot of places. The latter
is particularly annoying, as it is also used in interfaces and therefore
forces all implementors to do the same, since leaving the "const" off is
causing compiler warnings with MSVC.

Change-Id: I65b87dc3cce0986b8a55ff6119cb752361027803
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-01 11:52:08 +02:00
hjk
2cd9a97510 Utils: Remove function wrapper
This was an intentional, time-limited workaround that has
served its purpose now that we require C++11.

Change-Id: I96ece9c21bd405d281fd381bd9b87edc00c5ee84
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2014-06-30 10:44:07 +02:00
Orgad Shaneh
7fbd4b7c6a Lambda cleanup
Change-Id: Ia7f1d530e01d4ae3990713e23d672249d9489561
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2014-06-25 14:08:40 +02:00
Orgad Shaneh
ea4b4bff40 C++: Split designator AST
Change-Id: I9bfed2023624c818c0f35f24476693cffeaf2bbc
Reviewed-by: Wang Hoi <wanghoi@126.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-06-24 16:16:58 +02:00
Anton Kalmykov
496cfdd21d Add syntax highlight for primitive data types
Syntax highlight rules for keywords are changed to highlight control
keywords and primitive data types separately.

Change-Id: Ifb25be7a97b92589030aa190641320c233dc7f2d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-06-24 15:44:13 +02:00
Nikita Baryshnikov
12103e0f67 Reinvent deprecated qSort as Utils::sort
Change-Id: I4f6011cc2b6127037249aabc2426a88ad7108ebf
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-19 14:00:32 +02:00
Tim Jenssen
1121cac755 compile fix for msvc2010
Change-Id: Ifdcf16d12af06c7f3da6feb133e139ffa0acdb11
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-06-18 14:31:01 +02:00
Erik Verbruggen
2b0954ca7d C++: Remove class/function/enum extraction from CppLocatorData.
With every single change in a document the corresponding IndexItem
elements were extracted and put into an vector. The locator filters
then used these lists to iterate over and filter them.

This change removes that extraction, and the filtering now directly
iterates over the IndexItem elements with a callback.

The exception is the current document filter, because it also queries
for all declarations. Adding this to the model would result in a higher
memory usage, while that information is only used by this filter.

Change-Id: Ibe445cc11e9f68b5d807348fd46c7cac4aff4c85
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-06-18 11:05:02 +02:00
Erik Verbruggen
13d2d499ab C++: move post-sourceprocessing action into callback.
Change-Id: Iac6c9fe1ada27ac0d96417e490cc5723e6969541
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-06-18 11:04:35 +02:00
Wang Hoi
c56b999fff C: Parser: Support parsing of c99 designated initializers
In case:

    int a[6] = { [4] = 29, [2] = 15 };
    struct point { int x, y; };
    struct point p = { .y = 3, .x = 2 };

Grammar change when c99 language feature is enabled:
old grammar:

    braced-init-list :: '{' initializer-list '}'

new grammar:

    braced-init-list :: '{' designated-initializer-list '}'
    designated-initializer-list :: designated-initializer (',' designated-initializer )*
    designated-initializer :: designator* initializer-clause
    designator :: '.' identifier
                | '[' constant-expression ']'

Task-number: QTCREATORBUG-1902
Change-Id: Ib99d6f553f8d0f50ba3eff86f3a2e86d73372426
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-06-17 16:23:23 +02:00
Erik Verbruggen
4b3d8e8278 C++ tests: increase verbosity to simplify debugging.
Change-Id: Ib92418898d627b9b07b861a0255684c8f925f814
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-06-17 10:36:07 +02:00
Nikolai Kosjar
cfe3c0be34 CppTools: Remove test file after test
In test_includeGroups_detectIncludeGroupsByIncludeType the test file was
not removed and thus subsequent and isolated executions of this test
failed.

Change-Id: I5eeb4f004f5b146ac794ca913b4092629131fca3
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-06-16 14:44:24 +02:00
Erik Verbruggen
17febac88b C++: Rename ModelItemInfo to IndexInfo.
And move it into its own header and source files.

Change-Id: I37401badd819e028e1d767425759dc0ff27afe31
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-06-16 12:08:12 +02:00
Eike Ziller
2786250c17 Merge remote-tracking branch 'origin/3.1'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/shared/qbs

Change-Id: Iba59e41db72e2afdf594f1f7003215d7d8d1e6d3
2014-06-13 10:51:51 +02:00
Nikolai Kosjar
ea55d627d7 CppTools: Start to use editor document
This is only a small refactoring step towards a editor-free
CppEditorSupport.

Left are m_editor references that need to be addressed.

No functional change.

Change-Id: I9fc7b0abfe88f5b9a6ce3f57a5c4a922ae953ddf
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-06-12 17:03:07 +02:00
Nikolai Kosjar
a6e04c363f CppTools: CppHighlightingSupport takes a BaseTextDocument
...instead an ITextEditor.

The ITextEditor was only used to access the file path and QTextDocument
via the BaseTextEditorWidget.

Change-Id: Idef2b8162b992fe3718e16e2a046e2ff214846f2
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-06-12 17:02:52 +02:00
Nikolai Kosjar
fc7f5ba364 CppTools: CMM::completionAssistProvider takes a mimeType
No need to pass more than needed.

Change-Id: I047cc44f17342999e0809d022df35ba9a4a8dfb8
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-06-12 17:02:36 +02:00
Orgad Shaneh
399967d08b CppTools: Add dummy macro for __thiscall
Change-Id: If2ccfe9ff40539404ed0f40c06c71a73ee661e2d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-06-12 16:01:01 +02:00
Nikolai Kosjar
5f7f6f877a CppTools: Remove some duplicate code
Change-Id: I83c0bbcf221fd163cd2514a9d23983b82e1f04fd
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-06-10 15:13:16 +02:00
Nikolai Kosjar
11845cd3dc CppTools: Unexport some internal classes.
Unexports CppModelManager, CppSourceProcessor and CppToolsPlugin.

Now only some constructor signatures mention "Internal::" in the
exported symbols:

% nm --extern-only --demangle ./lib/qtcreator/plugins/libCppTools.so | grep "Internal::"
CppTools::CppClassesFilter::CppClassesFilter(CppTools::Internal::CppLocatorData*)
CppTools::CppClassesFilter::CppClassesFilter(CppTools::Internal::CppLocatorData*)
CppTools::CppEditorSupport::CppEditorSupport(CppTools::Internal::CppModelManager*, TextEditor::BaseTextEditor*)
CppTools::CppEditorSupport::CppEditorSupport(CppTools::Internal::CppModelManager*, TextEditor::BaseTextEditor*)

Change-Id: I167c21a6dc03cf02230c95fde66cf404e40df36f
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-06-10 15:12:50 +02:00
Nikolai Kosjar
9921960a72 Cpp{Editor,Tools}: Move tests for IncludeGroups to CppTools
They belong there. This will also kill the CppSourceProcessor dependency
from CppEditor.

Change-Id: Ic2ae6b0c6f0913d913636be61df194846985d1ce
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-06-10 15:12:38 +02:00
Przemyslaw Gorszkowski
b90452e309 C++: fix nested anonymous with __attribute__
Task-number: QTCREATORBUG-12345
Change-Id: Ib2316ebdc81393b38185b9cb659fb85b78753e7b
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-06-06 15:38:02 +02:00
Nikolai Kosjar
6a12f3b9a0 CppTools: Clean up CppSourceProcessor
This mostly makes sourceNeeded() a bit more readable.

Change-Id: I8da40090fb499837ec56276e7a4273211920c2d2
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-06-04 16:29:24 +02:00
Nikolai Kosjar
ec97d967e6 CppTools: Rename CppPreprocessor to CppSourceProcessor
...since it does quite a bit more than only preprocessing, as the name
suggests. We use that class to process source files in general. The
output is not a preprocessed source, but a set of CPlusPlus::Documents
with symbols.

Change-Id: I787d0f22f9f042ddf0c99e8c2f0bdb9aa7001735
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-06-04 16:28:35 +02:00
Erik Verbruggen
e3f340f71a C++: Add child items to ModelItemInfo.
Change-Id: I849e0819a54dc8d6c49675c78d6668daf5c40af4
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: David Schulz <david.schulz@digia.com>
2014-06-04 10:55:40 +02:00
Nikolai Kosjar
ff1203de9e C++: Fix Macrouse::utf16charsBegin()
This caused displaced highlighting of macro uses after #if constructs.

MacroUse::utf16charBegin() was based on the last "continuation token",
which was wrong.

Change-Id: I89983d82fcf804ba853c04a59a7533c489785d05
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-06-03 14:54:17 +02:00
Alessandro Portale
6facb4391a CppTools: Move setting category icon from Core to CppTools
This image is used exclusively in the CppTools plugin,
thus belong into CppTools resources.

Change-Id: I8bbc553fb16897b74487ad27a941776b83f14d77
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2014-06-03 10:50:01 +02:00
Orgad Shaneh
04e8b332bb Unify Utils::ChangeSet usages
* Remove using Utils::ChangeSet from header files
* Remove unused typedef for Range
* Add it only in source files that contain many occurrences

Change-Id: I60a8b77e2d5a46431507f53b6d60186d511ccf30
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-06-02 23:48:14 +02:00
Tim Jenssen
1a284be2ef CppTools: Fix compilation with MSVC
Change-Id: I6a304b978738573bfbea7797b3c3d610abde7374
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-06-02 20:42:50 +02:00
Erik Verbruggen
20c4f523ab C++: pass ModelItemInfo around wrapped in a QSharedPointer.
Change-Id: I36162ea589ad01cf2ba79fc931732422fc1e6983
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2014-06-02 16:22:17 +02:00
Nikolai Kosjar
e8fab22afb C++: Disable "Replace Dot for Arrow" auto-correction for ObjC sources
In the light of Obj-C properties this seems to annoy more than to help.

Change-Id: I48f92d505035369f48e8798d0972ef00306bdde0
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-06-02 15:48:48 +02:00
Nikolai Kosjar
954c61ff58 CppTools: Fix compilation with Qt4
Change-Id: I76c6ea3557c46fbca4ccb0fb293c6ed6f03e96df
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-06-02 12:03:36 +02:00
Robert Loehning
388462d178 CppTools: Fix compilation with MSVC2010
error: C2872: 'Internal' : ambiguous symbol
could be 'CppTools::Internal'
or       'CPlusPlus::Internal'

Change-Id: Iff623400a370b056fb30838e0b97bdc9d6898d00
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-05-30 13:50:23 +02:00