diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2024-02-26 16:34:32 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2024-03-12 08:55:11 +0000 |
commit | 1de045f687213fca17f07a17f8db60cc107efe8f (patch) | |
tree | 5ee59da9fd4ef0da2252d1b8d0a7a8e4ec5b3199 /src/plugins/cppeditor | |
parent | db4aa772373cdb120e8cd4259bf1b7ed1d211577 (diff) |
CppEditor: Move some convenience functions to CppCodeModelSettings class
Change-Id: I0af8560c23374ce4f6c46f98d498d44f7cb50db3
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/cppeditor')
-rw-r--r-- | src/plugins/cppeditor/baseeditordocumentprocessor.cpp | 6 | ||||
-rw-r--r-- | src/plugins/cppeditor/builtineditordocumentprocessor.cpp | 9 | ||||
-rw-r--r-- | src/plugins/cppeditor/compileroptionsbuilder.h | 2 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppcodemodelsettings.cpp | 25 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppcodemodelsettings.h | 8 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppcodemodelsettingspage.cpp | 5 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppeditorplugin.cpp | 4 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppfindreferences.cpp | 7 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppindexingsupport.cpp | 1 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppmodelmanager.cpp | 12 | ||||
-rw-r--r-- | src/plugins/cppeditor/cpptoolsreuse.cpp | 24 | ||||
-rw-r--r-- | src/plugins/cppeditor/cpptoolsreuse.h | 6 |
12 files changed, 50 insertions, 59 deletions
diff --git a/src/plugins/cppeditor/baseeditordocumentprocessor.cpp b/src/plugins/cppeditor/baseeditordocumentprocessor.cpp index d7da8251ee..d377a25337 100644 --- a/src/plugins/cppeditor/baseeditordocumentprocessor.cpp +++ b/src/plugins/cppeditor/baseeditordocumentprocessor.cpp @@ -35,9 +35,9 @@ BaseEditorDocumentProcessor::~BaseEditorDocumentProcessor() = default; void BaseEditorDocumentProcessor::run(bool projectsUpdated) { - const Utils::Language languagePreference = codeModelSettings()->interpretAmbigiousHeadersAsC() - ? Utils::Language::C - : Utils::Language::Cxx; + const Utils::Language languagePreference + = CppCodeModelSettings::instance().interpretAmbigiousHeadersAsC() ? Utils::Language::C + : Utils::Language::Cxx; runImpl({CppModelManager::workingCopy(), ProjectExplorer::ProjectManager::startupProject(), diff --git a/src/plugins/cppeditor/builtineditordocumentprocessor.cpp b/src/plugins/cppeditor/builtineditordocumentprocessor.cpp index b934d1e7ae..bd820c9222 100644 --- a/src/plugins/cppeditor/builtineditordocumentprocessor.cpp +++ b/src/plugins/cppeditor/builtineditordocumentprocessor.cpp @@ -143,16 +143,17 @@ QList<TextEditor::BlockRange> toTextEditorBlocks( BuiltinEditorDocumentProcessor::BuiltinEditorDocumentProcessor(TextEditor::TextDocument *document) : BaseEditorDocumentProcessor(document->document(), document->filePath()) - , m_parser(new BuiltinEditorDocumentParser(document->filePath(), indexerFileSizeLimitInMb())) + , m_parser(new BuiltinEditorDocumentParser(document->filePath(), + CppCodeModelSettings::instance() + .effectiveIndexerFileSizeLimitInMb())) , m_codeWarningsUpdated(false) , m_semanticHighlighter(new SemanticHighlighter(document)) { using namespace Internal; - const CppCodeModelSettings *cms = &cppCodeModelSettings(); - BaseEditorDocumentParser::Configuration config = m_parser->configuration(); - config.usePrecompiledHeaders = cms->pchUsage() != CppCodeModelSettings::PchUse_None; + config.usePrecompiledHeaders = CppCodeModelSettings::instance().pchUsage() + != CppCodeModelSettings::PchUse_None; m_parser->setConfiguration(config); m_semanticHighlighter->setHighlightingRunner( diff --git a/src/plugins/cppeditor/compileroptionsbuilder.h b/src/plugins/cppeditor/compileroptionsbuilder.h index 3a8c1446a5..3c72dee2c6 100644 --- a/src/plugins/cppeditor/compileroptionsbuilder.h +++ b/src/plugins/cppeditor/compileroptionsbuilder.h @@ -9,7 +9,7 @@ namespace CppEditor { -enum class UsePrecompiledHeaders : char { Yes, No }; +enum class UsePrecompiledHeaders { Yes, No }; enum class UseSystemHeader : char { Yes, No }; enum class UseTweakedHeaderPaths : char { Yes, Tools, No }; enum class UseToolchainMacros : char { Yes, No }; diff --git a/src/plugins/cppeditor/cppcodemodelsettings.cpp b/src/plugins/cppeditor/cppcodemodelsettings.cpp index 38f57ddba8..8a28fcf691 100644 --- a/src/plugins/cppeditor/cppcodemodelsettings.cpp +++ b/src/plugins/cppeditor/cppcodemodelsettings.cpp @@ -4,6 +4,7 @@ #include "cppcodemodelsettings.h" #include "clangdiagnosticconfigsmodel.h" +#include "compileroptionsbuilder.h" #include "cppeditorconstants.h" #include "cppeditortr.h" #include "cpptoolsreuse.h" @@ -125,6 +126,12 @@ void CppCodeModelSettings::toSettings(QtcSettings *s) emit changed(); // TODO: Why? } +CppCodeModelSettings &CppCodeModelSettings::instance() +{ + static CppCodeModelSettings theCppCodeModelSettings(Core::ICore::settings()); + return theCppCodeModelSettings; +} + void CppCodeModelSettings::setData(const Data &data) { if (m_data != data) { @@ -134,6 +141,18 @@ void CppCodeModelSettings::setData(const Data &data) } } +UsePrecompiledHeaders CppCodeModelSettings::usePrecompiledHeaders() const +{ + if (instance().pchUsage() == CppCodeModelSettings::PchUse_None) + return UsePrecompiledHeaders::No; + return UsePrecompiledHeaders::Yes; +} + +int CppCodeModelSettings::effectiveIndexerFileSizeLimitInMb() const +{ + return instance().skipIndexingBigFiles() ? instance().indexerFileSizeLimitInMb() : -1; +} + void CppCodeModelSettings::setCategorizeFindReferences(bool categorize) { Data d = data(); @@ -578,10 +597,4 @@ int ClangdSettings::Data::defaultCompletionResults() return ok ? userValue : 100; } -CppCodeModelSettings &cppCodeModelSettings() -{ - static CppCodeModelSettings theCppCodeModelSettings(Core::ICore::settings()); - return theCppCodeModelSettings; -} - } // namespace CppEditor diff --git a/src/plugins/cppeditor/cppcodemodelsettings.h b/src/plugins/cppeditor/cppcodemodelsettings.h index 5989c14f86..c76f3318f2 100644 --- a/src/plugins/cppeditor/cppcodemodelsettings.h +++ b/src/plugins/cppeditor/cppcodemodelsettings.h @@ -22,6 +22,7 @@ class MacroExpander; } // namespace Utils namespace CppEditor { +enum class UsePrecompiledHeaders; class CPPEDITOR_EXPORT CppCodeModelSettings : public QObject { @@ -52,16 +53,18 @@ public: QString ignorePattern; }; - CppCodeModelSettings(Utils::QtcSettings *s) { fromSettings(s); } + static CppCodeModelSettings &instance(); void setData(const Data &data); Data data() const { return m_data; } PCHUsage pchUsage() const { return m_data.pchUsage; } + UsePrecompiledHeaders usePrecompiledHeaders() const; bool interpretAmbigiousHeadersAsC() const { return m_data.interpretAmbigiousHeadersAsC; } bool skipIndexingBigFiles() const { return m_data.skipIndexingBigFiles; } bool useBuiltinPreprocessor() const { return m_data.useBuiltinPreprocessor; } int indexerFileSizeLimitInMb() const { return m_data.indexerFileSizeLimitInMb; } + int effectiveIndexerFileSizeLimitInMb() const; bool categorizeFindReferences() const { return m_data.categorizeFindReferences; } bool ignoreFiles() const { return m_data.ignoreFiles; } QString ignorePattern() const { return m_data.ignorePattern; } @@ -73,6 +76,7 @@ signals: private: CppCodeModelSettings() = default; + CppCodeModelSettings(Utils::QtcSettings *s) { fromSettings(s); } void toSettings(Utils::QtcSettings *s); void fromSettings(Utils::QtcSettings *s); @@ -224,6 +228,4 @@ private: bool m_blockIndexing = false; }; -CppCodeModelSettings &cppCodeModelSettings(); - } // namespace CppEditor diff --git a/src/plugins/cppeditor/cppcodemodelsettingspage.cpp b/src/plugins/cppeditor/cppcodemodelsettingspage.cpp index b267b66242..bb91165705 100644 --- a/src/plugins/cppeditor/cppcodemodelsettingspage.cpp +++ b/src/plugins/cppeditor/cppcodemodelsettingspage.cpp @@ -54,7 +54,7 @@ public: CppCodeModelSettingsWidget(const CppCodeModelSettings::Data &data); private: - void apply() final { codeModelSettings()->setData(data()); } + void apply() final { CppCodeModelSettings::instance().setData(data()); } CppCodeModelSettings::Data data() const; @@ -152,7 +152,8 @@ public: setCategory(Constants::CPP_SETTINGS_CATEGORY); setDisplayCategory(Tr::tr("C++")); setCategoryIconPath(":/projectexplorer/images/settingscategory_cpp.png"); - setWidgetCreator([] { return new CppCodeModelSettingsWidget(codeModelSettings()->data()); }); + setWidgetCreator( + [] { return new CppCodeModelSettingsWidget(CppCodeModelSettings::instance().data()); }); } }; diff --git a/src/plugins/cppeditor/cppeditorplugin.cpp b/src/plugins/cppeditor/cppeditorplugin.cpp index c9185e372c..5b9e360be7 100644 --- a/src/plugins/cppeditor/cppeditorplugin.cpp +++ b/src/plugins/cppeditor/cppeditorplugin.cpp @@ -348,9 +348,9 @@ void CppEditorPlugin::addPerSymbolActions() findRefsCategorized.addToContainers(menus, Constants::G_SYMBOL); findRefsCategorized.addOnTriggered(this, [] { if (const auto w = currentCppEditorWidget()) { - codeModelSettings()->setCategorizeFindReferences(true); + CppCodeModelSettings::instance().setCategorizeFindReferences(true); w->findUsages(); - codeModelSettings()->setCategorizeFindReferences(false); + CppCodeModelSettings::instance().setCategorizeFindReferences(false); } }); diff --git a/src/plugins/cppeditor/cppfindreferences.cpp b/src/plugins/cppeditor/cppfindreferences.cpp index 25b3e110d5..683eda587a 100644 --- a/src/plugins/cppeditor/cppfindreferences.cpp +++ b/src/plugins/cppeditor/cppfindreferences.cpp @@ -388,7 +388,7 @@ void CppFindReferences::findUsages(CPlusPlus::Symbol *symbol, search->setTextToReplace(replacement); if (callback) search->makeNonInteractive(callback); - if (codeModelSettings()->categorizeFindReferences()) + if (CppCodeModelSettings::instance().categorizeFindReferences()) search->setFilter(new CppSearchResultFilter); setupSearch(search); search->setSearchAgainSupported(true); @@ -397,7 +397,7 @@ void CppFindReferences::findUsages(CPlusPlus::Symbol *symbol, CppFindReferencesParameters parameters; parameters.symbolId = fullIdForSymbol(symbol); parameters.symbolFilePath = symbol->filePath(); - parameters.categorize = codeModelSettings()->categorizeFindReferences(); + parameters.categorize = CppCodeModelSettings::instance().categorizeFindReferences(); parameters.preferLowerCaseFileNames = preferLowerCaseFileNames( ProjectManager::projectForFile(symbol->filePath())); @@ -408,7 +408,8 @@ void CppFindReferences::findUsages(CPlusPlus::Symbol *symbol, } search->setUserData(QVariant::fromValue(parameters)); - findAll_helper(search, symbol, context, codeModelSettings()->categorizeFindReferences()); + findAll_helper(search, symbol, context, + CppCodeModelSettings::instance().categorizeFindReferences()); } void CppFindReferences::renameUsages(CPlusPlus::Symbol *symbol, diff --git a/src/plugins/cppeditor/cppindexingsupport.cpp b/src/plugins/cppeditor/cppindexingsupport.cpp index 14ce23c79a..1d637f6e8a 100644 --- a/src/plugins/cppeditor/cppindexingsupport.cpp +++ b/src/plugins/cppeditor/cppindexingsupport.cpp @@ -5,6 +5,7 @@ #include "builtineditordocumentparser.h" #include "cppchecksymbols.h" +#include "cppcodemodelsettings.h" #include "cppeditorconstants.h" #include "cppeditortr.h" #include "cppsourceprocessor.h" diff --git a/src/plugins/cppeditor/cppmodelmanager.cpp b/src/plugins/cppeditor/cppmodelmanager.cpp index 98cd232326..6e81e86f0c 100644 --- a/src/plugins/cppeditor/cppmodelmanager.cpp +++ b/src/plugins/cppeditor/cppmodelmanager.cpp @@ -407,7 +407,7 @@ void CppModelManager::showPreprocessedFile(bool inNextSplit) saveAndOpen(outFilePath, content.append(preprocessedDoc->utf8Source()), inNextSplit); }; - if (codeModelSettings()->useBuiltinPreprocessor()) { + if (CppCodeModelSettings::instance().useBuiltinPreprocessor()) { useBuiltinPreprocessor(); return; } @@ -1349,10 +1349,12 @@ QFuture<void> CppModelManager::updateSourceFiles(const QSet<FilePath> &sourceFil if (sourceFiles.isEmpty() || !d->m_indexerEnabled) return QFuture<void>(); - const QSet<QString> filteredFiles = filteredFilesRemoved(transform(sourceFiles, &FilePath::toString), - indexerFileSizeLimitInMb(), - codeModelSettings()->ignoreFiles(), - codeModelSettings()->ignorePattern()); + const CppCodeModelSettings &settings = CppCodeModelSettings::instance(); + const QSet<QString> filteredFiles + = filteredFilesRemoved(transform(sourceFiles, &FilePath::toString), + settings.effectiveIndexerFileSizeLimitInMb(), + settings.ignoreFiles(), + settings.ignorePattern()); return d->m_internalIndexingSupport->refreshSourceFiles(filteredFiles, mode); } diff --git a/src/plugins/cppeditor/cpptoolsreuse.cpp b/src/plugins/cppeditor/cpptoolsreuse.cpp index 6555010c8f..f6e58abddf 100644 --- a/src/plugins/cppeditor/cpptoolsreuse.cpp +++ b/src/plugins/cppeditor/cpptoolsreuse.cpp @@ -357,22 +357,6 @@ CppCompletionAssistProcessor *getCppCompletionAssistProcessor() return new Internal::InternalCppCompletionAssistProcessor(); } -CppCodeModelSettings *codeModelSettings() -{ - return &cppCodeModelSettings(); -} - -int indexerFileSizeLimitInMb() -{ - const CppCodeModelSettings *settings = codeModelSettings(); - QTC_ASSERT(settings, return -1); - - if (settings->skipIndexingBigFiles()) - return settings->indexerFileSizeLimitInMb(); - - return -1; -} - bool fileSizeExceedsLimit(const FilePath &filePath, int sizeLimitInMb) { if (sizeLimitInMb <= 0) @@ -392,14 +376,6 @@ bool fileSizeExceedsLimit(const FilePath &filePath, int sizeLimitInMb) return false; } -UsePrecompiledHeaders getPchUsage() -{ - const CppCodeModelSettings *cms = codeModelSettings(); - if (cms->pchUsage() == CppCodeModelSettings::PchUse_None) - return UsePrecompiledHeaders::No; - return UsePrecompiledHeaders::Yes; -} - static void addBuiltinConfigs(ClangDiagnosticConfigsModel &model) { ClangDiagnosticConfig config; diff --git a/src/plugins/cppeditor/cpptoolsreuse.h b/src/plugins/cppeditor/cpptoolsreuse.h index 89bf896197..8b1da79113 100644 --- a/src/plugins/cppeditor/cpptoolsreuse.h +++ b/src/plugins/cppeditor/cpptoolsreuse.h @@ -73,14 +73,11 @@ Utils::FilePath CPPEDITOR_EXPORT correspondingHeaderOrSource( void CPPEDITOR_EXPORT openEditor(const Utils::FilePath &filePath, bool inNextSplit, Utils::Id editorId = {}); -class CppCodeModelSettings; -CppCodeModelSettings CPPEDITOR_EXPORT *codeModelSettings(); QString CPPEDITOR_EXPORT preferredCxxHeaderSuffix(ProjectExplorer::Project *project); QString CPPEDITOR_EXPORT preferredCxxSourceSuffix(ProjectExplorer::Project *project); bool CPPEDITOR_EXPORT preferLowerCaseFileNames(ProjectExplorer::Project *project); - QList<Utils::Text::Range> CPPEDITOR_EXPORT symbolOccurrencesInText( const QTextDocument &doc, QStringView text, int offset, const QString &symbolName); Utils::SearchResultItems CPPEDITOR_EXPORT @@ -88,9 +85,6 @@ symbolOccurrencesInDeclarationComments(const Utils::SearchResultItems &symbolOcc QList<Utils::Text::Range> CPPEDITOR_EXPORT symbolOccurrencesInDeclarationComments( CppEditorWidget *editorWidget, const QTextCursor &cursor); -UsePrecompiledHeaders CPPEDITOR_EXPORT getPchUsage(); - -int indexerFileSizeLimitInMb(); bool fileSizeExceedsLimit(const Utils::FilePath &filePath, int sizeLimitInMb); ProjectExplorer::Project CPPEDITOR_EXPORT *projectForProjectInfo(const ProjectInfo &info); |