ailloli_ui_editor/config.rs
1//! Generic editor wrapping and visual configuration.
2
3use crate::style::EditorStyle;
4
5/// Line wrapping strategy for editor layout.
6///
7/// # Examples
8///
9/// ```
10/// use ailloli_ui_editor::EditorWrapMode;
11/// assert_eq!(EditorWrapMode::default(), EditorWrapMode::SoftWrap);
12/// ```
13#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default)]
14pub enum EditorWrapMode {
15 /// Text editor mode: soft-wrap by word, with emergency breaks for long runs.
16 #[default]
17 SoftWrap,
18 /// Code editor mode: no visual wrap; horizontal scrolling clips overflowing text.
19 NoWrap,
20}
21
22/// Engine configuration shared by layout, input, and paint model generation.
23///
24/// # Examples
25///
26/// ```
27/// use ailloli_ui_editor::{EditorConfig, EditorWrapMode};
28/// let config = EditorConfig::default();
29/// assert_eq!(config.wrap_mode, EditorWrapMode::SoftWrap);
30/// assert_eq!(config.style.line_height, 18.0);
31/// ```
32#[derive(Debug, Clone, Copy, PartialEq, Default)]
33pub struct EditorConfig {
34 /// Logical-pixel metrics and semantic colors.
35 pub style: EditorStyle,
36 /// Soft-wrap or horizontal-scroll layout policy.
37 pub wrap_mode: EditorWrapMode,
38}