Change summary
crates/editor/src/editor.rs | 26 ++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
Detailed changes
@@ -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())));
+ }
}
}
}