pub struct SplitManager { /* private fields */ }Expand description
Manager for the split view system
Implementations§
Source§impl SplitManager
impl SplitManager
Sourcepub fn active_split(&self) -> LeafId
pub fn active_split(&self) -> LeafId
Get the currently active split ID
Sourcepub fn set_active_split(&mut self, split_id: LeafId) -> bool
pub fn set_active_split(&mut self, split_id: LeafId) -> bool
Set the active split (must be a leaf)
Sourcepub fn active_buffer_id(&self) -> Option<BufferId>
pub fn active_buffer_id(&self) -> Option<BufferId>
Get the buffer ID of the active split (if it’s a leaf)
Sourcepub fn get_buffer_id(&self, split_id: SplitId) -> Option<BufferId>
pub fn get_buffer_id(&self, split_id: SplitId) -> Option<BufferId>
Get the buffer ID for a specific split (if it’s a leaf)
Sourcepub fn set_active_buffer_id(&mut self, new_buffer_id: BufferId) -> bool
pub fn set_active_buffer_id(&mut self, new_buffer_id: BufferId) -> bool
Update the buffer ID of the active split
Sourcepub fn set_split_buffer(&mut self, leaf_id: LeafId, new_buffer_id: BufferId)
pub fn set_split_buffer(&mut self, leaf_id: LeafId, new_buffer_id: BufferId)
Update the buffer ID of a specific leaf split
Sourcepub fn split_active(
&mut self,
direction: SplitDirection,
new_buffer_id: BufferId,
ratio: f32,
) -> Result<LeafId, String>
pub fn split_active( &mut self, direction: SplitDirection, new_buffer_id: BufferId, ratio: f32, ) -> Result<LeafId, String>
Split the currently active pane
Sourcepub fn split_active_before(
&mut self,
direction: SplitDirection,
new_buffer_id: BufferId,
ratio: f32,
) -> Result<LeafId, String>
pub fn split_active_before( &mut self, direction: SplitDirection, new_buffer_id: BufferId, ratio: f32, ) -> Result<LeafId, String>
Split the active pane, placing the new buffer before (left/top) the existing content.
ratio still controls the first child’s proportion of space.
pub fn split_active_positioned( &mut self, direction: SplitDirection, new_buffer_id: BufferId, ratio: f32, before: bool, ) -> Result<LeafId, String>
Sourcepub fn close_split(&mut self, split_id: LeafId) -> Result<(), String>
pub fn close_split(&mut self, split_id: LeafId) -> Result<(), String>
Close a split pane (if not the last one)
Sourcepub fn adjust_ratio(&mut self, container_id: ContainerId, delta: f32)
pub fn adjust_ratio(&mut self, container_id: ContainerId, delta: f32)
Adjust the split ratio of a container
Sourcepub fn parent_container_of(&self, leaf_id: LeafId) -> Option<ContainerId>
pub fn parent_container_of(&self, leaf_id: LeafId) -> Option<ContainerId>
Find the parent container of a leaf
Sourcepub fn get_visible_buffers(
&self,
viewport_rect: Rect,
) -> Vec<(LeafId, BufferId, Rect)>
pub fn get_visible_buffers( &self, viewport_rect: Rect, ) -> Vec<(LeafId, BufferId, Rect)>
Get all visible buffer views with their rectangles
Sourcepub fn get_separators(
&self,
viewport_rect: Rect,
) -> Vec<(SplitDirection, u16, u16, u16)>
pub fn get_separators( &self, viewport_rect: Rect, ) -> Vec<(SplitDirection, u16, u16, u16)>
Get all split separator positions for rendering borders Returns (direction, x, y, length) tuples
Sourcepub fn get_separators_with_ids(
&self,
viewport_rect: Rect,
) -> Vec<(ContainerId, SplitDirection, u16, u16, u16)>
pub fn get_separators_with_ids( &self, viewport_rect: Rect, ) -> Vec<(ContainerId, SplitDirection, u16, u16, u16)>
Get all split separator positions with their split IDs (for mouse hit testing) Returns (container_id, direction, x, y, length) tuples
Sourcepub fn get_ratio(&self, split_id: SplitId) -> Option<f32>
pub fn get_ratio(&self, split_id: SplitId) -> Option<f32>
Get the current ratio of a split container
Sourcepub fn set_ratio(&mut self, container_id: ContainerId, new_ratio: f32)
pub fn set_ratio(&mut self, container_id: ContainerId, new_ratio: f32)
Set the exact ratio of a split container
Sourcepub fn distribute_splits_evenly(&mut self)
pub fn distribute_splits_evenly(&mut self)
Distribute all visible splits evenly This sets the ratios of all container splits so that leaf splits get equal space
Sourcepub fn next_split(&mut self)
pub fn next_split(&mut self)
Navigate to the next split (circular)
Sourcepub fn prev_split(&mut self)
pub fn prev_split(&mut self)
Navigate to the previous split (circular)
Sourcepub fn splits_for_buffer(&self, target_buffer_id: BufferId) -> Vec<LeafId>
pub fn splits_for_buffer(&self, target_buffer_id: BufferId) -> Vec<LeafId>
Get all split IDs that display a specific buffer
Sourcepub fn buffer_for_split(&self, target_split_id: LeafId) -> Option<BufferId>
pub fn buffer_for_split(&self, target_split_id: LeafId) -> Option<BufferId>
Get the buffer ID for a specific leaf split
Sourcepub fn maximize_split(&mut self) -> Result<(), String>
pub fn maximize_split(&mut self) -> Result<(), String>
Maximize the active split (hide all other splits temporarily) Returns Ok(()) if successful, Err if there’s only one split
Sourcepub fn unmaximize_split(&mut self) -> Result<(), String>
pub fn unmaximize_split(&mut self) -> Result<(), String>
Unmaximize the currently maximized split (restore all splits) Returns Ok(()) if successful, Err if no split is maximized
Sourcepub fn is_maximized(&self) -> bool
pub fn is_maximized(&self) -> bool
Check if a split is currently maximized
Sourcepub fn maximized_split(&self) -> Option<SplitId>
pub fn maximized_split(&self) -> Option<SplitId>
Get the currently maximized split ID (if any)
Sourcepub fn toggle_maximize(&mut self) -> Result<bool, String>
pub fn toggle_maximize(&mut self) -> Result<bool, String>
Toggle maximize state for the active split If maximized, unmaximize. If not maximized, maximize. Returns true if maximized, false if ununmaximized.
Sourcepub fn get_splits_in_group(
&self,
group_id: u32,
view_states: &HashMap<LeafId, SplitViewState>,
) -> Vec<LeafId>
pub fn get_splits_in_group( &self, group_id: u32, view_states: &HashMap<LeafId, SplitViewState>, ) -> Vec<LeafId>
Get all leaf split IDs that belong to a specific sync group
Sourcepub fn set_label(&mut self, split_id: LeafId, label: String)
pub fn set_label(&mut self, split_id: LeafId, label: String)
Set a label on a leaf split (e.g., “sidebar”)
Sourcepub fn clear_label(&mut self, split_id: SplitId)
pub fn clear_label(&mut self, split_id: SplitId)
Remove a label from a split
Sourcepub fn labels(&self) -> &HashMap<SplitId, String>
pub fn labels(&self) -> &HashMap<SplitId, String>
Get all split labels (for workspace serialization)
Sourcepub fn find_split_by_label(&self, label: &str) -> Option<LeafId>
pub fn find_split_by_label(&self, label: &str) -> Option<LeafId>
Find the first leaf split with the given label
Sourcepub fn find_unlabeled_leaf(&self) -> Option<LeafId>
pub fn find_unlabeled_leaf(&self) -> Option<LeafId>
Find the first leaf split without a label
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SplitManager
impl RefUnwindSafe for SplitManager
impl Send for SplitManager
impl Sync for SplitManager
impl Unpin for SplitManager
impl UnsafeUnpin for SplitManager
impl UnwindSafe for SplitManager
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more