CppEditor: Make a few CppModelManager functions static

... to simplify code using it.

Change-Id: Ib2bfbb5a17a1d48088a9cf4973d4c3f006cd34e4
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2023-07-12 09:47:29 +02:00
parent 8f82e76ba1
commit 0b83f110f4
80 changed files with 505 additions and 619 deletions

View File

@@ -53,7 +53,7 @@ void ClangCodeModelPlugin::generateCompilationDB()
if (!target)
return;
const auto projectInfo = CppModelManager::instance()->projectInfo(target->project());
const auto projectInfo = CppModelManager::projectInfo(target->project());
if (!projectInfo)
return;
FilePath baseDir = projectInfo->buildRoot();
@@ -78,7 +78,7 @@ ClangCodeModelPlugin::~ClangCodeModelPlugin()
void ClangCodeModelPlugin::initialize()
{
TaskHub::addCategory({Constants::TASK_CATEGORY_DIAGNOSTICS, Tr::tr("Clang Code Model")});
CppEditor::CppModelManager::instance()->activateClangCodeModel(
CppEditor::CppModelManager::activateClangCodeModel(
std::make_unique<ClangModelManagerSupport>());
createCompilationDBAction();
@@ -135,8 +135,8 @@ void ClangCodeModelPlugin::createCompilationDBAction()
"No active project.");
return;
}
const CppEditor::ProjectInfo::ConstPtr projectInfo = CppEditor::CppModelManager::instance()
->projectInfo(project);
const CppEditor::ProjectInfo::ConstPtr projectInfo =
CppEditor::CppModelManager::projectInfo(project);
if (!projectInfo || projectInfo->projectParts().isEmpty()) {
MessageManager::writeDisrupting("Cannot generate compilation database: "
"Project has no C/C++ project parts.");

View File

@@ -407,7 +407,7 @@ ClangdClient::ClangdClient(Project *project, const Utils::FilePath &jsonDbDir, c
const Utils::FilePath includeDir
= CppEditor::ClangdSettings(d->settings).clangdIncludePath();
CppEditor::CompilerOptionsBuilder optionsBuilder = clangOptionsBuilder(
*CppEditor::CppModelManager::instance()->fallbackProjectPart(),
*CppEditor::CppModelManager::fallbackProjectPart(),
warningsConfigForProject(nullptr), includeDir, {});
const CppEditor::UsePrecompiledHeaders usePch = CppEditor::getPchUsage();
const QJsonArray projectPartOptions = fullProjectPartOptions(
@@ -755,7 +755,7 @@ bool ClangdClient::fileBelongsToProject(const Utils::FilePath &filePath) const
RefactoringChangesData *ClangdClient::createRefactoringChangesBackend() const
{
return new CppEditor::CppRefactoringChangesData(
CppEditor::CppModelManager::instance()->snapshot());
CppEditor::CppModelManager::snapshot());
}
QVersionNumber ClangdClient::versionNumber() const
@@ -875,8 +875,7 @@ void ClangdClient::updateParserConfig(const Utils::FilePath &filePath,
// TODO: Should we write the editor defines into the json file? It seems strange
// that they should affect the index only while the file is open in the editor.
const auto projectPart = !config.preferredProjectPartId.isEmpty()
? CppEditor::CppModelManager::instance()->projectPartForId(
config.preferredProjectPartId)
? CppEditor::CppModelManager::projectPartForId(config.preferredProjectPartId)
: projectPartForFile(filePath);
if (!projectPart)
return;

View File

@@ -609,7 +609,7 @@ QList<AssistProposalItemInterface *> ClangdCompletionAssistProcessor::generateCo
if (!doc || pos < 0 || !Utils::anyOf(items, criterion))
return itemGenerator(items);
const QString content = doc->toPlainText();
const bool requiresSignal = CppModelManager::instance()->getSignalSlotType(
const bool requiresSignal = CppModelManager::getSignalSlotType(
filePath(), content.toUtf8(), pos)
== SignalSlotType::NewStyleSignal;
if (requiresSignal)

View File

@@ -62,11 +62,6 @@ using namespace Utils;
namespace ClangCodeModel::Internal {
static CppModelManager *cppModelManager()
{
return CppModelManager::instance();
}
static Project *fallbackProject()
{
if (Project * const p = ProjectTree::currentProject())
@@ -202,10 +197,10 @@ ClangModelManagerSupport::ClangModelManagerSupport()
watchForInternalChanges();
setupClangdConfigFile();
checkSystemForClangdSuitability();
cppModelManager()->setCurrentDocumentFilter(std::make_unique<ClangdCurrentDocumentFilter>());
cppModelManager()->setLocatorFilter(std::make_unique<ClangdAllSymbolsFilter>());
cppModelManager()->setClassesFilter(std::make_unique<ClangdClassesFilter>());
cppModelManager()->setFunctionsFilter(std::make_unique<ClangdFunctionsFilter>());
CppModelManager::setCurrentDocumentFilter(std::make_unique<ClangdCurrentDocumentFilter>());
CppModelManager::setLocatorFilter(std::make_unique<ClangdAllSymbolsFilter>());
CppModelManager::setClassesFilter(std::make_unique<ClangdClassesFilter>());
CppModelManager::setFunctionsFilter(std::make_unique<ClangdFunctionsFilter>());
// Setup matchers
LocatorMatcher::addMatcherCreator(MatcherType::AllSymbols, [] {
return LanguageClient::languageClientMatchers(
@@ -226,7 +221,7 @@ ClangModelManagerSupport::ClangModelManagerSupport()
connect(editorManager, &EditorManager::currentEditorChanged,
this, &ClangModelManagerSupport::onCurrentEditorChanged);
CppModelManager *modelManager = cppModelManager();
CppModelManager *modelManager = CppModelManager::instance();
connect(modelManager, &CppModelManager::abstractEditorSupportContentsUpdated,
this, &ClangModelManagerSupport::onAbstractEditorSupportContentsUpdated);
connect(modelManager, &CppModelManager::abstractEditorSupportRemoved,
@@ -382,7 +377,7 @@ void ClangModelManagerSupport::checkUnused(const Link &link, SearchResult *searc
}
}
CppModelManager::instance()->modelManagerSupport(
CppModelManager::modelManagerSupport(
CppModelManager::Backend::Builtin)->checkUnused(link, search, callback);
}
@@ -409,7 +404,7 @@ void ClangModelManagerSupport::onCurrentEditorChanged(IEditor *editor)
{
// Update task hub issues for current CppEditorDocument
TaskHub::clearTasks(Constants::TASK_CATEGORY_DIAGNOSTICS);
if (!editor || !editor->document() || !cppModelManager()->isCppEditor(editor))
if (!editor || !editor->document() || !CppModelManager::isCppEditor(editor))
return;
const FilePath filePath = editor->document()->filePath();
@@ -460,12 +455,12 @@ static bool isProjectDataUpToDate(Project *project, ProjectInfoList projectInfo,
return false;
ProjectInfoList newProjectInfo;
if (project) {
if (const ProjectInfo::ConstPtr pi = CppModelManager::instance()->projectInfo(project))
if (const ProjectInfo::ConstPtr pi = CppModelManager::projectInfo(project))
newProjectInfo.append(pi);
else
return false;
} else {
newProjectInfo = CppModelManager::instance()->projectInfos();
newProjectInfo = CppModelManager::projectInfos();
}
if (newProjectInfo.size() != projectInfo.size())
return false;
@@ -486,8 +481,8 @@ void ClangModelManagerSupport::updateLanguageClient(Project *project)
ProjectInfoList projectInfo;
if (sessionModeEnabled()) {
project = nullptr;
projectInfo = CppModelManager::instance()->projectInfos();
} else if (const ProjectInfo::ConstPtr pi = CppModelManager::instance()->projectInfo(project)) {
projectInfo = CppModelManager::projectInfos();
} else if (const ProjectInfo::ConstPtr pi = CppModelManager::projectInfo(project)) {
projectInfo.append(pi);
} else {
return;
@@ -771,7 +766,7 @@ void ClangModelManagerSupport::onEditorOpened(IEditor *editor)
QTC_ASSERT(document, return);
auto textDocument = qobject_cast<TextEditor::TextDocument *>(document);
if (textDocument && cppModelManager()->isCppEditor(editor)) {
if (textDocument && CppModelManager::isCppEditor(editor)) {
connectToWidgetsMarkContextMenuRequested(editor->widget());
Project * project = ProjectManager::projectForFile(document->filePath());