aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cppeditor
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2024-02-26 16:34:32 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2024-03-12 08:55:11 +0000
commit1de045f687213fca17f07a17f8db60cc107efe8f (patch)
tree5ee59da9fd4ef0da2252d1b8d0a7a8e4ec5b3199 /src/plugins/cppeditor
parentdb4aa772373cdb120e8cd4259bf1b7ed1d211577 (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.cpp6
-rw-r--r--src/plugins/cppeditor/builtineditordocumentprocessor.cpp9
-rw-r--r--src/plugins/cppeditor/compileroptionsbuilder.h2
-rw-r--r--src/plugins/cppeditor/cppcodemodelsettings.cpp25
-rw-r--r--src/plugins/cppeditor/cppcodemodelsettings.h8
-rw-r--r--src/plugins/cppeditor/cppcodemodelsettingspage.cpp5
-rw-r--r--src/plugins/cppeditor/cppeditorplugin.cpp4
-rw-r--r--src/plugins/cppeditor/cppfindreferences.cpp7
-rw-r--r--src/plugins/cppeditor/cppindexingsupport.cpp1
-rw-r--r--src/plugins/cppeditor/cppmodelmanager.cpp12
-rw-r--r--src/plugins/cppeditor/cpptoolsreuse.cpp24
-rw-r--r--src/plugins/cppeditor/cpptoolsreuse.h6
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);