mirror of
https://github.com/mistricky/codesnap.nvim.git
synced 2024-12-26 19:36:29 +00:00
[Feat] supports for allows users can custom min_width of snapshots
This commit is contained in:
parent
8f9e6fa5aa
commit
19dd1d4817
6 changed files with 29 additions and 5 deletions
|
@ -89,11 +89,17 @@ pub trait Component {
|
|||
fn parsed_style(&self) -> Style<f32> {
|
||||
let style = self.style();
|
||||
let (width, height) = self.get_dynamic_wh();
|
||||
let width = self.parse_size(style.width, width)
|
||||
+ style.padding.horizontal()
|
||||
+ style.margin.horizontal();
|
||||
|
||||
Style {
|
||||
width: self.parse_size(style.width, width)
|
||||
+ style.padding.horizontal()
|
||||
+ style.margin.horizontal(),
|
||||
min_width: style.min_width,
|
||||
width: if width > style.min_width {
|
||||
width
|
||||
} else {
|
||||
style.min_width
|
||||
},
|
||||
height: self.parse_size(style.height, height)
|
||||
+ style.padding.vertical()
|
||||
+ style.margin.vertical(),
|
||||
|
|
|
@ -15,6 +15,7 @@ pub enum Size {
|
|||
pub struct Style<T> {
|
||||
pub width: T,
|
||||
pub height: T,
|
||||
pub min_width: f32,
|
||||
pub align: ComponentAlign,
|
||||
pub padding: Padding,
|
||||
pub margin: Margin,
|
||||
|
@ -26,6 +27,7 @@ pub type ComponentStyle = Style<f32>;
|
|||
impl Default for RawComponentStyle {
|
||||
fn default() -> Self {
|
||||
Style {
|
||||
min_width: 0.,
|
||||
width: Size::Dynamic,
|
||||
height: Size::Dynamic,
|
||||
align: ComponentAlign::Row,
|
||||
|
@ -38,6 +40,7 @@ impl Default for RawComponentStyle {
|
|||
impl Default for ComponentStyle {
|
||||
fn default() -> Self {
|
||||
Style {
|
||||
min_width: 0.,
|
||||
width: 0.,
|
||||
height: 0.,
|
||||
align: ComponentAlign::Row,
|
||||
|
@ -54,6 +57,12 @@ impl RawComponentStyle {
|
|||
self
|
||||
}
|
||||
|
||||
// Only works if the width is calculate dynamically
|
||||
pub fn min_width(mut self, min_width: f32) -> Self {
|
||||
self.min_width = min_width;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn align(mut self, align: ComponentAlign) -> Self {
|
||||
self.align = align;
|
||||
self
|
||||
|
|
|
@ -10,6 +10,7 @@ pub const EDITOR_PADDING: f32 = 20.;
|
|||
|
||||
pub struct Rect {
|
||||
radius: f32,
|
||||
min_width: f32,
|
||||
children: Vec<Box<dyn Component>>,
|
||||
}
|
||||
|
||||
|
@ -20,6 +21,7 @@ impl Component for Rect {
|
|||
|
||||
fn style(&self) -> RawComponentStyle {
|
||||
Style::default()
|
||||
.min_width(self.min_width)
|
||||
.align(ComponentAlign::Column)
|
||||
.padding(Padding::from_value(EDITOR_PADDING))
|
||||
}
|
||||
|
@ -94,7 +96,11 @@ impl Component for Rect {
|
|||
}
|
||||
|
||||
impl Rect {
|
||||
pub fn new(radius: f32, children: Vec<Box<dyn Component>>) -> Rect {
|
||||
Rect { radius, children }
|
||||
pub fn new(radius: f32, min_width: Option<f32>, children: Vec<Box<dyn Component>>) -> Rect {
|
||||
Rect {
|
||||
radius,
|
||||
children,
|
||||
min_width: min_width.unwrap_or(0.),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@ pub struct TakeSnapshotParams {
|
|||
pub start_line_number: Option<usize>,
|
||||
pub highlight_start_line_number: Option<usize>,
|
||||
pub highlight_end_line_number: Option<usize>,
|
||||
pub min_width: Option<f32>,
|
||||
}
|
||||
|
||||
impl FromObject for TakeSnapshotParams {
|
||||
|
|
|
@ -29,6 +29,7 @@ pub fn take_snapshot(params: TakeSnapshotParams) -> render_error::Result<Pixmap>
|
|||
let pixmap = Container::from_children(vec![Box::new(Background::from_children(vec![
|
||||
Box::new(Rect::new(
|
||||
16.,
|
||||
params.min_width,
|
||||
vec![
|
||||
Box::new(MacTitleBar::from_radius(8., params.mac_window_bar)),
|
||||
Box::new(Breadcrumbs::from_path(
|
||||
|
|
|
@ -11,6 +11,7 @@ return {
|
|||
breadcrumbs_separator = "/",
|
||||
has_breadcrumbs = false,
|
||||
has_line_number = false,
|
||||
min_width = 0,
|
||||
},
|
||||
cwd = path_utils.back(path_utils.back(debug.getinfo(1, "S").source:sub(2):match("(.*[/\\])"))),
|
||||
preview_switch = true,
|
||||
|
|
Loading…
Reference in a new issue