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);