From 718086dea8e7f9a70e337eb9d6ef16140f13fc60 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 21 Sep 2022 11:22:20 +0200 Subject: [PATCH] LanguageClient: Allow to pre-set the new symbol name ... when renaming. There are contexts which provide the new name in advance. Change-Id: I4bda689405060c343c0654d0aca274f10ee22752 Reviewed-by: David Schulz Reviewed-by: --- .../languageclient/languageclientsymbolsupport.cpp | 8 +++++--- src/plugins/languageclient/languageclientsymbolsupport.h | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/plugins/languageclient/languageclientsymbolsupport.cpp b/src/plugins/languageclient/languageclientsymbolsupport.cpp index d86ac58ba93..defa368f1e3 100644 --- a/src/plugins/languageclient/languageclientsymbolsupport.cpp +++ b/src/plugins/languageclient/languageclientsymbolsupport.cpp @@ -288,14 +288,16 @@ bool SymbolSupport::supportsRename(TextEditor::TextDocument *document) return LanguageClient::supportsRename(m_client, document, prepareSupported); } -void SymbolSupport::renameSymbol(TextEditor::TextDocument *document, const QTextCursor &cursor) +void SymbolSupport::renameSymbol(TextEditor::TextDocument *document, const QTextCursor &cursor, + const QString &newSymbolName) { const TextDocumentPositionParams params = generateDocPosParams(document, cursor); QTextCursor tc = cursor; tc.select(QTextCursor::WordUnderCursor); const QString oldSymbolName = tc.selectedText(); - const QString placeholder = m_defaultSymbolMapper ? m_defaultSymbolMapper(oldSymbolName) - : oldSymbolName; + QString placeholder = newSymbolName; + if (placeholder.isEmpty()) + placeholder = m_defaultSymbolMapper ? m_defaultSymbolMapper(oldSymbolName) : oldSymbolName; bool prepareSupported; if (!LanguageClient::supportsRename(m_client, document, prepareSupported)) { diff --git a/src/plugins/languageclient/languageclientsymbolsupport.h b/src/plugins/languageclient/languageclientsymbolsupport.h index 79b250ffcc4..3fde3c58d01 100644 --- a/src/plugins/languageclient/languageclientsymbolsupport.h +++ b/src/plugins/languageclient/languageclientsymbolsupport.h @@ -42,7 +42,8 @@ public: const ResultHandler &handler = {}); bool supportsRename(TextEditor::TextDocument *document); - void renameSymbol(TextEditor::TextDocument *document, const QTextCursor &cursor); + void renameSymbol(TextEditor::TextDocument *document, const QTextCursor &cursor, + const QString &newSymbolName = {}); static Core::Search::TextRange convertRange(const LanguageServerProtocol::Range &range); static QStringList getFileContents(const Utils::FilePath &filePath);