Fix off-by-1 in prompt creation (#64)

This commit is contained in:
Markus Hennerbichler 2024-01-28 22:19:15 +00:00 committed by GitHub
parent a5f2e87315
commit ec2072a621
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -311,12 +311,12 @@ fn build_prompt(
let mut after_iter = text.lines_at(pos.line as usize); let mut after_iter = text.lines_at(pos.line as usize);
let mut before_line = before_iter.next(); let mut before_line = before_iter.next();
if let Some(line) = before_line { if let Some(line) = before_line {
let col = (pos.character as usize).clamp(0, line.len_chars() - 1); let col = (pos.character as usize).clamp(0, line.len_chars());
before_line = Some(line.slice(0..col)); before_line = Some(line.slice(0..col));
} }
let mut after_line = after_iter.next(); let mut after_line = after_iter.next();
if let Some(line) = after_line { if let Some(line) = after_line {
let col = (pos.character as usize).clamp(0, line.len_chars() - 1); let col = (pos.character as usize).clamp(0, line.len_chars());
after_line = Some(line.slice(col..)); after_line = Some(line.slice(col..));
} }
let mut before = vec![]; let mut before = vec![];
@ -374,7 +374,7 @@ fn build_prompt(
let mut first = true; let mut first = true;
for mut line in text.lines_at(pos.line as usize + 1).reversed() { for mut line in text.lines_at(pos.line as usize + 1).reversed() {
if first { if first {
let col = (pos.character as usize).clamp(0, line.len_chars() - 1); let col = (pos.character as usize).clamp(0, line.len_chars());
line = line.slice(0..col); line = line.slice(0..col);
first = false; first = false;
} }