1. 13 Jan, 2016 1 commit
  2. 16 Dec, 2015 1 commit
  3. 15 Dec, 2015 1 commit
  4. 01 Dec, 2015 1 commit
  5. 16 Nov, 2015 1 commit
  6. 09 Nov, 2015 1 commit
  7. 06 Nov, 2015 1 commit
  8. 14 Oct, 2015 1 commit
    • Nikolai Kosjar's avatar
      CppTools: Fix dead lock on project unloading · 77270648
      Nikolai Kosjar authored
      ...with the clang code model.
      
      In updateProjectInfo() we lock the project mutex and emit a signal.
      However, the correspondig slot in the clang code model will call back
      into a function that needs to lock the mutex, too:
      
          CppTools::CppModelManager::workingCopy // dead locks here
          CppTools::BaseEditorDocumentParser::InMemoryInfo::InMemoryInfo
          ClangCodeModel::Internal::ClangEditorDocumentProcessor::run
          ClangCodeModel::Internal::ModelManagerSupportClang::unregisterTranslationUnitsWithProjectParts
          ClangCodeModel::Internal::ModelManagerSupportClang::onProjectPartsRemoved
           ...
          CppTools::CppModelManager::projectPartsRemoved
          CppTools::CppModelManager::updateProjectInfo // emits here
      
      Fixed by emitting the signal after releasing the mutex.
      
      Change-Id: Id3f3cd22b0604f343ada56ea13c26f0dc1a75bd6
      Reviewed-by: default avatarMarco Bubke <marco.bubke@theqtcompany.com>
      77270648
  9. 12 Oct, 2015 2 commits
    • Nikolai Kosjar's avatar
      CppTools: Make FollowSymbol respect projects · 6b6ad446
      Nikolai Kosjar authored
      Finding the class definition for a forward declaration or finding the
      function definition from its declaration is mostly determined by the
      file iteration order. Documents with the most common path prefix are
      checked first.
      
      This works fine as long as the files of your project have a common
      ancestor. If that's not the case, FollowSymbol might take you to the
      definition within another project.
      
      Fix that issue by considering the project part id when constructing the
      file iteration order. Since the cached file iteration order now depends
      on the projects, ensure to clear it if projects are added, changed or
      removed.
      
      Task-number: QTCREATORBUG-15116
      Change-Id: I529166bac363959c9fee0b946747fd0370a88809
      Reviewed-by: default avatarMarco Bubke <marco.bubke@theqtcompany.com>
      6b6ad446
    • Nikolai Kosjar's avatar
      CppEditor: Move static symbol finder instance to CppTools · 6ced48ea
      Nikolai Kosjar authored
      ...to it can be reused by other clients more easily. Also, in a
      follow-up change it will have a project part dependency that can be
      cleared inside the CppModelManager more easily.
      
      Change-Id: Ic9f2ce5212a94fd05ab0571e9ad99d0a25f5bc5c
      Reviewed-by: default avatarMarco Bubke <marco.bubke@theqtcompany.com>
      6ced48ea
  10. 09 Oct, 2015 1 commit
  11. 06 Oct, 2015 1 commit
  12. 31 Aug, 2015 1 commit
  13. 20 Jul, 2015 2 commits
  14. 08 Jul, 2015 1 commit
  15. 24 Jun, 2015 1 commit
  16. 10 Jun, 2015 1 commit
    • Nikolai Kosjar's avatar
      Clang: Use completion through backend process · 23b8a3b2
      Nikolai Kosjar authored
      This makes us independent of libclang crashes for completion.
      Re-parsing for highlighting still happens in the Qt Creator process.
      
      Run in verbose mode:
          qtc.clangcodemodel.ipc=true
      
      Run tests:
          -test "ClangCodeModel"
      
      Task-number: QTCREATORBUG-14108
      Task-number: QTCREATORBUG-12819
      Change-Id: Id3e95bd2afdb6508bbd1d35fddc69534a909b905
      Reviewed-by: default avatarMarco Bubke <marco.bubke@theqtcompany.com>
      23b8a3b2
  17. 13 May, 2015 1 commit
  18. 24 Apr, 2015 1 commit
    • Nikolai Kosjar's avatar
      CppTools: Remove separate indexing revision · d4bb5033
      Nikolai Kosjar authored
      For indexing we used a custom revision that was updated on each
      modelManager BuiltinIndexingSupport::refreshSourceFiles() call. This
      could lead to rejection of updated documents triggered by refactoring
      actions, like for the following case:
      
       1. Open a project containing a.h and a.cpp
       2. Open a.cpp, insert some new lines, save and close the document
       3. Open a.h and rename a function that is defined in a.cpp
          --> The refactoring action modifies a.h and a.cpp, so re-indexing
              of those is triggered. Since a.cpp has already a higher revision
              (step 2) than the updated document, the updated document is
              discarded. As a consequence find usages and follow symbol fails
              for the renamed function.
      
      Now the document call back provided to CppSourceProcessor is responsible
      for updating the document revision based on the latest revision in the
      global snapshot.
      
      Change-Id: I4dfa0a4d34991655acfa749109f00c47b0fbfdbe
      Reviewed-by: Orgad Shaneh's avatarOrgad Shaneh <orgads@gmail.com>
      Reviewed-by: default avatarErik Verbruggen <erik.verbruggen@theqtcompany.com>
      Reviewed-by: default avatarEike Ziller <eike.ziller@theqtcompany.com>
      d4bb5033
  19. 07 Apr, 2015 1 commit
  20. 05 Mar, 2015 1 commit
  21. 27 Feb, 2015 1 commit
  22. 26 Feb, 2015 1 commit
  23. 20 Feb, 2015 1 commit
  24. 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
  25. 16 Jan, 2015 1 commit
  26. 14 Jan, 2015 1 commit
  27. 12 Jan, 2015 1 commit
  28. 19 Dec, 2014 1 commit
  29. 18 Dec, 2014 1 commit
  30. 17 Dec, 2014 1 commit
  31. 15 Dec, 2014 1 commit
  32. 03 Dec, 2014 2 commits
    • Nikolai Kosjar's avatar
      CppTools: Remove QTC_ASSERT in CppModelManager::editorDocument() · 6b894b50
      Nikolai Kosjar authored
      This fixes
      
          SOFT ASSERT: "!filePath.isEmpty()" in file
          /home/nik/dev/creator/creator-ut/src/plugins/cpptools/cppmodelmanager.cpp,
          line 467
      
      which can be triggered by e.g. a "git show" document
      (onCurrentEditorChanged does not check for an empty file path).
      
      Change-Id: If4ed8e552069b290cb4ac93da52427b7ed2b91e8
      Reviewed-by: default avatarEike Ziller <eike.ziller@theqtcompany.com>
      6b894b50
    • Nikolai Kosjar's avatar
      CppTools: Update document on activation · cb0d1369
      Nikolai Kosjar authored
      ...if the project was updated in the meanwhile.
      
      If a project is updated mark invisible editor documents dirty and update
      them if they get focus.
      
      This also fixes document highlighting when restoring a session for
      documents that the user "switched away" before the project info is
      pushed to CppModelManager.
      
      This completes
      
          CppTools: Update visible documents on project update
          commit c2eb91e0
      
      which only takes care of visible documents.
      
      Task-number: QTCREATORBUG-13270
      Change-Id: Id445e7f509deac5d03194aecc54ce4629b7926ce
      Reviewed-by: default avatarErik Verbruggen <erik.verbruggen@theqtcompany.com>
      cb0d1369
  33. 24 Nov, 2014 1 commit
  34. 07 Nov, 2014 1 commit
  35. 23 Oct, 2014 1 commit
  36. 21 Oct, 2014 1 commit
  37. 15 Oct, 2014 1 commit