pub struct FoldingManager { /* private fields */ }Expand description
Folding manager
Implementations§
Source§impl FoldingManager
impl FoldingManager
Sourcepub fn add_region(&mut self, region: FoldRegion)
pub fn add_region(&mut self, region: FoldRegion)
Add fold region
Sourcepub fn remove_region(&mut self, start_line: usize, end_line: usize) -> bool
pub fn remove_region(&mut self, start_line: usize, end_line: usize) -> bool
Remove fold region
Sourcepub fn get_region_for_line(&self, line: usize) -> Option<&FoldRegion>
pub fn get_region_for_line(&self, line: usize) -> Option<&FoldRegion>
Get fold region containing specified line
Sourcepub fn get_region_for_line_mut(
&mut self,
line: usize,
) -> Option<&mut FoldRegion>
pub fn get_region_for_line_mut( &mut self, line: usize, ) -> Option<&mut FoldRegion>
Get mutable reference
Sourcepub fn collapse_line(&mut self, line: usize) -> bool
pub fn collapse_line(&mut self, line: usize) -> bool
Collapse specified line
Sourcepub fn expand_line(&mut self, line: usize) -> bool
pub fn expand_line(&mut self, line: usize) -> bool
Expand specified line
Sourcepub fn toggle_line(&mut self, line: usize) -> bool
pub fn toggle_line(&mut self, line: usize) -> bool
Toggle fold state of specified line
Sourcepub fn toggle_region_starting_at_line(&mut self, start_line: usize) -> bool
pub fn toggle_region_starting_at_line(&mut self, start_line: usize) -> bool
Toggle fold region starting at specified line (preferring “innermost” region).
rust-analyzer / LSP folding ranges often contain nested regions. To make TUI and other frontends
behave more intuitively when “cursor is on a start line”, we choose:
- Among all regions with
start_line == line, the one with smallestend_line(innermost)
Sourcepub fn logical_to_visual(
&self,
logical_line: usize,
base_visual: usize,
) -> Option<usize>
pub fn logical_to_visual( &self, logical_line: usize, base_visual: usize, ) -> Option<usize>
Calculate mapping from logical line to visual line
Returns the visual line number for the specified logical line number, or None if folded
Sourcepub fn visual_to_logical(&self, visual_line: usize, base_visual: usize) -> usize
pub fn visual_to_logical(&self, visual_line: usize, base_visual: usize) -> usize
Calculate mapping from visual line to logical line
Sourcepub fn regions(&self) -> &[FoldRegion]
pub fn regions(&self) -> &[FoldRegion]
Get all fold regions
Sourcepub fn replace_regions(&mut self, regions: Vec<FoldRegion>)
pub fn replace_regions(&mut self, regions: Vec<FoldRegion>)
Replace fold regions with new list (will be sorted by start line and deduplicated).
Sourcepub fn expand_all(&mut self)
pub fn expand_all(&mut self)
Expand all folds
Sourcepub fn collapse_all(&mut self)
pub fn collapse_all(&mut self)
Collapse all regions