[package] name = "llimphi-widget-text-editor" version.workspace = true edition.workspace = true license.workspace = true authors.workspace = true publish.workspace = true description = "llimphi-widget-text-editor — capa visual Llimphi del editor de código (gutter, caret, selección, scroll, integración de teclado al update Elm). El núcleo agnóstico (buffer/cursor/ops/undo/highlight/…) vive en llimphi-widget-text-editor-core y se re-exporta. LSP queda para una capa superior." repository.workspace = true [dependencies] # default-features = false para que los flags de este widget gobiernen # qué arrastra el núcleo (el C de tree-sitter, la espalda ropey). # state.rs construye los InputEdit/Point vía el shim re-exportado del # núcleo (`crate::tsedit`), así que el widget ya no depende de # tree-sitter directo. # Path directo (no `workspace = true`): heredar de [workspace.dependencies] # sólo permite *añadir* features, nunca apagar default-features — el flag # se ignoraría y el C de tree-sitter entraría igual. Con path directo sí # manda el `default-features = false`. llimphi-widget-text-editor-core = { path = "../text-editor-core", version = "0.1.0", default-features = false } # El COMPOSITOR, no el shell de escritorio: así este widget sirve igual # en Linux, en el kernel de wawa y adentro de una jaula WASM (W4.6). El # modelo de input (`KeyEvent`/`ImeEvent`, W4.7) también vive ahí. llimphi-compositor = { workspace = true, default-features = false } llimphi-theme = { workspace = true } # El scroll canónico del repo: `TamanoVisible` (el widget publica su rect desde # el `paint_with` y el host lo lee al cuadro siguiente), `clamp_offset`, # `approach` y `thumb_geometry`. Este editor los rehacía a mano o directamente # no los tenía; es `no_std` y sólo depende del compositor, así que no arrastra # nada nuevo al subárbol. llimphi-widget-scroll = { path = "../scroll", version = "0.1.0", default-features = false } [features] # Un widget NO elige backend: lo elige quien ensambla la app —`llimphi-ui` # en Linux, `llimphi-jaula` en una jaula WASM, `llimphi-wawa` en el # kernel—. Este default existe sólo para que el crate se pueda compilar # SOLO (`cargo check -p llimphi-widget-…`), porque el compositor no # compila sin ninguno. default = ["std", "treesitter", "vello"] # std: la espalda ropey del buffer + el reloj real (`register_click` con # `Instant::now()`). Sin ella el buffer usa la soga no_std y los clicks # entran por `register_click_at` con el instante del fotograma. std = ["llimphi-widget-text-editor-core/ropey", "llimphi-compositor/std", "llimphi-widget-scroll/std"] # Propaga el highlight tree-sitter al núcleo. Off → editor sin resaltado # de Rust/Python (texto plano), compilable sin toolchain C de la plataforma. treesitter = ["llimphi-widget-text-editor-core/treesitter"] vello = ["llimphi-compositor/vello", "llimphi-widget-scroll/vello"] cpu = ["llimphi-compositor/cpu", "llimphi-widget-scroll/cpu"] wire = ["llimphi-compositor/wire", "llimphi-widget-scroll/wire"] # Targets sin std (la jaula wasm32): mates por libm en todo el subárbol. libm = ["llimphi-compositor/libm", "llimphi-widget-text-editor-core/libm", "llimphi-widget-scroll/libm"] [dev-dependencies]