aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/clangcodemodel/clangdclient.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp
index 7c40086f09..6827471eb2 100644
--- a/src/plugins/clangcodemodel/clangdclient.cpp
+++ b/src/plugins/clangcodemodel/clangdclient.cpp
@@ -628,13 +628,14 @@ void ClangdClient::handleDiagnostics(const PublishDiagnosticsParams &params)
const int docVersion = documentVersion(uri);
if (params.version().value_or(docVersion) != docVersion)
return;
+ QList<CodeAction> allCodeActions;
for (const Diagnostic &diagnostic : params.diagnostics()) {
const ClangdDiagnostic clangdDiagnostic(diagnostic);
auto codeActions = clangdDiagnostic.codeActions();
if (codeActions && !codeActions->isEmpty()) {
for (CodeAction &action : *codeActions)
action.setDiagnostics({diagnostic});
- LanguageClient::updateCodeActionRefactoringMarker(this, *codeActions, uri);
+ allCodeActions << *codeActions;
} else {
// We know that there's only one kind of diagnostic for which clangd has
// a quickfix tweak, so let's not be wasteful.
@@ -644,6 +645,8 @@ void ClangdClient::handleDiagnostics(const PublishDiagnosticsParams &params)
requestCodeActions(uri, diagnostic);
}
}
+ if (!allCodeActions.isEmpty())
+ LanguageClient::updateCodeActionRefactoringMarker(this, allCodeActions, uri);
}
void ClangdClient::handleDocumentOpened(TextDocument *doc)