pub struct MarkBank { /* private fields */ }Expand description
Mark storage for all mark types.
Manages buffer-local marks, global marks, and special marks.
§Mark Types
- Local marks (
'a-'z): Stored per-buffer, only position is tracked - Global marks (
'A-'Z): Stored globally, includes buffer ID - Special marks: Automatically maintained editor positions
§Example
use reovim_kernel::api::v1::*;
let mut marks = MarkBank::new();
// Set local mark
marks.set_local('a', Position::new(10, 0));
// Set global mark
let buffer_id = BufferId::new();
marks.set_global('A', Mark::new(Position::new(5, 0), buffer_id));
// Set special mark (usually done automatically)
marks.set_special(SpecialMark::LastJump, Mark::new(Position::new(0, 0), buffer_id));Implementations§
Source§impl MarkBank
impl MarkBank
Sourcepub fn set_local(&mut self, name: char, position: Position) -> bool
pub fn set_local(&mut self, name: char, position: Position) -> bool
Set a local mark (‘a’-‘z’).
Returns true if successful, false if the mark name is invalid.
Sourcepub fn get_local(&self, name: char) -> Option<Position>
pub fn get_local(&self, name: char) -> Option<Position>
Get a local mark (‘a’-‘z’).
Returns None if the mark doesn’t exist or name is invalid.
Sourcepub fn delete_local(&mut self, name: char) -> bool
pub fn delete_local(&mut self, name: char) -> bool
Delete a local mark.
Returns true if the mark existed and was deleted.
Sourcepub fn list_local(&self) -> Vec<(char, Position)>
pub fn list_local(&self) -> Vec<(char, Position)>
List all local marks.
Sourcepub fn set_global(&mut self, name: char, mark: Mark) -> bool
pub fn set_global(&mut self, name: char, mark: Mark) -> bool
Set a global mark (‘A’-‘Z’).
Returns true if successful, false if the mark name is invalid.
Sourcepub fn get_global(&self, name: char) -> Option<&Mark>
pub fn get_global(&self, name: char) -> Option<&Mark>
Get a global mark (‘A’-‘Z’).
Returns None if the mark doesn’t exist or name is invalid.
Sourcepub fn delete_global(&mut self, name: char) -> bool
pub fn delete_global(&mut self, name: char) -> bool
Delete a global mark.
Returns true if the mark existed and was deleted.
Sourcepub fn list_global(&self) -> Vec<(char, &Mark)>
pub fn list_global(&self) -> Vec<(char, &Mark)>
List all global marks.
Sourcepub fn set_special(&mut self, mark: SpecialMark, value: Mark)
pub fn set_special(&mut self, mark: SpecialMark, value: Mark)
Set a special mark.
Sourcepub fn get_special(&self, mark: SpecialMark) -> Option<&Mark>
pub fn get_special(&self, mark: SpecialMark) -> Option<&Mark>
Get a special mark.
Sourcepub fn clear_special(&mut self, mark: SpecialMark)
pub fn clear_special(&mut self, mark: SpecialMark)
Clear a special mark.
Sourcepub fn get_by_char(&self, c: char) -> Option<MarkResult<'_>>
pub fn get_by_char(&self, c: char) -> Option<MarkResult<'_>>
Get mark by character (local, global, or special shorthand).
'a'-'z'- Local marks (returnsNonefor position, needs buffer context)'A'-'Z'- Global marks'\''or'`'- Last jump'.'- Last edit'^'- Last insert'<'- Visual start'>'- Visual end
Sourcepub fn clear_local(&mut self)
pub fn clear_local(&mut self)
Clear all local marks (for when buffer is closed).