summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus
Commit message (Collapse)AuthorAgeFilesLines
* Revert "C++: Fix highlighting for lines with predefined macros"Nikolai Kosjar2013-12-032-17/+8
| | | | | | | | | | | | | | | | | | This takes too much memory. For qtcreator.pro the numbers are as follows: Patch applied: ~ 1600MB (RES) Patch reverted: ~ 510MB (RES) This reverts commit 4c2daa90ce558c3b4287edc97127471486a411d9. Task-number: QTCREATORBUG-10973 Change-Id: I843bd7c1ea4a26a1ec55ddc14c2a34a98d040922 Reviewed-by: hjk <hjk121@nokiamail.com> Reviewed-by: Robert Loehning <robert.loehning@digia.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com> Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* CPlusPlus: Remove unneeded declarationshjk2013-12-021-3/+0
| | | | | Change-Id: I5bf4febd1ec3b77e05f883015a99ed019ddfb55c Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: Fix highlighting for lines with predefined macrosNikolai Kosjar2013-11-292-8/+17
| | | | | | | | | | | | | | This adds definitions for the macros __FILE__, __LINE__, __DATE__ and __TIME__ on demand. As a side effect, this also introduces highlighting for the uses of these macros. Task-number: QTCREATORBUG-8036 Change-Id: Ib7546c7d45d2eecbc50c7883fc684e3497154405 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com> Reviewed-by: hjk <hjk121@nokiamail.com>
* Revert "Preprocessor Enginge: fix bug in pp-engine.cpp"Nikolai Kosjar2013-11-291-1/+43
| | | | | | | | | | Breaks highlighting for macros using the predefined macros. This reverts commit 1d834c1126dde58dd71e595b3f5e135cc0ca4dbd. Change-Id: Ic13c407e293a806a63ff30153864530df6a32e47 Reviewed-by: hjk <hjk121@nokiamail.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* Preprocessor Enginge: fix bug in pp-engine.cppSimon Schäfer2013-11-281-43/+1
| | | | | | | | | | | | | Preprocessor variables __LINE__,__FILE__,__TIME__,__DATE__ where destroying the following systems when affected variables were standing within the same line with those variables: * highlighting * refactoring * local renaming Task-number: QTCREATORBUG-8036 Change-Id: I1a4b919d15812872ca5a8e63b1031ec1ab144c22 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* TypePrettyPrinter; Add space to default parameter formattingDaniel Teske2013-11-261-1/+1
| | | | | | Task-number: QTCREATORBUG-10230 Change-Id: Ib93b9438a20f66cd3c9acc0ff074c78fff430337 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* Braces cleanupOrgad Shaneh2013-11-142-8/+4
| | | | | Change-Id: I8413252c90a1487d291f15d92837c30ab697b245 Reviewed-by: hjk <hjk121@nokiamail.com>
* C++: Remember the class a ClassOrNamespace is based onNikolai Kosjar2013-11-122-8/+22
| | | | | Change-Id: I0d333ff9489e46c4fa1923d70ca950f67ffa3f44 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* CppTools: fix inclusion of "injected" defines.Erik Verbruggen2013-10-232-2/+11
| | | | | | | Task-number: QTCREATORBUG-10280 Change-Id: Ibc6ffeedb97a31a35a2d1f00625506f844692e16 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: Limit typedef resolving depthNikolai Kosjar2013-10-181-27/+6
| | | | | | | | | | | This reverts commit 5be56c0 except for its tests. While it fixed the problem described in the bug report, it also introduced regressions. For now, we use a hard limit. Change-Id: I19a85be454e3d7969371707e3eb1c3d42a16ecee Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* CppEditor: Fix crash in CompleteSwitchCaseStatementNikolai Kosjar2013-10-171-0/+4
| | | | | | | Task-number: QTCREATORBUG-10366 Change-Id: I6d5af5e7a59f3867141c8d7f098128d3db532ee5 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* C++: fix endless loop during template instantiationPrzemyslaw Gorszkowski2013-10-171-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | This is the first phase of fixing bug QTCREATORBUG-10320. This change resolves typedefs of template parameters(and resolves problem with endless loop). The next step will be matching appropriate template specialization (this is needed to solve problem with missing code completion). Missing matching: template specialization with the same parameters, e.g.: template <class T1, class T2, class T3> class T { }; template <class T1, class T2> class T<T1, T2, T2> { }; Task-number: QTCREATORBUG-10320 Change-Id: Icb6b539c021b2a67a66db9011a2e627f7d96526b Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com> Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* CPlusPlus: Make (sub-)languague selection more generichjk2013-10-154-58/+28
| | | | | Change-Id: I4e2df6992b446adec662ab07671acd41715e41fd Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* Rename "[Mm]ethod(s)" to "[Ff]unction(s)"Nikolai Kosjar2013-10-102-3/+3
| | | | | | | | | | | Only methods as programming functions are affected. Besides renaming some actions like "Switch Between Function Declaration/Definition" this mostly touches (api) code comments. This is a follow-up patch to commit 872bfb7. Change-Id: Icb65e8d73b59a022f8885b14df497169543a3b92 Reviewed-by: hjk <hjk121@nokiamail.com>
* qbs project files: Make use of new qbsSearchPaths property.Christian Kandeler2013-10-091-1/+1
| | | | | Change-Id: I396d970fafea1fd0b4c4d73883796662a1d0064b Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* CPlusPlus: Remove unneeded utf-8 roundtrip.hjk2013-10-071-0/+1
| | | | | Change-Id: Iae3dcba305bac8a632c1ae94586fd687509ed92d Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* CPlusPlus: Make Environment::hashCode more local.hjk2013-10-072-25/+17
| | | | | | | | 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>
* C++: Only parse with appropriate defines for open editors.Erik Verbruggen2013-10-012-3/+7
| | | | | | | | | | | | 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>
* C++: fix typoJoerg Bornemann2013-09-271-1/+1
| | | | | Change-Id: I57394be40b85eb907d9c7d0ebb713685f9651a4d Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: fix multi-byte character handling in input.Erik Verbruggen2013-09-231-1/+15
| | | | | | | | | | | 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>
* C++: fix ResolveExpression for string literalsJoerg Bornemann2013-09-171-2/+18
| | | | | | | | ResolveExpression now correctly handles wide and UTF-n string literals. Change-Id: Ide2373ffdc4c9e1e4b53236a8e2782653d15e687 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* Fix MSVC-64 warnings about size_t -> int truncations in C++-lib.Friedemann Kleint2013-09-122-7/+7
| | | | | Change-Id: Ibe6f41ac15df1ec685b0d0766ff568abf6f3ae7e Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: change working-copy to work on UTF-8 encoded QByteArrays.Erik Verbruggen2013-09-114-4/+5
| | | | | | | | | | | | 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>
* Merge remote-tracking branch 'origin/2.8'Oswald Buddenhagen2013-08-271-1/+1
|\
| * C++: Fix crash in LookupContext::lookupType()Nikolai Kosjar2013-08-231-1/+1
| | | | | | | | | | | | | | Task-number: QTCREATORBUG-10019 Change-Id: I7970c2f1ea3044e11250b8dbaf9b29ba3e7f34ef Reviewed-by: hjk <hjk121@nokiamail.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* | CppTools: CppPreprocessor: Track also unresolved includesNikolai Kosjar2013-08-226-12/+21
| | | | | | | | | | Change-Id: Ia36e7e7142dbc030a428369ed04e76e70e8eef0b Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* | Qbs project files: Use groups wherever applicable.Christian Kandeler2013-08-211-82/+62
| | | | | | | | | | | | | | Provides better structuring of source files. Change-Id: Ic2d0094312bb7c8da01a1f38270564407fdbefce Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Merge remote-tracking branch 'origin/2.8'Oswald Buddenhagen2013-08-212-1/+41
|\ \ | |/ | | | | | | | | | | | | | | | | 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
| * C++: Fix crash in typedef resolvingNikolai Kosjar2013-08-161-1/+3
| | | | | | | | | | | | | | | | Task-number: QTCREATORBUG-9990 Change-Id: I8153f18c8b7402c5cb3edbe41098792be183de44 Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
| * CppRewriter: Replace std::__debug with std:: when beautifing typeshjk2013-08-161-0/+1
| | | | | | | | | | | | | | | | 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>
| * Debugger: Implement dumper for std::unordered_{set,map}hjk2013-08-161-0/+37
| | | | | | | | | | | | | | | | Task-number: QTCREATORBUG-9855 Change-Id: I985745530d93e1c191442431a7a9449a1c4c059a Reviewed-by: hjk <hjk121@nokiamail.com> Reviewed-by: David Schulz <david.schulz@digia.com>
* | C++: fix matching type with using from other namespacePrzemyslaw Gorszkowski2013-08-201-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | C++: fix auto completion for template parametersPrzemyslaw Gorszkowski2013-08-052-32/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/2.8' into HEADEike Ziller2013-07-184-50/+51
|\ \ | |/
| * Doc: move docs from h files to cpp filesLeena Miettinen2013-07-184-50/+51
| | | | | | | | | | | | | | QDoc does not look for docs in header files. Change-Id: I4530233d647fdc2f5ca44c73aee7e0125df07979 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
* | Fix coding style for else statementsOrgad Shaneh2013-07-179-41/+33
| | | | | | | | | | Change-Id: I1309db70e98d678e150388c76ce665e988fdf081 Reviewed-by: Eike Ziller <eike.ziller@digia.com>
* | C++: Fix names of functions dealing with enclosing scopesNikolai Kosjar2013-07-163-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | ...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>
* | C++: fix local types and membersPrzemyslaw Gorszkowski2013-07-121-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | C++: code completion for lambda callsPrzemyslaw Gorszkowski2013-07-123-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/2.8'Eike Ziller2013-07-111-1/+2
|\ \ | |/ | | | | | | | | | | | | | | Conflicts: qtcreator.pri qtcreator.qbs src/plugins/projectexplorer/projectexplorer.cpp Change-Id: I37e550646f877b50693043894976a693ac22ad5e
| * C++: Introduce caches to Clone* classesNikolai Kosjar2013-07-091-1/+2
| | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/2.8' into HEADEike Ziller2013-07-091-1/+9
|\ \ | |/ | | | | | | | | | | | | | | Conflicts: src/libs/cplusplus/FindUsages.cpp tests/auto/cplusplus/findusages/tst_findusages.cpp tests/auto/debugger/tst_dumpers.cpp Change-Id: I20e2002c7b25cc25d8120922fa9b52e59db498e3
| * C++: fix scope matching for templates in FindUsagesErik Verbruggen2013-07-081-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the cursor is on the name of declaration of a templated function, then since f93758b8e1d68ed28dc1a84b71c906d58784cb70 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>
* | Merge remote-tracking branch 'origin/2.8' into HEADEike Ziller2013-07-081-0/+1
|\ \ | |/ | | | | | | | | | | Conflicts: qbs/pluginspec/pluginspec.qbs Change-Id: Ic8e992623b9eda8913ee473c779a8df27643ccc9
| * CppRewriter: Treat libc++'s std::__1:: as std:: for debugger displayhjk2013-07-081-0/+1
| | | | | | | | | | | | Change-Id: Iabc1330633e5568b7c94059d4286c93adfecb1a2 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* | Merge remote-tracking branch 'origin/2.8' into HEADEike Ziller2013-07-031-0/+1
|\ \ | |/ | | | | | | | | | | | | Conflicts: qtcreator.pri qtcreator.qbs Change-Id: I5d2018d3437b99bcdffa92bf1a212f42923c4fad
| * CDB: fix breakpoint location in catch clauses.Erik Verbruggen2013-07-021-0/+1
| | | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/2.8'Eike Ziller2013-06-274-2/+5
|\ \ | |/ | | | | | | | | | | | | Conflicts: qtcreator.pri qtcreator.qbs Change-Id: I1aa7506519e0f461f33921ca20ce1b51adb5783f
| * Merge remote-tracking branch 'origin/2.7' into 2.8Eike Ziller2013-06-261-1/+0
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | * C++: Handle recursive using/typedef declarationsNikolai Kosjar2013-06-252-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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 50a900e509be2e1f448f29be126ba3b7f8173901)