TypeDialog/config/tui/config.ncl
Jesús Pérez a963adbf5b
Some checks failed
CI / Lint (bash) (push) Has been cancelled
CI / Lint (markdown) (push) Has been cancelled
CI / Lint (nickel) (push) Has been cancelled
CI / Lint (nushell) (push) Has been cancelled
CI / Lint (rust) (push) Has been cancelled
CI / Benchmark (push) Has been cancelled
CI / Security Audit (push) Has been cancelled
CI / License Compliance (push) Has been cancelled
CI / Code Coverage (push) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Build (macos-latest) (push) Has been cancelled
CI / Build (ubuntu-latest) (push) Has been cancelled
CI / Build (windows-latest) (push) Has been cancelled
feat(forms): migrate all form definitions and configs to Nickel (.ncl)
Replace all TOML form definitions in examples/ and config/ with
  type-checked Nickel equivalents. Update cli_loader to prefer .ncl
  (via nickel export) over .toml in config search order.
  TOML support retained as fallback — no breaking change.

  - El loader usa nickel export --format json + serde_json como puente — evita reimplementar un parser Nickel en Rust y aprovecha el binario ya existente.
  - El orden de búsqueda .ncl > .toml permite migración incremental: cualquier config vieja sigue funcionando sin tocarla.
  - Los contratos Nickel (| default, | String) en los configs sustituyen la validación que antes era implícita en el parsing TOML — el error llega antes (en nickel export) con mensajes más descriptivos.
2026-03-08 23:20:50 +00:00

40 lines
1008 B
Plaintext

{
form = {
title | default = "TUI Form",
description | default = "Interactive terminal user interface form",
validation = {
show_errors_inline | default = true,
validate_on_change | default = true,
strict_validation | default = false,
},
},
output = {
format | default = "json",
pretty_print | default = true,
debug_output | default = false,
},
terminal = {
use_raw_mode | default = true,
enable_mouse | default = true,
enable_scrolling | default = true,
height | default = -1,
width | default = -1,
},
ui = {
show_borders | default = true,
show_focus | default = true,
highlight_on_hover | default = true,
enable_animations | default = true,
show_field_indices | default = false,
},
appearance = {
theme | default = "default",
border_style | default = "rounded",
color_scheme | default = "default",
},
keyboard = {
vi_mode | default = false,
emacs_mode | default = false,
},
}