Initial public release of Warp.

Repo-Sync-Origin: warpdotdev/warp-internal@12af1d983b
This commit is contained in:
David Stern
2026-04-28 08:43:33 -05:00
commit 0dbd3d567a
4982 changed files with 1431549 additions and 0 deletions
+132
View File
@@ -0,0 +1,132 @@
use std::{
path::{Path, PathBuf},
rc::Rc,
};
use std::ops::Range;
use warp_editor::{content::buffer::InitialBufferState, render::model::LineCount};
use warp_util::file::{FileLoadError, FileSaveError};
use warpui::{
elements::MouseStateHandle, AppContext, Element, Entity, TypedActionView, View, ViewContext,
ViewHandle, WindowId,
};
use ai::diff_validation::DiffType;
use super::editor::view::CodeEditorView;
use super::ImmediateSaveError;
use crate::terminal::TerminalView;
use crate::{code::editor::EditorReviewComment, code_review::comments::CommentId};
use warp_core::ui::appearance::Appearance;
pub use super::diff_viewer::DisplayMode;
#[derive(Debug)]
pub enum LocalCodeEditorEvent {
#[allow(dead_code)]
FileLoaded,
#[allow(dead_code)]
FailedToLoad { error: Rc<FileLoadError> },
#[allow(dead_code)]
FileSaved,
#[allow(dead_code)]
FailedToSave { error: Rc<FileSaveError> },
#[allow(dead_code)]
DiffAccepted,
#[allow(dead_code)]
DiffRejected,
#[allow(dead_code)]
VimMinimizeRequested,
#[allow(dead_code)]
UserEdited,
#[allow(dead_code)]
DiffStatusUpdated,
#[allow(dead_code)]
SelectionAddedAsContext {
relative_file_path: String,
line_range: Range<LineCount>,
selected_text: String,
},
#[allow(dead_code)]
DiscardUnsavedChanges { path: PathBuf },
#[allow(dead_code)]
CommentSaved { comment: EditorReviewComment },
#[allow(dead_code)]
DeleteComment { id: CommentId },
#[allow(dead_code)]
RequestOpenComment(CommentId),
#[allow(dead_code)]
ViewportUpdated,
#[allow(dead_code)]
DelayedRenderingFlushed,
#[allow(dead_code)]
LayoutInvalidated,
}
pub struct LocalCodeEditorView {
editor: ViewHandle<CodeEditorView>,
}
impl LocalCodeEditorView {
pub fn new(
editor: ViewHandle<CodeEditorView>,
_diff_type: Option<DiffType>,
_enable_diff_nav_by_default: bool,
_display_mode: Option<DisplayMode>,
_ctx: &mut ViewContext<Self>,
) -> Self {
Self { editor }
}
pub fn with_selection_as_context(self, _terminal_target_fn: Box<TerminalTargetFn>) -> Self {
self
}
pub fn reset_with_state(&mut self, _state: InitialBufferState, _ctx: &mut ViewContext<Self>) {}
pub fn editor(&self) -> &ViewHandle<CodeEditorView> {
&self.editor
}
pub fn save_local(&self, _ctx: &mut ViewContext<Self>) -> Result<(), ImmediateSaveError> {
Err(ImmediateSaveError::NoFileId)
}
pub fn has_unsaved_changes(&self, _ctx: &AppContext) -> bool {
false
}
pub fn file_path(&self) -> Option<&Path> {
None
}
}
impl Entity for LocalCodeEditorView {
type Event = LocalCodeEditorEvent;
}
impl View for LocalCodeEditorView {
fn ui_name() -> &'static str {
"LocalCodeEditorView"
}
fn render(&self, _app: &AppContext) -> Box<dyn Element> {
warpui::elements::Empty::new().finish()
}
}
impl TypedActionView for LocalCodeEditorView {
type Action = ();
}
type TerminalTargetFn = dyn Fn(WindowId, &AppContext) -> Option<ViewHandle<TerminalView>>;
pub fn render_unsaved_circle_with_tooltip(
_mouse_state: MouseStateHandle,
_tooltip_text: String,
_size: f32,
_right_margin: f32,
_appearance: &Appearance,
) -> Box<dyn Element> {
warpui::elements::Empty::new().finish()
}