aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cppeditor/cppquickfixsettings.h
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2024-05-13 15:46:13 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2024-05-15 10:59:01 +0000
commitce16d5821414df8fb78c9b092e9a0515bd01b08a (patch)
tree3a96714beea0b721adcc4e7fa2d9152bb909da80 /src/plugins/cppeditor/cppquickfixsettings.h
parentde18097cb42dc74ac60bdf1904514f82eb6c9364 (diff)
CppEditor: Add quickfixes/ subdirectory
We'd like to split up the monster files cppquickfixes.cpp and cppquickfix_test.cpp by moving non-trivial quickfixes into dedicated files. Since there will be many of them, we want to have them in a separate directory. This patch prepares that. Change-Id: I1e78fab5cce25151662297482582c8043618332e Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/cppeditor/cppquickfixsettings.h')
-rw-r--r--src/plugins/cppeditor/cppquickfixsettings.h134
1 files changed, 0 insertions, 134 deletions
diff --git a/src/plugins/cppeditor/cppquickfixsettings.h b/src/plugins/cppeditor/cppquickfixsettings.h
deleted file mode 100644
index d0335162768..00000000000
--- a/src/plugins/cppeditor/cppquickfixsettings.h
+++ /dev/null
@@ -1,134 +0,0 @@
-// Copyright (C) 2020 Leander Schulten <Leander.Schulten@rwth-aachen.de>
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-
-#pragma once
-
-#include <QString>
-#include <QStringList>
-
-#include <optional>
-#include <vector>
-
-namespace Utils { class QtcSettings; }
-
-namespace CppEditor {
-
-class CppQuickFixSettings
-{
-public:
- static CppQuickFixSettings *instance()
- {
- static CppQuickFixSettings settings(true);
- return &settings;
- }
- struct CustomTemplate
- {
- bool operator==(const CustomTemplate &b) const
- {
- return types == b.types
- && equalComparison == b.equalComparison
- && returnExpression == b.returnExpression
- && returnType == b.returnType
- && assignment == b.assignment;
- }
- QStringList types;
- QString equalComparison;
- QString returnExpression;
- QString returnType;
- QString assignment;
- };
-
- struct GetterSetterTemplate
- {
- QString equalComparison = "<cur> == <new>";
- QString returnExpression = "<cur>";
- QString assignment = "<cur> = <new>";
- const static inline QString TYPE_PATTERN = "<type>";
- const static inline QString TEMPLATE_PARAMETER_PATTERN = "<T>";
- std::optional<QString> returnTypeTemplate;
- void replacePlaceholders(QString currentValueVariableName, QString newValueVariableName);
- };
-
- enum class FunctionLocation {
- InsideClass,
- OutsideClass,
- CppFile,
- };
- enum class MissingNamespaceHandling {
- CreateMissing,
- AddUsingDirective,
- RewriteType, // e.g. change classname to namespacename::classname in cpp file
- };
-
- explicit CppQuickFixSettings(bool loadGlobalSettings = false);
-
- void loadGlobalSettings();
- void loadSettingsFrom(Utils::QtcSettings *);
- void saveSettingsTo(Utils::QtcSettings *);
- void saveAsGlobalSettings();
- void setDefaultSettings();
-
- static QString replaceNamePlaceholders(const QString &nameTemplate, const QString &name);
- bool isValueType(QString type) const;
- GetterSetterTemplate findGetterSetterTemplate(QString fullyQualifiedType) const;
-
- QString getGetterName(const QString &variableName) const
- {
- return replaceNamePlaceholders(getterNameTemplate, variableName);
- }
- QString getSetterName(const QString &variableName) const
- {
- return replaceNamePlaceholders(setterNameTemplate, variableName);
- }
- QString getSignalName(const QString &variableName) const
- {
- return replaceNamePlaceholders(signalNameTemplate, variableName);
- }
- QString getResetName(const QString &variableName) const
- {
- return replaceNamePlaceholders(resetNameTemplate, variableName);
- }
- QString getSetterParameterName(const QString &variableName) const
- {
- return replaceNamePlaceholders(setterParameterNameTemplate, variableName);
- }
- QString getMemberVariableName(const QString &variableName) const
- {
- return replaceNamePlaceholders(memberVariableNameTemplate, variableName);
- }
- FunctionLocation determineGetterLocation(int lineCount) const;
- FunctionLocation determineSetterLocation(int lineCount) const;
- bool createMissingNamespacesinCppFile() const
- {
- return cppFileNamespaceHandling == MissingNamespaceHandling::CreateMissing;
- }
- bool addUsingNamespaceinCppFile() const
- {
- return cppFileNamespaceHandling == MissingNamespaceHandling::AddUsingDirective;
- }
- bool rewriteTypesinCppFile() const
- {
- return cppFileNamespaceHandling == MissingNamespaceHandling::RewriteType;
- }
-
-public:
- int getterOutsideClassFrom = 0;
- int getterInCppFileFrom = 1;
- int setterOutsideClassFrom = 0;
- int setterInCppFileFrom = 1;
- QString getterAttributes; // e.g. [[nodiscard]]
- QString getterNameTemplate = "<name>"; // or get<Name>
- QString setterNameTemplate = "set<Name>"; // or set_<name> or Set<Name>
- QString setterParameterNameTemplate = "new<Name>";
- QString signalNameTemplate = "<name>Changed";
- QString resetNameTemplate = "reset<Name>";
- bool signalWithNewValue = false;
- bool setterAsSlot = false;
- MissingNamespaceHandling cppFileNamespaceHandling = MissingNamespaceHandling::CreateMissing;
- QString memberVariableNameTemplate = "m_<name>";
- QStringList valueTypes; // if contains use value. Ignores namespaces and template parameters
- bool returnByConstRef = false;
- bool useAuto = true;
- std::vector<CustomTemplate> customTemplates;
-};
-} // namespace CppEditor