From ef6cb11d5c553517d7e5dc400b06aac500e135e5 Mon Sep 17 00:00:00 2001 From: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com> Date: Fri, 16 Jun 2023 13:29:12 +0200 Subject: [PATCH] Emit editor event whether we insert a newline or not. --- crates/ai/src/assistant.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/crates/ai/src/assistant.rs b/crates/ai/src/assistant.rs index 0d748e52b2082faaed7867605b0ff59d31b76741..d6b8f52dd191e4d604d6584b4a883f77c706f3a8 100644 --- a/crates/ai/src/assistant.rs +++ b/crates/ai/src/assistant.rs @@ -736,8 +736,13 @@ impl Assistant { } let role = metadata.role; - self.buffer.update(cx, |buffer, cx| { - buffer.edit([(range.end..range.end, "\n")], None, cx) + let is_newline = self.buffer.update(cx, |buffer, cx| { + if buffer.chars_at(range.end).next() != Some('\n') { + buffer.edit([(range.end..range.end, "\n")], None, cx); + false + } else { + true + } }); let suffix = Message { id: MessageId(post_inc(&mut self.next_message_id.0)), @@ -752,7 +757,9 @@ impl Assistant { error: None, }, ); - + if is_newline { + cx.emit(AssistantEvent::MessagesEdited); + } if range.start == range.end || range.start == message_range.start { (None, Some(suffix)) } else {