1. 28 Jul, 2016 4 commits
    • Nikolai Kosjar's avatar
      Clang: Process distinct documents concurrently · 38f72855
      Nikolai Kosjar authored
      Speed ups the typical use cases that can profit from this:
       * Change a header file and switch then to source file
       * Open documents one after the other (Follow Symbol)
       * Change documents visible in splits (e.g. by refactoring action)
       * Restore a session with multiple splits
      
      Fixes the test ClangIpcServer.GetCodeCompletionDependingOnArgumets.
      
      Change-Id: Ia575bd59780df14146dfc091a4d48794e4a0543d
      Reviewed-by: Tim Jenssen's avatarTim Jenssen <tim.jenssen@qt.io>
      38f72855
    • Nikolai Kosjar's avatar
      Clang: Extract TranslationUnitCore and (re)parse explicitly · 90f94363
      Nikolai Kosjar authored
      Extract TranslationUnitCore, which is the API for the high-level
      operations we need. TranslationUnit does not call any clang_* functions
      anymore, except the one needed for disposing the CXTranslationUnit - for
      now, we keep TranslationUnit the owner of TranslationUnitCore.
      
      TranslationUnitCore will be passed on to the worker threads.
      
      With this, the current "TranslationUnit" looses its meaning. We will
      rename it to "Document" in a follow-up change.
      
                                  ***
      
      TranslationUnit::cxTranslationUnit does not implicitly
      creates/parses/reparses anymore. We use more verbose update operations
      now.
      
      The test ClangIpcServer.GetCodeCompletionDependingOnArgumets fails now
      because of this - CodeCompleter::completeHelper() does not recreate the
      translation unit anymore, thus working on the old data.
      
      This will be addressed in a follow-up change.
      
      Change-Id: I6213d6f1609cd3c9a54666c84cb8b623b2fefe1c
      Reviewed-by: Tim Jenssen's avatarTim Jenssen <tim.jenssen@qt.io>
      90f94363
    • Nikolai Kosjar's avatar
      Clang: Extract TranslationUnitUpdater · dc734f45
      Nikolai Kosjar authored
      ...in preparation for concurrent processing of documents.
      
      Parsing and reparsing is handled by TranslationUnit. Since we will do
      this in a different thread, extract the core logic into the new class
      TranslationUnitUpdater, so that we can prepare the necessary data for
      the run and then later incorporate the results of the parse/reparse.
      
      Change-Id: Ic9d936d193ee6795a755f0cfc38c0b2a7bd402cc
      Reviewed-by: Tim Jenssen's avatarTim Jenssen <tim.jenssen@qt.io>
      dc734f45
    • Nikolai Kosjar's avatar
      Clang: Prepare for multi-threading · 606d4118
      Nikolai Kosjar authored
      * Make the necessary data implicitly shared since it might get
        accessed/modified from two different threads with follow-up changes.
        This applies for UnsavedFiles/UnsavedFile and ProjectPart::arguments().
      
      * Avoid returning references.
      
      Change-Id: I98842c1cb90ae0d344a15c63b72cbc89568722d3
      Reviewed-by: Tim Jenssen's avatarTim Jenssen <tim.jenssen@qt.io>
      606d4118
  2. 27 Jul, 2016 1 commit
    • hjk's avatar
      Utils: Streamline TreeModel API · 53415cec
      hjk authored
      The LeveledTreeModel case is general enough to cover
      the UniformTreeModel case, so merge them and rename to
      TreeModel. The former TreeModel is now BaseTreeModel.
      
      BaseTreeModels should not be instantiated directly,
      a tree model with non-uniform basic items is available
      as TreeModel<>.
      
      Done-with: Eike Ziller <eike.ziller@qt.io>
      Change-Id: I64a65617ab68c0cde39cf65f4bc092ef808ee6fb
      Reviewed-by: Christian Stenger's avatarChristian Stenger <christian.stenger@qt.io>
      53415cec
  3. 26 Jul, 2016 5 commits
  4. 25 Jul, 2016 9 commits
  5. 24 Jul, 2016 1 commit
  6. 22 Jul, 2016 20 commits