#![forbid(unsafe_code)]
pub mod buffer {
pub use hjkl_buffer::{
Edit, Fold, MotionKind, Position, RowSpan, Selection, Span, View, Viewport, Wrap,
};
#[cfg(feature = "ratatui")]
pub use hjkl_buffer_tui::{BufferView, Gutter, Sign, StyleResolver};
}
pub mod runtime {
pub use hjkl_engine::types::{DefaultHost, Options};
pub use hjkl_engine::{Editor, Input, Key, LspIntent, Registers, SearchPrompt, Slot, VimMode};
}
pub mod spec {
pub use hjkl_engine::types::{
Attrs, BufferEdit, BufferId, Color, Cursor, CursorShape, Edit, EngineError, FoldOp,
FoldProvider, Highlight, HighlightKind, Host, Input, Mode, Modifiers, MouseEvent,
MouseKind, NoopFoldProvider, Options, Pos, Query, Search, Selection, SelectionKind,
SelectionSet, SpecialKey, Style, View, Viewport,
};
pub use hjkl_engine::{BufferFoldProvider, BufferFoldProviderMut};
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn editor_constructs() {
let _ = hjkl_vim::vim_editor(
buffer::View::new(),
runtime::DefaultHost::new(),
runtime::Options::default(),
);
}
#[test]
fn buffer_constructs() {
let _ = buffer::View::from_str("hello\nworld");
}
#[test]
fn spec_options_default() {
let opts = spec::Options::default();
assert_eq!(opts.tabstop, 4);
}
#[test]
fn spec_selection_set_default() {
let set = spec::SelectionSet::default();
assert_eq!(set.items.len(), 1);
}
}