forked from qt-creator/qt-creator
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:
@@ -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.");
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user