Add streaming_diff crate (#23264)

This PR extracts the streaming diff implementation to its own
`streaming_diff` crate.

It was duplicated between `assistant` and `assistant2`, but their
implementations were exactly the same (and I don't see a reason why they
would need to diverge).

Release Notes:

- N/A
This commit is contained in:
Marshall Bowers 2025-01-16 18:12:46 -05:00 committed by GitHub
parent 4d22f7e529
commit 24495f09f9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 41 additions and 1113 deletions

View file

@ -9,7 +9,6 @@ mod prompt_library;
mod slash_command;
pub(crate) mod slash_command_picker;
pub mod slash_command_settings;
mod streaming_diff;
mod terminal_inline_assistant;
use std::path::PathBuf;
@ -39,7 +38,6 @@ pub use crate::context_store::*;
pub(crate) use crate::inline_assistant::*;
pub use crate::patch::*;
use crate::slash_command_settings::SlashCommandSettings;
pub(crate) use crate::streaming_diff::*;
actions!(
assistant,

View file

@ -1,7 +1,6 @@
use crate::{
humanize_token_count, AssistantPanel, AssistantPanelEvent, CharOperation,
CycleNextInlineAssist, CyclePreviousInlineAssist, LineDiff, LineOperation, RequestType,
StreamingDiff,
humanize_token_count, AssistantPanel, AssistantPanelEvent, CycleNextInlineAssist,
CyclePreviousInlineAssist, RequestType,
};
use anyhow::{anyhow, Context as _, Result};
use assistant_settings::AssistantSettings;
@ -56,6 +55,7 @@ use std::{
task::{self, Poll},
time::{Duration, Instant},
};
use streaming_diff::{CharOperation, LineDiff, LineOperation, StreamingDiff};
use telemetry_events::{AssistantEvent, AssistantKind, AssistantPhase};
use terminal_view::terminal_panel::TerminalPanel;
use text::{OffsetRangeExt, ToPoint as _};

File diff suppressed because it is too large Load diff