1. 12 Nov, 2015 2 commits
  2. 11 Nov, 2015 1 commit
  3. 10 Sep, 2015 1 commit
  4. 31 Aug, 2015 1 commit
  5. 09 Jun, 2015 1 commit
  6. 27 May, 2015 1 commit
  7. 20 May, 2015 1 commit
  8. 15 May, 2015 2 commits
  9. 05 May, 2015 1 commit
  10. 28 Apr, 2015 2 commits
    • Orgad Shaneh's avatar
      C++: Fix instantiation of typedefed type in block · 6a9bd957
      Orgad Shaneh authored
      
      
      Use-case:
      template<typename T>
      struct Temp { T t; };
      
      struct Foo { int bar; };
      
      void func()
      {
          typedef Foo *pointer;
          Temp<pointer> temp;
          temp.t->bar; // bar not highlighted
      }
      
      Task-number: QTCREATORBUG-14351
      Change-Id: I13ca6145a0069bbc7a7207f69b43011c69ec72c7
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@theqtcompany.com>
      6a9bd957
    • Orgad Shaneh's avatar
      C++: Fix specialization resolution for nested types · ad4cb444
      Orgad Shaneh authored
      
      
      Use-cases:
      
      template<typename T>
      struct Traits { typedef typename T::pointer pointer; };
      
      template<typename _Tp>
      struct Traits<_Tp*> { typedef _Tp *pointer; };
      
      struct Foo { int bar; };
      
      // 1
      template<typename T>
      class Temp
      {
      protected:
         typedef Traits<T> TraitsT;
      
      public:
         typedef typename TraitsT::pointer pointer;
         pointer p;
      };
      
      void func()
      {
         Temp<Foo *> t;
         t.p-> // complete
      }
      
      // 2
      class Temp2
      {
      protected:
         typedef Foo *FooPtr;
         typedef Traits<FooPtr> TraitsT;
      
      public:
         typedef typename TraitsT::pointer pointer;
         pointer p;
      };
      
      void func2()
      {
         Temp2 t;
         t.p-> // complete
      }
      
      Task-number: QTCREATORBUG-14141
      Change-Id: Id3459671117c0c81bcde7c9714b42750634c0225
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@theqtcompany.com>
      ad4cb444
  11. 23 Apr, 2015 1 commit
  12. 22 Apr, 2015 1 commit
  13. 13 Mar, 2015 1 commit
  14. 04 Feb, 2015 1 commit
    • Orgad Shaneh's avatar
      C++: Remove unneeded qualifications · 65e7db42
      Orgad Shaneh authored
      
      
      Mostly done using the following ruby script:
      Dir.glob('**/*.cpp').each { |file|
        next if file =~ %r{src/shared/qbs|/qmljs/}
        s = File.read(file)
        s.scan(/^using namespace (.*);$/) {
          ns = $1
          t = s.gsub(/^(.*)\b#{ns}::((?!Const)[A-Z])/) { |m|
            before = $1
            char = $2
            if before =~ /"|\/\/|\\|using|SIGNAL|SLOT|Q_/
              m
            else
              before + char
            end
          }
          if t != s
            puts file
            File.open(file, 'w').write(t)
          end
        }
      }
      
      Change-Id: I6fbe13ddc1485efe95c3156097bf41d90c0febac
      Reviewed-by: default avatarNikolai Kosjar <nikolai.kosjar@theqtcompany.com>
      65e7db42
  15. 23 Jan, 2015 1 commit
  16. 16 Jan, 2015 1 commit
  17. 09 Oct, 2014 1 commit
  18. 25 Sep, 2014 2 commits
  19. 25 Aug, 2014 1 commit
    • Nikolai Kosjar's avatar
      C++: Base parsing on editor document instead of widget · 89bd4ee3
      Nikolai Kosjar authored
      
      
      This mainly takes CppEditorSupport apart.
      
      * Parsing is now invoked by CPPEditorDocument itself by listening to
        QTextDocument::contentsChanged().
      
      * Upon construction and destruction CPPEditorDocument creates and
        deletes an EditorDocumentHandle for (un)registration in the model
        manager. This handle provides everything to generate the working copy
        and to access the editor document processor.
      
      * A CPPEditorDocument owns a BaseEditorDocumentProcessor instance that
        controls parsing, semantic info recalculation and the semantic
        highlighting for the document. This is more or less what is left from
        CppEditorSupport and can be considered as the backend of a
        CPPEditorDocument. CPPEditorDocument itself is quite small.
      
          * BuiltinEditorDocumentProcessor and ClangEditorDocumentProcessor
            derive from BaseEditorDocumentProcessor and implement the gaps.
      
          * Since the semantic info calculation was bound to the widget, it
            also calculated the local uses, which depend on the cursor
            position. This calculation got moved into the extracted class
            UseSeletionsUpdater in the cppeditor plugin, which is run once the
            cursor position changes or the semantic info document is updated.
      
          * Some more logic got extracted:
      	- SemanticInfoUpdater (logic was in CppEditorSupport)
      	- SemanticHighlighter (logic was in CppEditorSupport)
      
          * The *Parser and *Processor classes can be easily accessed by the
            static function get().
      
      * CppHighlightingSupport is gone since it turned out to be useless.
      
      * The editor dependency in CompletionAssistProviders is gone since we
        actually only need the file path now.
      
      Change-Id: I49d3a7bd138c5ed9620123e34480772535156508
      Reviewed-by: Orgad Shaneh's avatarOrgad Shaneh <orgads@gmail.com>
      Reviewed-by: default avatarErik Verbruggen <erik.verbruggen@digia.com>
      89bd4ee3
  20. 04 Jul, 2014 1 commit
  21. 13 Jun, 2014 1 commit
  22. 05 Jun, 2014 1 commit
  23. 23 May, 2014 2 commits
  24. 26 Mar, 2014 1 commit
  25. 25 Mar, 2014 1 commit
  26. 12 Mar, 2014 1 commit
  27. 08 Jan, 2014 1 commit
  28. 16 Dec, 2013 1 commit
  29. 03 Dec, 2013 1 commit
  30. 29 Nov, 2013 1 commit
  31. 16 Oct, 2013 1 commit
  32. 26 Aug, 2013 1 commit
  33. 20 Aug, 2013 1 commit
  34. 18 Jun, 2013 1 commit
    • Przemyslaw Gorszkowski's avatar
      C++: add support for local types · 68d6a762
      Przemyslaw Gorszkowski authored
      
      
      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: default avatarErik Verbruggen <erik.verbruggen@digia.com>
      68d6a762
  35. 06 Jun, 2013 1 commit