summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppmodelmanager.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2021-02-23 13:51:41 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2021-04-22 07:32:58 +0000
commitecafdb7543927ffe8a9066ce24ed532a097fa21d (patch)
tree5f77d9fc9af3967af2bda56c052ccd4a351e0703 /src/plugins/cpptools/cppmodelmanager.cpp
parent8bacd9bdc49c376af69c81ac9acf2e9db1f10cb5 (diff)
downloadqt-creator-ecafdb7543927ffe8a9066ce24ed532a097fa21d.tar.gz
ClangCodeModel: Add experimental clangd support
If the user has enabled clangd (default is off), we start up one instance per project when it is opened/changed (including build config switches), and trigger background indexing. So far, the index is used to provide results for locators and "Find Usages". Per-document functionality such as semantic highlighting and completion is still provided by libclang. Change-Id: I12532fca1b9c6278baab560e7238cba6189cde9f Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager.cpp')
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 9c2de6bbc2..971276f70a 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -328,7 +328,7 @@ void CppModelManager::globalRename(const CursorInEditor &data, UsagesCallback &&
void CppModelManager::findUsages(const CppTools::CursorInEditor &data,
UsagesCallback &&showUsagesCallback) const
{
- RefactoringEngineInterface *engine = getRefactoringEngine(d->m_refactoringEngines);
+ RefactoringEngineInterface *engine = getRefactoringEngine(d->m_refactoringEngines, false);
QTC_ASSERT(engine, return;);
engine->findUsages(data, std::move(showUsagesCallback));
}
@@ -466,6 +466,11 @@ void CppModelManager::removeRefactoringEngine(RefactoringEngineType type)
instance()->d->m_refactoringEngines.remove(type);
}
+RefactoringEngineInterface *CppModelManager::builtinRefactoringEngine()
+{
+ return instance()->d->m_refactoringEngines.value(RefactoringEngineType::BuiltIn);
+}
+
template<class FilterClass>
static void setFilter(std::unique_ptr<FilterClass> &filter,
std::unique_ptr<FilterClass> &&newFilter)
@@ -917,6 +922,11 @@ QByteArray CppModelManager::codeModelConfiguration() const
return QByteArray::fromRawData(pp_configuration, qstrlen(pp_configuration));
}
+CppLocatorData *CppModelManager::locatorData() const
+{
+ return &d->m_locatorData;
+}
+
static QSet<QString> tooBigFilesRemoved(const QSet<QString> &files, int fileSizeLimitInMb)
{
if (fileSizeLimitInMb <= 0)