diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/clangcodemodel/clangdclient.cpp | 14 | ||||
-rw-r--r-- | src/plugins/clangcodemodel/clangutils.cpp | 2 | ||||
-rw-r--r-- | src/plugins/clangcodemodel/test/clangdtests.cpp | 2 | ||||
-rw-r--r-- | src/plugins/clangtools/clangtoolrunner.cpp | 6 | ||||
-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 |
16 files changed, 66 insertions, 67 deletions
diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index b36ff8a425..23dd71af16 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -418,7 +418,8 @@ ClangdClient::ClangdClient(Project *project, const Utils::FilePath &jsonDbDir, c CppEditor::CompilerOptionsBuilder optionsBuilder = clangOptionsBuilder( *CppEditor::CppModelManager::fallbackProjectPart(), warningsConfigForProject(nullptr), includeDir, {}); - const CppEditor::UsePrecompiledHeaders usePch = CppEditor::getPchUsage(); + const CppEditor::UsePrecompiledHeaders usePch + = CppEditor::CppCodeModelSettings::instance().usePrecompiledHeaders(); const QJsonArray projectPartOptions = fullProjectPartOptions( optionsBuilder, globalClangOptions()); const QJsonArray clangOptions = clangOptionsForFile({}, optionsBuilder.projectPart(), @@ -599,7 +600,7 @@ void ClangdClient::findUsages(const CppEditor::CursorInEditor &cursor, } } - const bool categorize = CppEditor::codeModelSettings()->categorizeFindReferences(); + const bool categorize = CppEditor::CppCodeModelSettings::instance().categorizeFindReferences(); // If it's a "normal" symbol, go right ahead. if (searchTerm != "operator" && Utils::allOf(searchTerm, [](const QChar &c) { @@ -919,8 +920,13 @@ void ClangdClient::updateParserConfig(const Utils::FilePath &filePath, CppEditor::ProjectFile::classify(filePath.toString())); const QJsonArray projectPartOptions = fullProjectPartOptions( optionsBuilder, globalClangOptions()); - addToCompilationDb(cdbChanges, *projectPart, CppEditor::getPchUsage(), projectPartOptions, - filePath.parentDir(), file, optionsBuilder.isClStyle()); + addToCompilationDb(cdbChanges, + *projectPart, + CppEditor::CppCodeModelSettings::instance().usePrecompiledHeaders(), + projectPartOptions, + filePath.parentDir(), + file, + optionsBuilder.isClStyle()); QJsonObject settings; addCompilationDb(settings, cdbChanges); DidChangeConfigurationParams configChangeParams; diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp index a9b19fa275..a718a9ed96 100644 --- a/src/plugins/clangcodemodel/clangutils.cpp +++ b/src/plugins/clangcodemodel/clangutils.cpp @@ -166,7 +166,7 @@ GenerateCompilationDbResult generateCompilationDB(QList<ProjectInfo::ConstPtr> p } compileCommandsFile.write("["); - const UsePrecompiledHeaders usePch = getPchUsage(); + const UsePrecompiledHeaders usePch = CppCodeModelSettings::instance().usePrecompiledHeaders(); const QJsonArray jsonProjectOptions = QJsonArray::fromStringList(projectOptions); for (const ProjectInfo::ConstPtr &projectInfo : std::as_const(projectInfoList)) { QTC_ASSERT(projectInfo, continue); diff --git a/src/plugins/clangcodemodel/test/clangdtests.cpp b/src/plugins/clangcodemodel/test/clangdtests.cpp index d4dd092b83..88a3176a6b 100644 --- a/src/plugins/clangcodemodel/test/clangdtests.cpp +++ b/src/plugins/clangcodemodel/test/clangdtests.cpp @@ -249,7 +249,7 @@ private: void ClangdTestFindReferences::initTestCase() { ClangdTest::initTestCase(); - CppEditor::codeModelSettings()->setCategorizeFindReferences(true); + CppEditor::CppCodeModelSettings::instance().setCategorizeFindReferences(true); connect(client(), &ClangdClient::foundReferences, this, [this](const SearchResultItems &results) { if (results.isEmpty()) diff --git a/src/plugins/clangtools/clangtoolrunner.cpp b/src/plugins/clangtools/clangtoolrunner.cpp index 46fdf7c273..13fdfba742 100644 --- a/src/plugins/clangtools/clangtoolrunner.cpp +++ b/src/plugins/clangtools/clangtoolrunner.cpp @@ -10,6 +10,7 @@ #include <coreplugin/icore.h> #include <cppeditor/clangdiagnosticconfigsmodel.h> +#include <cppeditor/cppcodemodelsettings.h> #include <cppeditor/cppprojectfile.h> #include <cppeditor/cpptoolsreuse.h> @@ -25,7 +26,6 @@ #include <QFileInfo> #include <QLoggingCategory> - static Q_LOGGING_CATEGORY(LOG, "qtc.clangtools.runner", QtWarningMsg) using namespace CppEditor; @@ -49,7 +49,9 @@ AnalyzeUnit::AnalyzeUnit(const FileInfo &fileInfo, actualClangIncludeDir); file = fileInfo.file; arguments = extraClangToolsPrependOptions(); - arguments.append(optionsBuilder.build(fileInfo.kind, CppEditor::getPchUsage())); + arguments.append( + optionsBuilder.build(fileInfo.kind, + CppEditor::CppCodeModelSettings::instance().usePrecompiledHeaders())); arguments.append(extraClangToolsAppendOptions()); } 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); |