mod buf_helpers;
mod buffer_impl;
mod editor;
mod input;
pub mod motions;
mod registers;
pub mod search;
pub mod types;
mod viewport_math;
mod vim;
pub use editor::{Editor, LspIntent};
pub use input::{Input, Key};
pub use registers::{Registers, Slot};
pub use buffer_impl::{BufferFoldProvider, BufferFoldProviderMut};
pub use types::{
Attrs, Buffer, BufferEdit, BufferId, Color, Cursor, CursorShape, DefaultHost, Edit,
EditorSnapshot, EngineError, FoldOp, FoldProvider, Highlight, HighlightKind, Host,
Input as PlannedInput, Mode, Modifiers, MouseEvent, MouseKind, NoopFoldProvider, OptionValue,
Options, Pos, Query, RenderFrame, Search, Selection, SelectionKind, SelectionSet, SnapshotMode,
SpecialKey, Style, Viewport, WrapMode,
};
pub use vim::SearchPrompt;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum KeybindingMode {
#[default]
Vim,
}
#[cfg(feature = "serde")]
impl serde::Serialize for KeybindingMode {
fn serialize<S: serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
s.serialize_str("vim")
}
}
#[cfg(feature = "serde")]
impl<'de> serde::Deserialize<'de> for KeybindingMode {
fn deserialize<D: serde::Deserializer<'de>>(d: D) -> Result<Self, D::Error> {
let _ = String::deserialize(d)?;
Ok(KeybindingMode::Vim)
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum VimMode {
#[default]
Normal,
Insert,
Visual,
VisualLine,
VisualBlock,
}