diff --git a/tools/lsp/src/lib.rs b/tools/lsp/src/lib.rs index 7ef4fad8..15caf177 100644 --- a/tools/lsp/src/lib.rs +++ b/tools/lsp/src/lib.rs @@ -752,11 +752,11 @@ impl LanguageServer for Backend { while let Some(pos_in_line) = line[start_pos..].find(&word) { let actual_pos = start_pos + pos_in_line; let char_before = if actual_pos > 0 { - line.chars().nth(actual_pos - 1) + line[..actual_pos].chars().next_back() } else { None }; - let char_after = line.chars().nth(actual_pos + word_len); + let char_after = line[actual_pos + word_len..].chars().next(); let is_boundary_before = char_before.map_or(true, |c| !c.is_alphanumeric() && c != '_'); @@ -803,11 +803,11 @@ impl LanguageServer for Backend { while let Some(pos_in_line) = line[start_pos..].find(&word) { let actual_pos = start_pos + pos_in_line; let char_before = if actual_pos > 0 { - line.chars().nth(actual_pos - 1) + line[..actual_pos].chars().next_back() } else { None }; - let char_after = line.chars().nth(actual_pos + word_len); + let char_after = line[actual_pos + word_len..].chars().next(); let is_boundary_before = char_before.map_or(true, |c| !c.is_alphanumeric() && c != '_');