#![forbid(unsafe_code)]
mod ex;
pub mod buffer {
pub use hjkl_buffer::{
Buffer, BufferView, Edit, Fold, Gutter, MotionKind, Position, RowSpan, Selection, Sign,
Span, StyleResolver, Viewport, Wrap,
};
}
pub mod runtime {
pub use hjkl_engine::types::{DefaultHost, Options};
pub use hjkl_engine::{
Editor, Input, Key, KeybindingMode, LspIntent, Registers, SearchPrompt, Slot, VimMode,
};
pub mod ex {
pub use crate::ex::*;
}
}
pub mod spec {
pub use hjkl_engine::types::{
Attrs, Buffer, 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, Viewport,
};
pub use hjkl_engine::{BufferFoldProvider, BufferFoldProviderMut};
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn editor_constructs() {
let _ = runtime::Editor::new(
buffer::Buffer::new(),
runtime::DefaultHost::new(),
runtime::Options::default(),
);
}
#[test]
fn buffer_constructs() {
let _ = buffer::Buffer::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);
}
}