summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus
Commit message (Collapse)AuthorAgeFilesLines
* Fix some typosSergio Ahumada2014-03-051-3/+3
| | | | | | Change-Id: I3be73c2a4d256a0d28e863fd2517a4d7442b34d8 Reviewed-by: Mitch Curtis <mitch.curtis@digia.com> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
* C++: Record macro uses in #if defined(MACRO)Orgad Shaneh2014-02-271-1/+4
| | | | | Change-Id: I4d99053f540073483c16ce842426bf8cd3def421 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: Fix line value for tokens generated by function-like macroOrgad Shaneh2014-02-271-1/+1
| | | | | | | | baseLine is used for generating new tokens, which are later added m_state.m_lineRef - 1 again Change-Id: I33928a90988e8d4c317ae460647f16f87da5b155 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: Fix handling of #undefOrgad Shaneh2014-02-271-2/+11
| | | | | | | | | | | * If the macro is defined before, track its reference * Synchronize environment line before calling remove, which currently sets incorrect line * Set macro offset Task-number: QTCREATORBUG-10454 Change-Id: I480d16423a976a025bb8c71046610a46f9d7b0fd Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* C++: Fix preprocessing of uncontinued line-escapingOrgad Shaneh2014-02-241-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The following snippet demonstrates the problem: --- snip --- // comment \ #include <something.h> ... class Foo { ... }; --- snap --- If there are >=9 empty/preprocessor lines, the preprocessed source becomes // comment \ # 12 "file.cpp" ... The lexer considers the line marker as a continued C++ comment, and highlighting is broken Change-Id: I30a2fc7d19b279316e9273697179c90d81099573 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* C++: Preserve comments after preprocessor directivesOrgad Shaneh2014-02-241-1/+11
| | | | | | Task-number: QTCREATORBUG-11216 Change-Id: Iac10e75f0f5c504b79e8466607dc1f478e578f99 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* Preprocessor: Adjust lines also for multiline C++ commentsOrgad Shaneh2014-02-241-1/+1
| | | | | Change-Id: I87d6e76be3030e617603209c3a1b8b3c476cf1f6 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* qml: moving most of ModelManager logic to ModelManageInterfaceFawzi Mohamed2014-02-194-2/+143
| | | | | | | | | | | | | | Currently ModelManager contains lot logic, but as it sits in QmlJSTools it is not possible to use it in standalone tests. Moving most of the logic to ModelManagerInterface (and cleanup) to allow better testing, and refactoring. This introduces a dependency of the qmljs lib on the cplusplus lib Also a (small) part of the CppTool::ModelManagerInterface has been moved to CPlusPlus::CppModelManagerBase to remove the dependency on CppTools to gather the Qml types exposed from C++. Change-Id: Icad7fe96dfd0f1a2b1058d82bd98c77c40aa5e9d Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
* Move the textual simplification of container type to debugger againhjk2014-01-082-228/+0
| | | | | | | | This is the only user, and likely will stay so for a while, and eases the linking of the debugger autotests. Change-Id: I822fa892f105a5b7985370b26e50aa94cac74bb3 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* Merge remote-tracking branch 'origin/3.0'Eike Ziller2014-01-0864-64/+64
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: share/qtcreator/debugger/dumper.cpp share/qtcreator/debugger/dumper_p.h share/qtcreator/debugger/test/main.cpp src/plugins/debugger/gdb/classicgdbengine.cpp src/plugins/debugger/gdb/pythongdbengine.cpp src/plugins/debugger/lldblib/guest/lldbengineguest.cpp src/plugins/debugger/lldblib/guest/lldbengineguest.h src/plugins/debugger/lldblib/guest/main.cpp src/plugins/debugger/lldblib/ipcengineguest.cpp src/plugins/debugger/lldblib/ipcengineguest.h src/plugins/debugger/lldblib/ipcenginehost.cpp src/plugins/debugger/lldblib/ipcenginehost.h src/plugins/debugger/lldblib/lldbenginehost.cpp src/plugins/debugger/lldblib/lldboptionspage.cpp src/plugins/qbsprojectmanager/qbsstep.cpp src/plugins/qbsprojectmanager/qbsstep.h src/plugins/qmlprofiler/canvas/qdeclarativecanvas.cpp src/plugins/qmlprofiler/canvas/qdeclarativecanvas_p.h src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp src/plugins/qmlprofiler/canvas/qdeclarativecontext2d_p.h src/plugins/qmlprofiler/canvas/qmlprofilercanvas.cpp src/plugins/qnx/blackberrycheckdevmodestep.cpp src/plugins/qtsupport/debugginghelper.cpp Change-Id: Ie9fd0a885fb6264a6a8a72daee071b75bcbd2e9d
| * Incremented year in copyright infoRobert Loehning2014-01-0864-64/+64
| | | | | | | | | | | | Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* | TypeRewriter: Handle rvalue references correctlyDaniel Teske2014-01-032-2/+2
|/ | | | | | Task-number: QTCREATORBUG-10555 Change-Id: Icb9859f96220f613476c097b747dec8c2d1bc2ed Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
* 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>