1. 04 Jul, 2014 1 commit
  2. 06 Jun, 2014 1 commit
  3. 09 Apr, 2014 1 commit
  4. 04 Apr, 2014 3 commits
  5. 26 Mar, 2014 1 commit
  6. 25 Mar, 2014 2 commits
  7. 12 Mar, 2014 1 commit
  8. 24 Jan, 2014 1 commit
  9. 21 Jan, 2014 1 commit
  10. 08 Jan, 2014 1 commit
  11. 07 Jan, 2014 3 commits
  12. 28 Dec, 2013 3 commits
  13. 23 Dec, 2013 6 commits
    • Orgad Shaneh's avatar
      CppTools: Fix indentation for some completion tests · 90265b76
      Orgad Shaneh authored
      Change-Id: I9a5bf4705da5ca88776dec70057da2c64e4c1494
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@digia.com>
      90265b76
    • Orgad Shaneh's avatar
      CppTools: Make completion tests data-driven · 0909c029
      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: default avatarNikolai Kosjar <nikolai.kosjar@digia.com>
      0909c029
    • Orgad Shaneh's avatar
      CppTools: Reorder completion tests · ed2d9857
      Orgad Shaneh authored
      For reasonable diff on following commit
      
      Change-Id: I97e121355279f9166cea2f500cf2d4df5fafaa32
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@digia.com>
      ed2d9857
    • Orgad Shaneh's avatar
      CppTools: Generalize data-driven test_completion · b0c3a6ba
      Orgad Shaneh authored
      Change-Id: I409a00b869a95dff2d69c9744da75c324c82776a
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@digia.com>
      b0c3a6ba
    • Orgad Shaneh's avatar
      CppTools: Cleanup completion tests #2 · 0204f566
      Orgad Shaneh authored
      Change-Id: I3c5f42de464a5607f1caa6a48d881c5a4a113ec3
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@digia.com>
      0204f566
    • Orgad Shaneh's avatar
      CppTools: Remove superfluous comments from completion tests · 7356987c
      Orgad Shaneh authored
      Change-Id: I2526daeaf54f7f8d4b808cf556cff9242adaa391
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@digia.com>
      7356987c
  14. 18 Dec, 2013 1 commit
  15. 22 Nov, 2013 1 commit
  16. 18 Oct, 2013 1 commit
  17. 17 Oct, 2013 1 commit
    • Przemyslaw Gorszkowski's avatar
      C++: fix endless loop during template instantiation · 5be56c07
      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: default avatarPrzemyslaw Gorszkowski <pgorszkowski@gmail.com>
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@digia.com>
      5be56c07
  18. 08 Oct, 2013 2 commits
  19. 30 Sep, 2013 1 commit
  20. 03 Sep, 2013 1 commit
  21. 30 Aug, 2013 1 commit
  22. 14 Aug, 2013 1 commit
  23. 05 Aug, 2013 1 commit
    • Przemyslaw Gorszkowski's avatar
      C++: fix auto completion for template parameters · bfbf93e6
      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: default avatarNikolai Kosjar <nikolai.kosjar@digia.com>
      bfbf93e6
  24. 31 Jul, 2013 2 commits
  25. 25 Jul, 2013 1 commit
  26. 12 Jul, 2013 1 commit