- Apr 09, 2014
-
-
Nikolai Kosjar authored
This reverts commit 5d76b433 since it might lead to an infinite loop. Task-number: QTCREATORBUG-11999 Change-Id: I12c7f3afc4aa53a83ddc2bf2d33eb76c29b747ee Reviewed-by:
Eike Ziller <eike.ziller@digia.com> Reviewed-by:
Orgad Shaneh <orgads@gmail.com>
-
- Apr 04, 2014
-
-
Przemyslaw Gorszkowski authored
The parent of instantiation of nested class of template class should be the instantiation of enclosing template class. Task-number: QTCREATORBUG-11752 Change-Id: I8875c738848b85731f5ea88a60da190b4b0ad18f Reviewed-by:
Orgad Shaneh <orgads@gmail.com> Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com> Reviewed-by:
Eike Ziller <eike.ziller@digia.com>
-
- Mar 26, 2014
-
-
Przemyslaw Gorszkowski authored
The case when anonymous class is inside function. Fixed: * highlighting * completion Task-number: QTCREATORBUG-11711 Change-Id: Ic8fc5fdfb1aed62a74bf148ab7ed449d08214dda Reviewed-by:
Orgad Shaneh <orgads@gmail.com> Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com> Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Mar 25, 2014
-
-
Przemyslaw Gorszkowski authored
Case when nested class declaration contains object name for this class. Example: void fun() { struct S { int i; } s; s.i; } Fixes: * highlighting * completion * tests Task-number: QTCREATORBUG-11710 Change-Id: I32e234f57655c388a87a199edc8be750d7bf823f Reviewed-by:
Orgad Shaneh <orgads@gmail.com> Reviewed-by:
Przemyslaw Gorszkowski <pgorszkowski@gmail.com> Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
Przemyslaw Gorszkowski authored
The binding in a block should not be used as an instantiationOrigin, because it will be deleted if it does not contain any blocks or namespaces or classes or enums. Instead of that we should look for first enclosing class or namespace. Task-number: QTCREATORBUG-11424 Change-Id: I0fc6e935495478f71372b0fe6f611887f45b2eda Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Mar 12, 2014
-
-
Przemyslaw Gorszkowski authored
A member of nested anonymous class should be visible as a member of enclosing class(if there is no declaration of this nested anonymous class). Fix: * marking * find usage * follow symbol * completion Task-number: QTCREATORBUG-10876 Task-number: QTCREATORBUG-11170 Change-Id: If5b4d198e9075f2a8aa899ae59190f2c05f7b1ff Reviewed-by:
Orgad Shaneh <orgads@gmail.com> Reviewed-by:
Przemyslaw Gorszkowski <pgorszkowski@gmail.com> Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Jan 24, 2014
-
-
Orgad Shaneh authored
Discarded during merge from 3.0 Task-number: QTCREATORBUG-5456 Change-Id: I0bb4756e3cdf3c87a4c2b0fbfe6953faaa5e1c52 Reviewed-by:
Przemyslaw Gorszkowski <pgorszkowski@gmail.com> Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Jan 21, 2014
-
-
Orgad Shaneh authored
Task-number: QTCREATORBUG-5456 Change-Id: I0bb4756e3cdf3c87a4c2b0fbfe6953faaa5e1c52 Reviewed-by:
André Hartmann <aha_1980@gmx.de> Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Jan 08, 2014
-
-
Robert Loehning authored
Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a Reviewed-by:
Leena Miettinen <riitta-leena.miettinen@digia.com> Reviewed-by:
Kai Koehne <kai.koehne@digia.com>
-
- Jan 07, 2014
-
-
Nikolai Kosjar authored
QVERIFY/QCOMPARE are meant to be called in the test function so that on failure they just can "return" and thus skip subsequent code. Since we use reusable test code in the test functions (the *TestCase classes), we need to ensure that on failure no further test code is executed. This mostly inlines the run function of the test classes into the constructor. Change-Id: I320ee032bdde0174ddfe3fdf3f9e18e19abf1d7f Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
Nikolai Kosjar authored
* Unify class names * Fix coding style Change-Id: I7498192ba9e6b9fc0e97d3d4f0dbb30f1853a0c9 Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
Nikolai Kosjar authored
Move common functionality of the 12 test classes into base classes. Change-Id: If64d3cec876807ac6f991151189860a99b8ff4ca Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Dec 28, 2013
-
-
Orgad Shaneh authored
Change-Id: If088533d0b51d1750e3273d7ab732dffd110ec85 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
Orgad Shaneh authored
The bug was fixed long time ago, the test is missing a semicolon Change-Id: I0236048d2da059fe208591469fb69541705463cf Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
Orgad Shaneh authored
Comma is used to separate tests on command-line Change-Id: I785d2137d54b0e1e4edbbd940042dc926719dcfc Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Dec 23, 2013
-
-
Orgad Shaneh authored
Change-Id: I9a5bf4705da5ca88776dec70057da2c64e4c1494 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
Orgad Shaneh authored
Mostly done using the following Ruby script: Fname = 'src/plugins/cpptools/cppcompletion_test.cpp' s = File.read(Fname) mod = s.gsub(/(?<declaration>void CppToolsPlugin::test_(?<test_name>[^(]+)\(\)\n\{)(?<body>.*?\n)\}/m) { |func| match = $~ declaration = match['declaration'] body = match['body'] test_name = match['test_name'].sub('_data', '') final = body.gsub(/(?:completions.clear\(\);\s+)?(?: +)[^\n]* =\n(?<code>.*?);\s*(?<completions>(?:completions.append\(QLatin1String\("[^"]*"\)\);\s*)*)QTest::newRow\("case: (?<name>.+?)"\)\s*<< code << _\("(?<prefix>[^"]+)"\) << completions;/m) { m = $~ res = " QTest::newRow(\"#{test_name}: #{m['name']}\") << _(\n#{m['code'].rstrip}\n ) << _(\"#{m['prefix']}\") << (QStringList()" m['completions'].scan(/completions.append\((.+)\);/) { |comp| res << "\n << #{comp[0]}" } res + ');' }.gsub(/(?: +)[^\n]* =\n(?<code>.*?);\n\s*CompletionTestCase test\(.+?, "(?<prefix>.+?)"\);\s*QStringList expected;\s*(?<completions>(?:expected.append\(QLatin1String\("[^"]*"\)\);\s*)*)const QStringList completions = test.getCompletions\(\);\s*QCOMPARE\(completions, expected\);/m) { m = $~ res = " QTest::newRow(\"#{test_name}\") << _(\n#{m['code'].rstrip}\n ) << _(\"#{m['prefix']}\") << (QStringList()" m['completions'].scan(/expected.append\((.+)\);/) { |comp| res << "\n << #{comp[0]}" } res + ');' }.gsub(/(?: +)[^\n]* =\n(?<code>.*?);\n\s*CompletionTestCase test\(.+?(?:, (?<prefix>".+?"))?\);\s*(?:const )?QStringList completions = test.getCompletions\(\);\s*QCOMPARE\(completions.size\(\), \d+\);(?<completions>(?:\s*QVERIFY\(completions.contains\([^\n]+\);)*)\n/m) { |mm| m = $~ res = " QTest::newRow(\"#{test_name}\") << _(\n#{m['code'].rstrip}\n ) << _(#{m['prefix']}) << (QStringList()" m['completions'].scan(/QVERIFY\(completions.contains\((.+?)\)\);/) { |comp| res << "\n << #{comp[0]}" } res + ");\n" }.gsub(/(?: +)[^\n]* =\n(?<code>.*?);\n\s*CompletionTestCase test\(.+?(?:, (?<prefix>".+?"))?\);\s*bool replaceAccessOperator = false;\s*const QStringList completions = test.getCompletions\(\&replaceAccessOperator\);\s*QCOMPARE\(completions.size\(\), \d+\);(?<completions>(?:\s*QVERIFY\(completions.contains\([^\n]+\);)*)\s*QVERIFY\((?<replace>!?)[^)]*\);\n/m) { |mm| m = $~ res = " QTest::newRow(\"#{test_name}\") << _(\n#{m['code'].rstrip}\n ) << _(#{m['prefix']}) << (QStringList()" m['completions'].scan(/QVERIFY\(completions.contains\((.+?)\)\);/) { |comp| res << "\n << #{comp[0]}" } res + ")\n << #{m['replace'].empty?};\n" } if final == body or final['QTest::addColumn'] declaration + final + "}" else final end }.gsub(/QTest::newRow\("([^"]+)"/) { |m| name = $1 if name.size > 73 space = name[0..73].rindex(/[ _]/) "QTest::newRow(\"#{name[0..space]}\"\n \"#{name[space+1..-1]}\"" else m end }.gsub(/\s+QTest::newRow/, "\n\n QTest::newRow") if mod != s File.open(Fname, 'wt').write(mod) end Change-Id: Id6bfb03cdf31ac27b36028fcdc861c340a5398f4 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
Orgad Shaneh authored
For reasonable diff on following commit Change-Id: I97e121355279f9166cea2f500cf2d4df5fafaa32 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
Orgad Shaneh authored
Change-Id: I409a00b869a95dff2d69c9744da75c324c82776a Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
Orgad Shaneh authored
Change-Id: I3c5f42de464a5607f1caa6a48d881c5a4a113ec3 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
Orgad Shaneh authored
Change-Id: I2526daeaf54f7f8d4b808cf556cff9242adaa391 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Dec 18, 2013
-
-
Eike Ziller authored
Doesn't really make sense to have the additional IDocument *editorDocument() method. Change-Id: I0a7420eb1afaa76f63c3f7e9c4b373acf624ffb9 Reviewed-by:
Eike Ziller <eike.ziller@digia.com>
-
- Nov 22, 2013
-
-
Przemyslaw Gorszkowski authored
Example: namespace NS { struct S { int member; void fun(); }; } using NS::S; void S::fun() { mem// ctrl+space } Task-number: QTCREATORBUG-9037 Change-Id: I5a568be1b5c44deb02caa04996167a88a9c5d4d7 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Oct 18, 2013
-
-
Nikolai Kosjar authored
This reverts commit 5be56c07 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>
-
- Oct 17, 2013
-
-
Przemyslaw Gorszkowski authored
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>
-
- Oct 08, 2013
-
-
Orgad Shaneh authored
Deleting an editor while currentEditorChanged is apparently not a good idea. Use a queued connection instead. This reverts commits 243a6259 and d9602ca5. Task-number: QTCREATORBUG-10190 Task-number: QTCREATORBUG-10235 Change-Id: Iccbee25fb77714963faa6f7184d1f5f53ed348a6 Reviewed-by:
Eike Ziller <eike.ziller@digia.com> Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com> Reviewed-by:
Jarek Kobus <jaroslaw.kobus@digia.com>
-
Orgad Shaneh authored
Deleting an editor while currentEditorChanged is apparently not a good idea. Use a queued connection instead. This reverts commits 243a6259, 447c4ed3, d9602ca5 and 31034870. Change-Id: Iccbee25fb77714963faa6f7184d1f5f53ed348a6 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com> Reviewed-by:
Eike Ziller <eike.ziller@digia.com>
-
- Sep 30, 2013
-
-
Nikolai Kosjar authored
Starting with commit 243a6259 EditorManager::closeEditors() does not delete the editors anymore, but calls deleteLater(). When the call returns, all kind of checks fail since the editor widget destructor was not yet called. Fixed by providing and calling Core::Tests::closeAndDeleteEditors(), which explicitly sends QEvent::DeferredDelete to the widget. Change-Id: I3287abbe74ccf7d7a18b997a847701c8be17cb55 Reviewed-by:
Orgad Shaneh <orgads@gmail.com> Reviewed-by:
Eike Ziller <eike.ziller@digia.com> Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Sep 03, 2013
-
-
Alexey Semenko authored
Since fuzzy completions are allowed, the lexicographically first proposal is not necessarily most relevant. The patch modifies sorting of proposals so that the exact match and continuations go first, and fuzzy completions follow. Moreover, being a continuation seem to be a more important characteristic of a proposal, than being it a function argument or keyword etc. That's why the check for continuation is placed before the check for order. Task-number: QTCREATORBUG-8737 Task-number: QTCREATORBUG-9236 Change-Id: I89aae9d2ce6bfa59af7c2f75e6f3af00212008ca Reviewed-by:
André Hartmann <aha_1980@gmx.de> Reviewed-by:
Alexey Zhondin <lexxmark.dev@gmail.com> Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Aug 30, 2013
-
-
hjk authored
Change-Id: I3255a0150cd9a730336456c5a9f986eb74fefbff Reviewed-by:
Tobias Hunger <tobias.hunger@digia.com>
-
- Aug 14, 2013
-
-
Przemyslaw Gorszkowski authored
Change-Id: I564ea9cccc24509957481b6726f25833f35a4da4 Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Aug 05, 2013
-
-
Przemyslaw Gorszkowski authored
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>
-
- Jul 31, 2013
-
-
Nikolai Kosjar authored
* Open the files in the cpp editor, so preprocessing will take place * Remove duplicated code * Fix coding styles issues Change-Id: Ic8bffcbc5a4ac5aca76bc55880d33c3b55f0944c Reviewed-by:
Fawzi Mohamed <fawzi.mohamed@digia.com>
-
Nikolai Kosjar authored
See also http://woboq.com/blog/how-qt-signals-slots-work-part2-qt5.html Task-number: QTCREATORBUG-8540 Change-Id: Iccad837d7a0da982e7d7a1eda95ff1828cf1dce6 Reviewed-by:
Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by:
Fawzi Mohamed <fawzi.mohamed@digia.com> Reviewed-by:
Christian Kandeler <christian.kandeler@digia.com>
-
- Jul 25, 2013
-
-
Nikolai Kosjar authored
Change-Id: Ic7e634e4249fb64edbc2daceb65ec8e9b5f0f8b9 Reviewed-by:
Orgad Shaneh <orgads@gmail.com> Reviewed-by:
Aurindam Jana <aurindam.jana@digia.com>
-
- Jul 12, 2013
-
-
Przemyslaw Gorszkowski authored
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>
-
Przemyslaw Gorszkowski authored
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>
-
- Jul 09, 2013
-
-
Eike Ziller authored
That is what it actually is, wrt how Qt API calls it. Change-Id: Ied02055debf6aad75556b0d9d22e8ba2f72be555 Reviewed-by:
Eike Ziller <eike.ziller@digia.com>
-
- Jun 25, 2013
-
-
Nikolai Kosjar authored
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 50a900e5)
-
Nikolai Kosjar authored
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 8f1b6656)
-