Fix auto-rename ranges with special characters (#13719)

Release Notes:

- Fixed ([#13551](https://github.com/zed-industries/zed/issues/13551)).
This commit is contained in:
Krzysztof Witkowski 2024-07-01 23:58:10 +02:00 committed by GitHub
parent 3a43adba00
commit 0eb26d29ee
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3123,14 +3123,24 @@ impl Editor {
let anchor = snapshot.anchor_after(selection.end);
if !self.linked_edit_ranges.is_empty() {
let start_anchor = snapshot.anchor_before(selection.start);
if let Some(ranges) =
self.linked_editing_ranges_for(start_anchor.text_anchor..anchor.text_anchor, cx)
{
for (buffer, edits) in ranges {
linked_edits
.entry(buffer.clone())
.or_default()
.extend(edits.into_iter().map(|range| (range, text.clone())));
let is_word_char = text.chars().next().map_or(true, |char| {
let scope = snapshot.language_scope_at(start_anchor.to_offset(&snapshot));
let kind = char_kind(&scope, char);
kind == CharKind::Word
});
if is_word_char {
if let Some(ranges) = self
.linked_editing_ranges_for(start_anchor.text_anchor..anchor.text_anchor, cx)
{
for (buffer, edits) in ranges {
linked_edits
.entry(buffer.clone())
.or_default()
.extend(edits.into_iter().map(|range| (range, text.clone())));
}
}
}
}