From ec2072a621254065398a62c1fb818a86f8d516fc Mon Sep 17 00:00:00 2001 From: Markus Hennerbichler Date: Sun, 28 Jan 2024 22:19:15 +0000 Subject: [PATCH] Fix off-by-1 in prompt creation (#64) --- crates/llm-ls/src/main.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/llm-ls/src/main.rs b/crates/llm-ls/src/main.rs index 0c3ee8c..46825b1 100644 --- a/crates/llm-ls/src/main.rs +++ b/crates/llm-ls/src/main.rs @@ -311,12 +311,12 @@ fn build_prompt( let mut after_iter = text.lines_at(pos.line as usize); let mut before_line = before_iter.next(); 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)); } let mut after_line = after_iter.next(); 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..)); } let mut before = vec![]; @@ -374,7 +374,7 @@ fn build_prompt( let mut first = true; for mut line in text.lines_at(pos.line as usize + 1).reversed() { 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); first = false; }