CppEditor: Consider symbol occurrences in comments

... when renaming.
For local renaming, we consider only function parameters.

Task-number: QTCREATORBUG-12051
Change-Id: I7948d69f11b97663c9bd747ae6241a82dd9bdd82
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Kandeler
2023-08-23 17:26:02 +02:00
parent 164cb389dc
commit 0a058bb657
28 changed files with 525 additions and 86 deletions

View File

@@ -563,11 +563,22 @@ void SymbolSupport::handleRenameResponse(Core::SearchResult *search,
const std::optional<WorkspaceEdit> &edits = response.result();
if (edits.has_value()) {
search->addResults(generateReplaceItems(*edits,
search,
m_limitRenamingToProjects,
m_client->hostPathMapper()),
Core::SearchResult::AddOrdered);
const Utils::SearchResultItems items = generateReplaceItems(
*edits, search, m_limitRenamingToProjects, m_client->hostPathMapper());
search->addResults(items, Core::SearchResult::AddOrdered);
if (m_renameResultsEnhancer) {
Utils::SearchResultItems additionalItems = m_renameResultsEnhancer(items);
for (Utils::SearchResultItem &item : additionalItems) {
TextEdit edit;
const Utils::Text::Position startPos = item.mainRange().begin;
const Utils::Text::Position endPos = item.mainRange().end;
edit.setRange({{startPos.line - 1, startPos.column},
{endPos.line - 1, endPos.column}});
edit.setNewText(search->textToReplace());
item.setUserData(QVariant(edit));
}
search->addResults(additionalItems, Core::SearchResult::AddSortedByPosition);
}
qobject_cast<ReplaceWidget *>(search->additionalReplaceWidget())->showLabel(false);
search->setReplaceEnabled(true);
search->finishSearch(false);
@@ -634,6 +645,11 @@ void SymbolSupport::setDefaultRenamingSymbolMapper(const SymbolMapper &mapper)
m_defaultSymbolMapper = mapper;
}
void SymbolSupport::setRenameResultsEnhancer(const RenameResultsEnhancer &enhancer)
{
m_renameResultsEnhancer = enhancer;
}
} // namespace LanguageClient
#include <languageclientsymbolsupport.moc>