pub struct MotionEngine;Expand description
Motion calculation engine.
Provides pure calculations for cursor positions without modifying any state. This is the “mechanism” that modules use to implement motion commands.
§Example
use reovim_kernel::api::v1::*;
let buffer = Buffer::from_string("hello world");
let cursor = Cursor::new(Position::new(0, 0));
let new_pos = MotionEngine::calculate(
&buffer,
&cursor,
Motion::Char(Direction::Forward),
1,
);
assert_eq!(new_pos, Some(Position::new(0, 1)));Implementations§
Source§impl MotionEngine
impl MotionEngine
Sourcepub fn calculate(
buffer: &Buffer,
cursor: &Cursor,
motion: Motion,
count: usize,
) -> Option<Position>
pub fn calculate( buffer: &Buffer, cursor: &Cursor, motion: Motion, count: usize, ) -> Option<Position>
Calculate new position after applying a motion.
Returns None if the motion is invalid or impossible.
§Arguments
buffer- The buffer to calculate motion incursor- Current cursor state (includes position and preferred column)motion- The motion to applycount- Number of times to apply the motion (minimum 1)
Sourcepub fn calculate_with_desired_col(
buffer: &Buffer,
cursor: &Cursor,
motion: Motion,
count: usize,
) -> (Option<Position>, Option<usize>)
pub fn calculate_with_desired_col( buffer: &Buffer, cursor: &Cursor, motion: Motion, count: usize, ) -> (Option<Position>, Option<usize>)
Calculate new position and desired column after applying a motion.
This variant is useful for vertical motions where the cursor should try to maintain its horizontal position across lines of different lengths.
Returns (new_position, new_desired_column)
Auto Trait Implementations§
impl Freeze for MotionEngine
impl RefUnwindSafe for MotionEngine
impl Send for MotionEngine
impl Sync for MotionEngine
impl Unpin for MotionEngine
impl UnsafeUnpin for MotionEngine
impl UnwindSafe for MotionEngine
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
Mutably borrows from an owned value. Read more