tawasuyu/llimphi
Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.
chore: refresco desde el monorepo — vello 0.9 / wgpu 29, 120 miembros
1//! Tipos de edición incremental compartidos con tree-sitter.
2//!
3//! El editor acumula un [`InputEdit`] por delta para alimentar el parsing
4//! incremental (ver [`crate::highlight::apply_pending_edits`]). Esos tipos
5//! son de `tree-sitter`, pero su *construcción* no toca el runtime C — sólo
6//! el parsing real lo hace. Para que el tracking de edits compile aunque
7//! tree-sitter esté apagado (feature `treesitter` off, p. ej. cross-compile
8//! Mac/Windows desde Linux), este módulo expone los tipos:
9//!
10//! - con `treesitter` **on**: alias directos de `tree_sitter::{InputEdit, Point}`
11//! (cero costo, misma identidad de tipo que consume el parser).
12//! - con `treesitter` **off**: structs locales con los mismos campos. Los
13//! edits se siguen calculando pero `apply_pending_edits` es un no-op (no
14//! hay árbol que editar), así que son inertes y baratos.
15
16
17#[cfg(feature = "treesitter")]
18pub use tree_sitter::{InputEdit, Point};
19
20/// Posición fila/columna-byte equivalente a `tree_sitter::Point`.
21#[cfg(not(feature = "treesitter"))]
22#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
23pub struct Point {
24 pub row: usize,
25 pub column: usize,
26}
27
28/// Edición incremental equivalente a `tree_sitter::InputEdit`.
29#[cfg(not(feature = "treesitter"))]
30#[derive(Debug, Clone, Copy, PartialEq, Eq)]
31pub struct InputEdit {
32 pub start_byte: usize,
33 pub old_end_byte: usize,
34 pub new_end_byte: usize,
35 pub start_position: Point,
36 pub old_end_position: Point,
37 pub new_end_position: Point,
38}