From d91e62524f7c6437349426687ded6d1182ad7346 Mon Sep 17 00:00:00 2001 From: CharlesChen0823 Date: Thu, 19 Sep 2024 22:41:42 +0800 Subject: [PATCH] assistant: Fix offset calculation not in char boundary (#18069) Closes #17825 Release Notes: - N/A --- crates/assistant/src/prompts.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/assistant/src/prompts.rs b/crates/assistant/src/prompts.rs index 83e894f797..ae2ab4787e 100644 --- a/crates/assistant/src/prompts.rs +++ b/crates/assistant/src/prompts.rs @@ -220,7 +220,8 @@ impl PromptBuilder { let before_range = 0..range.start; let truncated_before = if before_range.len() > MAX_CTX { is_truncated = true; - range.start - MAX_CTX..range.start + let start = buffer.clip_offset(range.start - MAX_CTX, text::Bias::Right); + start..range.start } else { before_range }; @@ -228,7 +229,8 @@ impl PromptBuilder { let after_range = range.end..buffer.len(); let truncated_after = if after_range.len() > MAX_CTX { is_truncated = true; - range.end..range.end + MAX_CTX + let end = buffer.clip_offset(range.end + MAX_CTX, text::Bias::Left); + range.end..end } else { after_range };