Commit Graph

1024 Commits

Author SHA1 Message Date
Christian Kandeler
f1da03c73b qbs project files: Make use of new qbsSearchPaths property.
Change-Id: I396d970fafea1fd0b4c4d73883796662a1d0064b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-09 18:08:56 +02:00
hjk
2187195995 CPlusPlus: Remove unneeded utf-8 roundtrip.
Change-Id: Iae3dcba305bac8a632c1ae94586fd687509ed92d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-10-07 21:05:54 +02:00
hjk
4258715731 CPlusPlus: Make Environment::hashCode more local.
The function call itself shows in the critical path. Let's shave
off a few cycles by making it easier inlinable.

Change-Id: I14b06de27e99fa00f3be757193f2037792b18e01
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-10-07 21:05:31 +02:00
Erik Verbruggen
ba2d7a4fa7 C++: Only parse with appropriate defines for open editors.
If two files from different (sub-)projects include the same header file,
and the defined macros differ for both files, the header file will be
parsed with only the appropriate macros for the including file.

Task-number: QTCREATORBUG-9802
Task-number: QTCREATORBUG-1249

Change-Id: I560490afa287b3bb1e863bce1bb4f57af36ad56e
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-10-01 10:33:51 +02:00
Joerg Bornemann
f8eae78fc8 C++: fix typo
Change-Id: I57394be40b85eb907d9c7d0ebb713685f9651a4d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-09-27 16:35:17 +02:00
Erik Verbruggen
8350c4bdc2 C++: fix multi-byte character handling in input.
Temporary fix: if a single byte is found with the highest bit set, then
convert from utf8 to latin1. This can be removed when the lexer can
handle multi-byte characters.

Task-number: QTCREATORBUG-10141
Change-Id: I36a17aa18bd1b2378f12d0cecf4fd4957b38d8f2
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2013-09-23 14:55:28 +02:00
Joerg Bornemann
2fd3c8bd9c C++: fix ResolveExpression for string literals
ResolveExpression now correctly handles wide and
UTF-n string literals.

Change-Id: Ide2373ffdc4c9e1e4b53236a8e2782653d15e687
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-09-17 15:03:43 +02:00
Friedemann Kleint
1901a1c7d4 Fix MSVC-64 warnings about size_t -> int truncations in C++-lib.
Change-Id: Ibe6f41ac15df1ec685b0d0766ff568abf6f3ae7e
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-09-12 15:34:09 +02:00
Erik Verbruggen
f7c68f6baf C++: change working-copy to work on UTF-8 encoded QByteArrays.
These not only take less space than UTF-16 encoded QStrings, but due to
the caching in the CppEditorSupport also take less time to build.

This patch also fixes a number of possible encoding issues, where files
and constant strings were (falsely) assumed to be UTF-8.

Change-Id: Ib6f91c9a94ebed5b5dfbd4eb2998825c62c72784
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-09-11 09:43:14 +02:00
Oswald Buddenhagen
4855871607 Merge remote-tracking branch 'origin/2.8' 2013-08-27 10:48:08 +02:00
Nikolai Kosjar
54a12ebb79 C++: Fix crash in LookupContext::lookupType()
Task-number: QTCREATORBUG-10019
Change-Id: I7970c2f1ea3044e11250b8dbaf9b29ba3e7f34ef
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-08-23 11:27:09 +02:00
Nikolai Kosjar
fd9293dd0a CppTools: CppPreprocessor: Track also unresolved includes
Change-Id: Ia36e7e7142dbc030a428369ed04e76e70e8eef0b
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-08-22 11:57:27 +02:00
Christian Kandeler
0dab64b6cf Qbs project files: Use groups wherever applicable.
Provides better structuring of source files.

Change-Id: Ic2d0094312bb7c8da01a1f38270564407fdbefce
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-21 17:30:36 +02:00
Oswald Buddenhagen
c2e90c360b Merge remote-tracking branch 'origin/2.8'
Conflicts:
	src/plugins/cpptools/cppcompletion_test.cpp
	src/plugins/cpptools/cpptoolsplugin.h
	src/plugins/projectexplorer/customtoolchain.cpp
	src/plugins/vcsbase/command.cpp

Change-Id: Ie7b3c9e136c0748b41320227c757471259339b48
2013-08-21 14:39:18 +02:00
Przemyslaw Gorszkowski
3256b7b2ef C++: fix matching type with using from other namespace
example code:
struct S { int s; };

namespace std
{
    template <typename T>
    struct shared_ptr
    {
        T* operator->();
    };
}

namespace NS
{
    using std::shared_ptr;
}

int main()
{
    NS::shared_ptr<S> p;// for this shared_ptr
    return 0;
}

Fixes:
* find usages
* follow symbol
* highlighting
* marking

Task-number: QTCREATORBUG-7978
Change-Id: I28994c960b87ddd400e1d7b860fca6c6683bbb5a
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-08-20 14:13:19 +02:00
Nikolai Kosjar
f4c6eae3bb C++: Fix crash in typedef resolving
Task-number: QTCREATORBUG-9990

Change-Id: I8153f18c8b7402c5cb3edbe41098792be183de44
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-08-16 15:04:56 +02:00
hjk
92a37e2614 CppRewriter: Replace std::__debug with std:: when beautifing types
This only affects the visual presentation in Locals and Expressions
and also lets more autotests pass it when compiled with -D_GLIBCXX_DEBUG

Change-Id: I2672aa8610e8f6652606faefd858ecb450cef199
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-08-16 14:38:01 +02:00
hjk
958a1d2d4e Debugger: Implement dumper for std::unordered_{set,map}
Task-number: QTCREATORBUG-9855

Change-Id: I985745530d93e1c191442431a7a9449a1c4c059a
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-08-16 11:11:21 +02:00
Przemyslaw Gorszkowski
bfbf93e64f C++: fix auto completion for template parameters
Fix auto completion for the case when template parameter should be
found somewhere of scope of template instantiation declaration.
Example:
struct A
{
    void foo();
    struct B
    {
        int b;
    };
};

template<typename T>
struct Template
{
    T* get() { return 0; }
    T t;
};

void A::foo()
{
    Template<B> templ;
    templ.get()->//no autocompletion
    templ.t.//no autocompletion
}

Task-number: QTCREATORBUG-8852
Task-number: QTCREATORBUG-9169
Change-Id: I56b40776e66740f995ae6fc5d69e3c50139a3af2
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-08-05 10:50:38 +02:00
Eike Ziller
5563604876 Merge remote-tracking branch 'origin/2.8' into HEAD 2013-07-18 11:54:02 +02:00
Leena Miettinen
35211c04b1 Doc: move docs from h files to cpp files
QDoc does not look for docs in header files.

Change-Id: I4530233d647fdc2f5ca44c73aee7e0125df07979
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-07-18 10:25:28 +02:00
Orgad Shaneh
ad9e7ccab6 Fix coding style for else statements
Change-Id: I1309db70e98d678e150388c76ce665e988fdf081
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-07-17 11:11:25 +02:00
Nikolai Kosjar
f7e26babba C++: Fix names of functions dealing with enclosing scopes
...in order to better tell apart the type related functions
isScope()/asScope() and the functions dealing with enclosing scopes:

    * scope() --> enclosingScope()
    * setScope() --> setEnclosingScope()
    * resetScope() --> resetEnclosingScope()

Change-Id: Id743a7d1b6a1a1a0ffcd8568cbd8ebbdfc16eaa1
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
2013-07-16 08:26:19 +02:00
Przemyslaw Gorszkowski
3cde52846e C++: fix local types and members
It fixes code model when we have local type which contains a member
of other type, e.g.:
struct OtherType { int otherTypeMember; };
void foo()
{
    struct LocalType
    {
        int localTypeMember;
        OtherType ot;
    };

    LocalType lt;
    lt.ot.//no code completion
}

Change-Id: I018f492a6c48bfcbba0ef376ef005825e2b13f35
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-07-12 16:12:59 +02:00
Przemyslaw Gorszkowski
46461fc183 C++: code completion for lambda calls
support for lambdas, e.g.:
struct S { int bar; };
[]() { return new S; } ()->bar;
[] { return new S; } ()->bar;
[]() ->S* { return new S(); } ()->bar;
[]() throw() { return new S(); } ()->bar;
[]() throw()->S* { return new S(); } ()->bar;

Task-number: QTCREATORBUG-9523
Change-Id: I43fbf6f0ee0bb11411c53c984df75ef33a276466
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-07-12 12:47:09 +02:00
Eike Ziller
ab0c3da08f Merge remote-tracking branch 'origin/2.8'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/projectexplorer/projectexplorer.cpp

Change-Id: I37e550646f877b50693043894976a693ac22ad5e
2013-07-11 08:02:41 +02:00
Nikolai Kosjar
20f3502754 C++: Introduce caches to Clone* classes
Done-with: Erik Verbruggen <erik.verbruggen@digia.com>
Task-number: QTCREATORBUG-8747

Change-Id: I7cb694f8180c6aa932b07066d98d095340111324
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: xSacha
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-07-09 18:31:14 +02:00
Eike Ziller
79fbb0db04 Merge remote-tracking branch 'origin/2.8' into HEAD
Conflicts:
	src/libs/cplusplus/FindUsages.cpp
	tests/auto/cplusplus/findusages/tst_findusages.cpp
	tests/auto/debugger/tst_dumpers.cpp

Change-Id: I20e2002c7b25cc25d8120922fa9b52e59db498e3
2013-07-09 11:04:59 +02:00
Erik Verbruggen
d70a33c0d0 C++: fix scope matching for templates in FindUsages
When the cursor is on the name of declaration of a templated function,
then since f93758b8e1 the scope returned
by Document::findScopeAt is the scope of the template declaration.
Before it was the parent scope of the template declaration.

The check in FindUsages::checkCandidates did not check all combinations
of template(-child symbol) scopes for the searched symbol and its
occurrences.

Task-number: QTCREATORBUG-9749

Change-Id: Idc84a2ba718721ce54683a67635a93352784ddd1
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-07-08 15:05:10 +02:00
Eike Ziller
a98fe15fe5 Merge remote-tracking branch 'origin/2.8' into HEAD
Conflicts:
	qbs/pluginspec/pluginspec.qbs

Change-Id: Ic8e992623b9eda8913ee473c779a8df27643ccc9
2013-07-08 15:01:17 +02:00
hjk
d2469bc9e8 CppRewriter: Treat libc++'s std::__1:: as std:: for debugger display
Change-Id: Iabc1330633e5568b7c94059d4286c93adfecb1a2
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-07-08 11:07:42 +02:00
Eike Ziller
8685ff8a28 Merge remote-tracking branch 'origin/2.8' into HEAD
Conflicts:
	qtcreator.pri
	qtcreator.qbs

Change-Id: I5d2018d3437b99bcdffa92bf1a212f42923c4fad
2013-07-03 16:55:27 +02:00
Erik Verbruggen
a8a49c9851 CDB: fix breakpoint location in catch clauses.
Task-number: QTCREATORBUG-7336

Change-Id: I926e82499325e4fe38e25cc7a6158050f7fc0e82
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-07-02 11:40:23 +02:00
Eike Ziller
c9128b7fdd Merge remote-tracking branch 'origin/2.8'
Conflicts:
	qtcreator.pri
	qtcreator.qbs

Change-Id: I1aa7506519e0f461f33921ca20ce1b51adb5783f
2013-06-27 14:24:57 +02:00
Eike Ziller
22e31f2b45 Merge remote-tracking branch 'origin/2.7' into 2.8
Conflicts:
	src/libs/cplusplus/LookupContext.cpp
	src/plugins/plugins.pro
	src/plugins/qnx/Qnx.pluginspec.in
	src/plugins/qnx/qnx_dependencies.pri

Change-Id: I6c406c2503845b08c4852db99c64491a325629c7
2013-06-26 15:28:42 +02:00
Nikolai Kosjar
a3cb35edbe C++: Handle recursive using/typedef declarations
Remember using/typedef declarations we have already looked up and
stop if we try it again.

Change-Id: I91bf0aef4df18539a47d015f0113543aef1f692a
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
(cherry picked from commit 50a900e509)
2013-06-25 11:04:21 +02:00
Nikolai Kosjar
8aa8f22536 C++: Handle recursive auto declarations
Remember auto declarations we have already looked up and stop if we try
it again.

Task-number: QTCREATORBUG-9503

Change-Id: I989b11609c98bf197ce916d79c9d452294355053
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
(cherry picked from commit 8f1b665667)
2013-06-25 11:04:17 +02:00
Eike Ziller
e8469a2bab Merge remote-tracking branch 'origin/2.8'
Conflicts:
	src/plugins/fakevim/fakevimhandler.cpp

Change-Id: I8101f18b87859924644471817d4f1408790d5628
2013-06-25 10:14:14 +02:00
Nikolai Kosjar
021dbc2e96 CppEditor: Respect whitespace in operator names for more quick fixes
* Affected quick fixes: InsertDefFromDecl, MoveFuncDefOutside
* Fix also reformating pointer declaration of operator functions for
  qualified name ids

Change-Id: I6a7578f496221557d103f5fdbb5dacc9540ee779
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-06-25 09:57:23 +02:00
Leena Miettinen
41411165ba Doc: use standard wording in \brief commands
QDoc does some magic with the \class and \namespaces
and \brief commands, so the following wording must be used:
"The xxx class yyy ..."

Change-Id: Id231f30e8464898b776888d5423523de404aae34
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-06-20 11:22:47 +02:00
Przemyslaw Gorszkowski
68d6a762d9 C++: add support for local types
This change addes support for class, enum definition inside blocks({}) or
functions, e.g.:
void f()
{
	struct S
	{
		int bar;
	};
	S s;
	s.bar;
}

It fixes:
* code completion
* highlighting
* follow symbol
* marking
* find usages

It fixes also problem with namespace aliases inside blocks or functions.

This change can have also impact on performance(there are additional processing)

Task-number: QTCREATORBUG-166 (namespace aliases inside function/block)
Task-number: QTCREATORBUG-3620
Task-number: QTCREATORBUG-6013
Task-number: QTCREATORBUG-8020
Change-Id: Iaea6c6dfe276f1d7b2279b50bdd2e68e375d31eb
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-06-18 10:09:51 +02:00
Przemyslaw Gorszkowski
94dd4e740a C++: fix 'find usages' for templates
Fix find usages for template class(class name and template parameters)
or template function(template parameters).

Fixed:
* marking
* find usages
* follow symbol

Change-Id: I22fdbc11260cbd8ee9aafdd76aaeee0f4f49f9fd
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-06-17 11:04:47 +02:00
Eike Ziller
afe1d5ee65 Merge remote-tracking branch 'origin/2.8'
Conflicts:
	src/plugins/coreplugin/documentmanager.cpp

Change-Id: I6dc025bc0f31eb694c8d9e2dd4ea5cc888ee8a94
2013-06-14 16:21:04 +02:00
Erik Verbruggen
271c3f45a4 C++: Fix preprocessor blocked macro bug.
By lexing the first token after a macro call (meaning: the token after
the closing parenthesis (which was passed to handleFunctionLikeMacro
which in turn pushed it back into the token buffer)), a token buffer
might be popped, which unblocks the macro that generated the actual
param pack. The effect was that if this happens in the expansion of a
recursive macro (with parameters!), the preprocessor ended up in an
infinite loop.

Task-number: QTCREATORBUG-9015
Task-number: QTCREATORBUG-9447

Change-Id: I0d83c59188ec15c4a948970e9fa944a17d765475
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-06-11 16:57:07 +02:00
Nikolai Kosjar
50a900e509 C++: Handle recursive using/typedef declarations
Remember using/typedef declarations we have already looked up and
stop if we try it again.

Change-Id: I91bf0aef4df18539a47d015f0113543aef1f692a
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-06-11 16:30:58 +02:00
Nikolai Kosjar
8f1b665667 C++: Handle recursive auto declarations
Remember auto declarations we have already looked up and stop if we try
it again.

Task-number: QTCREATORBUG-9503

Change-Id: I989b11609c98bf197ce916d79c9d452294355053
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-06-11 16:30:20 +02:00
Nikolai Kosjar
e3bc84c414 C++: Record also unresolved paths for includes
Change-Id: Id107b6c1f34f594c5a01502c156963c964235ed7
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2013-06-11 15:54:52 +02:00
Eike Ziller
1b3bb5cb7e Consistently give qbs groups a name.
These nicely show up in the project tree in Qt Creator then.

Change-Id: I9782f5953d61940e6c2a0f61f07bb15aaeba49d9
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-06 13:40:51 +02:00
Eike Ziller
a503f8bee0 Merge remote-tracking branch 'origin/2.8'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/libs/extensionsystem/pluginmanager.cpp
	src/plugins/coreplugin/documentmanager.cpp
	src/plugins/fakevim/fakevimhandler.cpp

Change-Id: Ibc2adc40bad6f10df94c50d66e78dc3f4bcb84c0
2013-06-05 14:19:43 +02:00
Erik Verbruggen
ca291fbc7b C++: fix functionAt(), moved it, and added test.
Thanks to Jesper K. Pedersen for the fix!

Change-Id: Ie49c3352e26a9632b1500596b00d559bfe932dff
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
2013-06-04 15:24:33 +02:00