diff options
author | Eike Ziller <eike.ziller@qt.io> | 2024-03-06 15:10:15 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2024-03-06 15:10:15 +0100 |
commit | 8abc95331f1dddafb07c691857d3519829acb4ef (patch) | |
tree | 4b7b3f506917028540aa3df17d27d4534c8857c3 /src/plugins/cppeditor | |
parent | db5ac2dc15f0ac607c03416e538ae2ffc5482467 (diff) | |
parent | 7b8f274b9e3956a2e8668f932ee9717f96568678 (diff) |
Merge remote-tracking branch 'origin/13.0'
Conflicts:
cmake/QtCreatorIDEBranding.cmake
qbs/modules/qtc/qtc.qbs
src/plugins/cppeditor/cppcodemodelsettings.cpp
src/plugins/cppeditor/cppcodemodelsettings.h
Change-Id: I54937c39b06897a72a105e4e0a8b5f8a76c38e26
Diffstat (limited to 'src/plugins/cppeditor')
-rw-r--r-- | src/plugins/cppeditor/cppcodemodelsettings.cpp | 133 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppcodemodelsettings.h | 29 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppdoxygen_test.cpp | 24 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppquickfix_test.cpp | 8 | ||||
-rw-r--r-- | src/plugins/cppeditor/cpptoolstestcase.cpp | 11 | ||||
-rw-r--r-- | src/plugins/cppeditor/cpptoolstestcase.h | 2 |
6 files changed, 86 insertions, 121 deletions
diff --git a/src/plugins/cppeditor/cppcodemodelsettings.cpp b/src/plugins/cppeditor/cppcodemodelsettings.cpp index c767bc6426..07d3d92658 100644 --- a/src/plugins/cppeditor/cppcodemodelsettings.cpp +++ b/src/plugins/cppeditor/cppcodemodelsettings.cpp @@ -86,26 +86,15 @@ bool operator==(const CppEditor::CppCodeModelSettings::Data &s1, Store CppCodeModelSettings::Data::toMap() const { - const CppCodeModelSettings::Data def; Store store; - store.insertValueWithDefault(enableLowerClazyLevelsKey(), - enableLowerClazyLevels, - def.enableLowerClazyLevels); - store.insertValueWithDefault(pchUsageKey(), pchUsage, def.pchUsage); - store.insertValueWithDefault(interpretAmbiguousHeadersAsCHeadersKey(), - interpretAmbigiousHeadersAsC, - def.interpretAmbigiousHeadersAsC); - store.insertValueWithDefault(skipIndexingBigFilesKey(), - skipIndexingBigFiles, - def.skipIndexingBigFiles); - store.insertValueWithDefault(ignoreFilesKey(), ignoreFiles, def.ignoreFiles); - store.insertValueWithDefault(ignorePatternKey(), ignorePattern, def.ignorePattern); - store.insertValueWithDefault(useBuiltinPreprocessorKey(), - useBuiltinPreprocessor, - def.useBuiltinPreprocessor); - store.insertValueWithDefault(indexerFileSizeLimitKey(), - indexerFileSizeLimitInMb, - def.indexerFileSizeLimitInMb); + store.insert(enableLowerClazyLevelsKey(), enableLowerClazyLevels); + store.insert(pchUsageKey(), pchUsage); + store.insert(interpretAmbiguousHeadersAsCHeadersKey(), interpretAmbigiousHeadersAsC); + store.insert(skipIndexingBigFilesKey(), skipIndexingBigFiles); + store.insert(ignoreFilesKey(), ignoreFiles); + store.insert(ignorePatternKey(), ignorePattern); + store.insert(useBuiltinPreprocessorKey(), useBuiltinPreprocessor); + store.insert(indexerFileSizeLimitKey(), indexerFileSizeLimitInMb); return store; } @@ -136,7 +125,8 @@ void CppCodeModelSettings::fromSettings(QtcSettings *s) void CppCodeModelSettings::toSettings(QtcSettings *s) { - storeToSettings(Constants::CPPEDITOR_SETTINGSGROUP, s, m_data.toMap()); + const Data def; + storeToSettingsWithDefault(Constants::CPPEDITOR_SETTINGSGROUP, s, m_data.toMap(), def.toMap()); emit changed(); // TODO: Why? } @@ -432,7 +422,11 @@ void ClangdSettings::loadSettings() void ClangdSettings::saveSettings() { const auto settings = Core::ICore::settings(); - Utils::storeToSettings(clangdSettingsKey(), settings, m_data.toMap()); + const ClangdSettings::Data defaultData; + Utils::storeToSettingsWithDefault(clangdSettingsKey(), + settings, + m_data.toMap(), + defaultData.toMap()); settings->beginGroup(Constants::CPPEDITOR_SETTINGSGROUP); diagnosticConfigsToSettings(settings, m_data.customDiagnosticConfigs); settings->endGroup(); @@ -534,70 +528,37 @@ Store ClangdSettings::Data::toMap() const { Store map; - map.insertValueWithDefault(useClangdKey(), useClangd, DefaultUseClangd); - - const QString clangdPath = executableFilePath != fallbackClangdFilePath() - ? executableFilePath.toString() - : QString(); - - map.insertValueWithDefault(clangdPathKey(), clangdPath); - - map.insertValueWithDefault(clangdIndexingKey(), indexingPriority != IndexingPriority::Off, true); - map.insertValueWithDefault(clangdIndexingPriorityKey(), - int(indexingPriority), - int(DefaultIndexingPriority)); - map.insertValueWithDefault(clangdProjectIndexPathKey(), projectIndexPathTemplate, - defaultProjectIndexPathTemplate()); - map.insertValueWithDefault(clangdSessionIndexPathKey(), sessionIndexPathTemplate, - defaultSessionIndexPathTemplate()); - - map.insertValueWithDefault(clangdHeaderSourceSwitchModeKey(), - int(headerSourceSwitchMode), - int(DefaultHeaderSourceSwitchMode)); - - map.insertValueWithDefault(clangdCompletionRankingModelKey(), - int(completionRankingModel), - int(DefaultCompletionRankingModel)); - - map.insertValueWithDefault(clangdHeaderInsertionKey(), - autoIncludeHeaders, - DefaultAutoIncludeHeaders); - - map.insertValueWithDefault(clangdThreadLimitKey(), workerThreadLimit, DefaultWorkerThreadLimit); - - map.insertValueWithDefault(clangdDocumentThresholdKey(), - documentUpdateThreshold, - DefaultDocumentUpdateThreshold); - - map.insertValueWithDefault(clangdSizeThresholdEnabledKey(), - sizeThresholdEnabled, - DefaultSizeThresholdEnabled); - - map.insertValueWithDefault(clangdSizeThresholdKey(), - sizeThresholdInKb, - DefaultSizeThresholdInKb); - - map.insertValueWithDefault(sessionsWithOneClangdKey(), sessionsWithOneClangd); - - map.insertValueWithDefault(diagnosticConfigIdKey(), - diagnosticConfigId.toSetting(), - initialClangDiagnosticConfigId().toSetting()); - + map.insert(useClangdKey(), useClangd); + + map.insert(clangdPathKey(), + executableFilePath != fallbackClangdFilePath() ? executableFilePath.toString() + : QString()); + + map.insert(clangdIndexingKey(), indexingPriority != IndexingPriority::Off); + map.insert(clangdIndexingPriorityKey(), int(indexingPriority)); + map.insert(clangdProjectIndexPathKey(), projectIndexPathTemplate); + map.insert(clangdSessionIndexPathKey(), sessionIndexPathTemplate); + map.insert(clangdHeaderSourceSwitchModeKey(), int(headerSourceSwitchMode)); + map.insert(clangdCompletionRankingModelKey(), int(completionRankingModel)); + map.insert(clangdHeaderInsertionKey(), autoIncludeHeaders); + map.insert(clangdThreadLimitKey(), workerThreadLimit); + map.insert(clangdDocumentThresholdKey(), documentUpdateThreshold); + map.insert(clangdSizeThresholdEnabledKey(), sizeThresholdEnabled); + map.insert(clangdSizeThresholdKey(), sizeThresholdInKb); + map.insert(sessionsWithOneClangdKey(), sessionsWithOneClangd); + map.insert(diagnosticConfigIdKey(), diagnosticConfigId.toSetting()); if (haveCheckedHardwareReqirements != false) map.insert(checkedHardwareKey(), true); - - map.insertValueWithDefault(completionResultsKey(), - completionResults, - defaultCompletionResults()); + map.insert(completionResultsKey(), completionResults); return map; } void ClangdSettings::Data::fromMap(const Store &map) { - useClangd = map.value(useClangdKey(), DefaultUseClangd).toBool(); + useClangd = map.value(useClangdKey(), true).toBool(); executableFilePath = FilePath::fromString(map.value(clangdPathKey()).toString()); indexingPriority = IndexingPriority( - map.value(clangdIndexingPriorityKey(), int(DefaultIndexingPriority)).toInt()); + map.value(clangdIndexingPriorityKey(), int(this->indexingPriority)).toInt()); const auto it = map.find(clangdIndexingKey()); if (it != map.end() && !it->toBool()) indexingPriority = IndexingPriority::Off; @@ -605,17 +566,15 @@ void ClangdSettings::Data::fromMap(const Store &map) = map.value(clangdProjectIndexPathKey(), defaultProjectIndexPathTemplate()).toString(); sessionIndexPathTemplate = map.value(clangdSessionIndexPathKey(), defaultSessionIndexPathTemplate()).toString(); - headerSourceSwitchMode = HeaderSourceSwitchMode( - map.value(clangdHeaderSourceSwitchModeKey(), int(DefaultHeaderSourceSwitchMode)).toInt()); - completionRankingModel = CompletionRankingModel( - map.value(clangdCompletionRankingModelKey(), int(DefaultCompletionRankingModel)).toInt()); - autoIncludeHeaders = map.value(clangdHeaderInsertionKey(), DefaultAutoIncludeHeaders).toBool(); - workerThreadLimit = map.value(clangdThreadLimitKey(), DefaultWorkerThreadLimit).toInt(); - documentUpdateThreshold - = map.value(clangdDocumentThresholdKey(), DefaultDocumentUpdateThreshold).toInt(); - sizeThresholdEnabled - = map.value(clangdSizeThresholdEnabledKey(), DefaultSizeThresholdEnabled).toBool(); - sizeThresholdInKb = map.value(clangdSizeThresholdKey(), DefaultSizeThresholdInKb).toLongLong(); + headerSourceSwitchMode = HeaderSourceSwitchMode(map.value(clangdHeaderSourceSwitchModeKey(), + int(headerSourceSwitchMode)).toInt()); + completionRankingModel = CompletionRankingModel(map.value(clangdCompletionRankingModelKey(), + int(completionRankingModel)).toInt()); + autoIncludeHeaders = map.value(clangdHeaderInsertionKey(), false).toBool(); + workerThreadLimit = map.value(clangdThreadLimitKey(), 0).toInt(); + documentUpdateThreshold = map.value(clangdDocumentThresholdKey(), 500).toInt(); + sizeThresholdEnabled = map.value(clangdSizeThresholdEnabledKey(), false).toBool(); + sizeThresholdInKb = map.value(clangdSizeThresholdKey(), 1024).toLongLong(); sessionsWithOneClangd = map.value(sessionsWithOneClangdKey()).toStringList(); diagnosticConfigId = Id::fromSetting(map.value(diagnosticConfigIdKey(), initialClangDiagnosticConfigId().toSetting())); diff --git a/src/plugins/cppeditor/cppcodemodelsettings.h b/src/plugins/cppeditor/cppcodemodelsettings.h index c81fbda6f0..b13acb3f05 100644 --- a/src/plugins/cppeditor/cppcodemodelsettings.h +++ b/src/plugins/cppeditor/cppcodemodelsettings.h @@ -19,7 +19,6 @@ namespace ProjectExplorer { class Project; } namespace Utils { class MacroExpander; -class Store; } // namespace Utils namespace CppEditor { @@ -135,32 +134,22 @@ public: ClangDiagnosticConfigs customDiagnosticConfigs; Utils::Id diagnosticConfigId; - int workerThreadLimit = DefaultWorkerThreadLimit; - int documentUpdateThreshold = DefaultDocumentUpdateThreshold; - qint64 sizeThresholdInKb = DefaultSizeThresholdInKb; - bool useClangd = DefaultUseClangd; - IndexingPriority indexingPriority = DefaultIndexingPriority; + int workerThreadLimit = 0; + int documentUpdateThreshold = 500; + qint64 sizeThresholdInKb = 1024; + bool useClangd = true; + IndexingPriority indexingPriority = IndexingPriority::Low; QString projectIndexPathTemplate = defaultProjectIndexPathTemplate(); QString sessionIndexPathTemplate = defaultSessionIndexPathTemplate(); - HeaderSourceSwitchMode headerSourceSwitchMode = DefaultHeaderSourceSwitchMode; - CompletionRankingModel completionRankingModel = DefaultCompletionRankingModel; - bool autoIncludeHeaders = DefaultAutoIncludeHeaders; - bool sizeThresholdEnabled = DefaultSizeThresholdEnabled; + HeaderSourceSwitchMode headerSourceSwitchMode = HeaderSourceSwitchMode::Both; + CompletionRankingModel completionRankingModel = CompletionRankingModel::Default; + bool autoIncludeHeaders = false; + bool sizeThresholdEnabled = false; bool haveCheckedHardwareReqirements = false; int completionResults = defaultCompletionResults(); private: static int defaultCompletionResults(); - - static constexpr auto DefaultWorkerThreadLimit = 0; - static constexpr auto DefaultDocumentUpdateThreshold = 500; - static constexpr auto DefaultSizeThresholdInKb = 1024ll; - static constexpr auto DefaultUseClangd = true; - static constexpr auto DefaultIndexingPriority = ClangdSettings::IndexingPriority::Low; - static constexpr auto DefaultHeaderSourceSwitchMode = HeaderSourceSwitchMode::Both; - static constexpr auto DefaultCompletionRankingModel = CompletionRankingModel::Default; - static constexpr auto DefaultAutoIncludeHeaders = false; - static constexpr auto DefaultSizeThresholdEnabled = false; }; ClangdSettings(const Data &data) : m_data(data) {} diff --git a/src/plugins/cppeditor/cppdoxygen_test.cpp b/src/plugins/cppeditor/cppdoxygen_test.cpp index 2cab76ee49..2d85345303 100644 --- a/src/plugins/cppeditor/cppdoxygen_test.cpp +++ b/src/plugins/cppeditor/cppdoxygen_test.cpp @@ -225,26 +225,30 @@ void DoxygenTest::testBasic_data() /// test cpp style doxygen comment when inside a indented scope QTest::newRow("cpp_styleA_indented") << _( - " bool preventFolding;\n" + "void func() {\n" " ///|\n" " int a;\n" + "}\n" ) << _( - " bool preventFolding;\n" + "void func() {\n" " ///\n" " /// \\brief a\n" " ///\n" - " int a;\n") << int(CommandPrefix::Auto); + " int a;\n" + "}\n") << int(CommandPrefix::Auto); QTest::newRow("cpp_styleB_indented") << _( - " bool preventFolding;\n" + "void func() {\n" " //!|\n" " int a;\n" + "}\n" ) << _( - " bool preventFolding;\n" + "void func() {\n" " //!\n" " //! \\brief a\n" " //!\n" - " int a;\n") << int(CommandPrefix::Auto); + " int a;\n" + "}\n") << int(CommandPrefix::Auto); QTest::newRow("cpp_styleA_indented_preserve_mixed_indention_continuation") << _( "\t bool preventFolding;\n" @@ -491,6 +495,14 @@ void DoxygenTest::runTest(const QByteArray &original, QCoreApplication::sendEvent(testDocument.m_editorWidget, &event); const QByteArray result = testDocument.m_editorWidget->document()->toPlainText().toUtf8(); + if (isClangFormatPresent()) { + QEXPECT_FAIL("noContinuationForExpressionAndComment1", + "ClangFormat indents differently", + Continue); + QEXPECT_FAIL("noContinuationForExpressionAndComment2", + "ClangFormat indents differently", + Continue); + } QCOMPARE(QLatin1String(result), QLatin1String(expected)); testDocument.m_editorWidget->undo(); diff --git a/src/plugins/cppeditor/cppquickfix_test.cpp b/src/plugins/cppeditor/cppquickfix_test.cpp index d6de78b376..98650baa21 100644 --- a/src/plugins/cppeditor/cppquickfix_test.cpp +++ b/src/plugins/cppeditor/cppquickfix_test.cpp @@ -12,8 +12,6 @@ #include "cppsourceprocessertesthelper.h" #include "cpptoolssettings.h" -#include <extensionsystem/pluginmanager.h> -#include <extensionsystem/pluginspec.h> #include <utils/fileutils.h> #include <QDebug> @@ -5406,12 +5404,6 @@ void QuickfixTest::testInsertDefsFromDecls() void QuickfixTest::testInsertAndFormatDefsFromDecls() { - static const auto isClangFormatPresent = [] { - using namespace ExtensionSystem; - return Utils::contains(PluginManager::plugins(), [](const PluginSpec *plugin) { - return plugin->name() == "ClangFormat" && plugin->isEffectivelyEnabled(); - }); - }; if (!isClangFormatPresent()) QSKIP("This test reqires ClangFormat"); diff --git a/src/plugins/cppeditor/cpptoolstestcase.cpp b/src/plugins/cppeditor/cpptoolstestcase.cpp index a55895affc..b0151e7a81 100644 --- a/src/plugins/cppeditor/cpptoolstestcase.cpp +++ b/src/plugins/cppeditor/cpptoolstestcase.cpp @@ -13,6 +13,9 @@ #include <coreplugin/editormanager/editormanager.h> +#include <extensionsystem/pluginmanager.h> +#include <extensionsystem/pluginspec.h> + #include <cplusplus/CppDocument.h> #include <projectexplorer/buildsystem.h> @@ -39,6 +42,14 @@ using namespace Utils; namespace CppEditor::Internal::Tests { +bool isClangFormatPresent() +{ + using namespace ExtensionSystem; + return Utils::contains(PluginManager::plugins(), [](const PluginSpec *plugin) { + return plugin->name() == "ClangFormat" && plugin->isEffectivelyEnabled(); + }); +}; + CppTestDocument::CppTestDocument(const QByteArray &fileName, const QByteArray &source, char cursorMarker) : m_fileName(QString::fromUtf8(fileName)) diff --git a/src/plugins/cppeditor/cpptoolstestcase.h b/src/plugins/cppeditor/cpptoolstestcase.h index 13548630e6..99969621b3 100644 --- a/src/plugins/cppeditor/cpptoolstestcase.h +++ b/src/plugins/cppeditor/cpptoolstestcase.h @@ -35,6 +35,8 @@ class CppEditorWidget; namespace Internal::Tests { +bool isClangFormatPresent(); + class CppTestDocument; typedef QSharedPointer<CppTestDocument> TestDocumentPtr; |