Detailed changes
@@ -1,5 +1,5 @@
use crate::prelude::*;
-use crate::EditorPane;
+use crate::{h_stack, EditorPane, Icon, IconButton, Input};
#[derive(Element)]
#[element(view_state = "EditorPane")]
@@ -15,6 +15,15 @@ impl BufferSearch {
_view: &mut EditorPane,
cx: &mut ViewContext<EditorPane>,
) -> impl Element<ViewState = EditorPane> {
- div().child("This is where Buffer Search goes.")
+ let theme = theme(cx);
+
+ h_stack()
+ .fill(theme.highest.base.default.background)
+ .p_2()
+ .child(
+ h_stack()
+ .child(Input::new("Search (↑/↓ for previous/next query)"))
+ .child(IconButton::new(Icon::Replace)),
+ )
}
}
@@ -4,7 +4,7 @@ use std::sync::Arc;
use gpui3::{DefiniteLength, Hsla, Interactive, MouseButton, WindowContext};
use crate::prelude::*;
-use crate::{h_stack, theme, Icon, IconColor, IconElement, Label, LabelColor, LabelSize};
+use crate::{h_stack, Icon, IconColor, IconElement, Label, LabelColor, LabelSize};
#[derive(Default, PartialEq, Clone, Copy)]
pub enum IconPosition {
@@ -82,6 +82,8 @@ pub enum Icon {
MicMute,
Plus,
Quote,
+ Replace,
+ ReplaceAll,
Screen,
SelectAll,
Split,
@@ -130,6 +132,8 @@ impl Icon {
Icon::MicMute => "icons/mic-mute.svg",
Icon::Plus => "icons/plus.svg",
Icon::Quote => "icons/quote.svg",
+ Icon::Replace => "icons/replace.svg",
+ Icon::ReplaceAll => "icons/replace_all.svg",
Icon::Screen => "icons/desktop.svg",
Icon::SelectAll => "icons/select-all.svg",
Icon::Split => "icons/split.svg",