summaryrefslogtreecommitdiff
path: root/src/plugins/cppeditor/cppquickfixassistant.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2022-01-31 13:10:28 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2022-02-01 11:02:53 +0000
commit8b63dfccc64ecfa514a05b868142e91a7e3c94d2 (patch)
tree79a747d1b9d4072b8453a4b586766b8200b41008 /src/plugins/cppeditor/cppquickfixassistant.cpp
parent116b498b342b3c2194bd864417c360808495fb13 (diff)
downloadqt-creator-8b63dfccc64ecfa514a05b868142e91a7e3c94d2.tar.gz
ClangCodeModel: Make clangd refactoring actions available
Introduce an assist processor that merges our built-in quickfixes with refactoring actions from clangd ("tweaks"). For now, we make it clear which ones are coming from clangd, and we do not filter duplicate functionality. In the future, we might want to disable redundant built-in actions if clangd is enabled for the respective file. Change-Id: I04842132798c8635dfddf8cfc98cc7a6313fac09 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/cppeditor/cppquickfixassistant.cpp')
-rw-r--r--src/plugins/cppeditor/cppquickfixassistant.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/plugins/cppeditor/cppquickfixassistant.cpp b/src/plugins/cppeditor/cppquickfixassistant.cpp
index f254abc8df..9d5d2271a6 100644
--- a/src/plugins/cppeditor/cppquickfixassistant.cpp
+++ b/src/plugins/cppeditor/cppquickfixassistant.cpp
@@ -53,14 +53,8 @@ class CppQuickFixAssistProcessor : public IAssistProcessor
{
IAssistProposal *perform(const AssistInterface *interface) override
{
- QSharedPointer<const AssistInterface> assistInterface(interface);
- auto cppInterface = assistInterface.staticCast<const CppQuickFixInterface>();
-
- QuickFixOperations quickFixes;
- for (CppQuickFixFactory *factory : CppQuickFixFactory::cppQuickFixFactories())
- factory->match(*cppInterface, quickFixes);
-
- return GenericProposal::createProposal(interface, quickFixes);
+ QSharedPointer<const AssistInterface> dummy(interface); // FIXME: Surely this cannot be our way of doing memory management???
+ return GenericProposal::createProposal(interface, quickFixOperations(interface));
}
};
@@ -137,5 +131,15 @@ bool CppQuickFixInterface::isCursorOn(const AST *ast) const
return currentFile()->isCursorOn(ast);
}
+QuickFixOperations quickFixOperations(const TextEditor::AssistInterface *interface)
+{
+ const auto cppInterface = dynamic_cast<const CppQuickFixInterface *>(interface);
+ QTC_ASSERT(cppInterface, return {});
+ QuickFixOperations quickFixes;
+ for (CppQuickFixFactory *factory : CppQuickFixFactory::cppQuickFixFactories())
+ factory->match(*cppInterface, quickFixes);
+ return quickFixes;
+}
+
} // namespace Internal
} // namespace CppEditor