mod case;
mod change;
mod commands;
mod delete;
mod registers;
mod types;
mod yank;
pub mod yank_flash;
pub use types::{Operator, OperatorContext, OperatorError, Range};
pub use {
case::{LowercaseOperator, ToggleCaseOperator, UppercaseOperator},
change::ChangeOperator,
delete::DeleteOperator,
yank::YankOperator,
};
pub use commands::{
ChangeCommand, DeleteCommand, LowercaseCommand, ToggleCaseCommand, UppercaseCommand,
YankCommand, operator_commands,
};
fn char_col_to_byte(line: &str, col: usize) -> usize {
line.char_indices().nth(col).map_or(line.len(), |(b, _)| b)
}
#[must_use]
pub fn operators() -> Vec<Box<dyn Operator>> {
vec![
Box::new(DeleteOperator),
Box::new(YankOperator),
Box::new(ChangeOperator),
Box::new(LowercaseOperator),
Box::new(UppercaseOperator),
Box::new(ToggleCaseOperator),
]
}
#[cfg(test)]
mod tests;