Feat: add hidden mode and new documentation

This commit is contained in:
2026-02-26 12:31:56 +01:00
parent e1cf57918e
commit 70032acc75
95 changed files with 1055 additions and 286 deletions

View File

@@ -25,7 +25,8 @@ use crate::widgets::{
};
use super::{
dict_view, engine_view, help_view, main_view, options_view, patterns_view, title_view,
dict_view, engine_view, help_view, main_view, options_view, patterns_view, script_view,
title_view,
};
fn clip_span(span: SourceSpan, line_start: usize, line_len: usize) -> Option<SourceSpan> {
@@ -188,6 +189,7 @@ pub fn render(
Page::Options => options_view::render(frame, app, link, page_area),
Page::Help => help_view::render(frame, app, page_area),
Page::Dict => dict_view::render(frame, app, page_area),
Page::Script => script_view::render(frame, app, snapshot, page_area),
}
if let Some(side_area) = panel_area {
@@ -202,6 +204,7 @@ pub fn render(
if app.ui.show_minimap() {
let tiles: Vec<NavTile> = Page::ALL
.iter()
.filter(|p| p.visible_in_minimap())
.map(|p| {
let (col, row) = p.grid_pos();
NavTile {
@@ -449,6 +452,7 @@ fn render_footer(frame: &mut Frame, app: &App, area: Rect) {
Page::Options => " OPTIONS ",
Page::Help => " HELP ",
Page::Dict => " DICT ",
Page::Script => " SCRIPT ",
};
let content = if let Some(ref msg) = app.ui.status_message {
@@ -509,6 +513,13 @@ fn render_footer(frame: &mut Frame, app: &App, area: Rect) {
("/", "Search"),
("?", "Keys"),
],
Page::Script => vec![
("Esc", "Save & Back"),
("C-e", "Eval"),
("[ ]", "Speed"),
("C-s", "Stack"),
("?", "Keys"),
],
};
let page_width = page_indicator.chars().count();
@@ -608,6 +619,18 @@ fn render_modal(
.border_color(theme.modal.confirm)
.render_centered(frame, term)
}
Modal::SetScript { field, input } => {
use crate::state::ScriptField;
let (title, hint) = match field {
ScriptField::Length => ("Set Script Length (1-256)", "Enter number"),
ScriptField::Speed => ("Set Script Speed", "e.g. 1/3, 2/5, 1x, 2x"),
};
TextInputModal::new(title, input)
.hint(hint)
.width(45)
.border_color(theme.modal.confirm)
.render_centered(frame, term)
}
Modal::JumpToStep(input) => {
let pattern_len = app.current_edit_pattern().length;
let title = format!("Jump to Step (1-{})", pattern_len);