openeditorcode.devMANUAL DE CAMPO / 0.2.41English
architecture.md DOCUMENTACIÓN

18 — Por dentro

Arquitectura del editor

Arranque, composición por capacidades, estado, infraestructura y dependencias.

v0.2.41Revisión de código ·
En esta página

Stack y arranque

TypeScript estricto, Bun y OpenTUI Solid. Solid organiza estado reactivo y componentes; OpenTUI renderiza el workbench en terminal. El producto no incorpora un servidor. El lock revisado usa OpenTUI 0.5.1 y Prettier 3.9.6.

CLI resuelve ayuda/versión antes de UI/config. El binario entra por bootstrap/executable.ts, supervisa un worker y marca saludable el primer frame. index.tsx carga configuración, resuelve raíz, crea renderer y compone App.

Flujo de ejecución y composicióntext
npm alias → launcher → platform binary → supervisor → worker
                                            ↓
CLI → configuration + root → renderer → App
                                      ├─ useWorkbench
                                      └─ AppLayout
                                         ├─ Explorer
                                         ├─ Documents / Editor / Preview / Diff
                                         ├─ Git
                                         └─ Overlays

Mapa de capacidades

DirectorioResponsabilidad
workbench/Composición, conexiones entre capacidades y router único de teclado.
documents/Pestañas, dirty, I/O protegido, guardado, previews y apertura concurrente.
editor/Textarea, cursor, historial, búsqueda local, métricas, sintaxis, clipboard y formato.
explorer/ + search/Árbol, reglas, índice reutilizado, búsqueda global y exclusiones temporales.
git/Comandos Git, estado, historial, navegación, árboles y diffs.
dialogs/Estado de overlays y confirmaciones que capturan teclado.
config/ + bootstrap/Validación, defaults, persistencia, recuperación y arranque.
logs/ + localization/ + updates/ + docs/Registro de sesión, idioma, chequeo de versión y manual embebido.

Invariantes de diseño

  • App compone; useWorkbench conecta mediante callbacks; los paneles reciben props y no ejecutan acciones importando otras capacidades.
  • useKeyboardShortcuts es dueño de prioridad de teclas. Sin filePath no hay documento dirty. Antes de cambiar pestaña se sincroniza el buffer.
  • La infraestructura por capacidad no depende del renderer. Helpers de archivos centralizan lectura/escritura. OpenTUI queda en UI y adaptadores.
  • Generaciones impiden aperturas obsoletas; historial usa abort y revisión fija; resaltado diferido verifica generación/ruta/contenido. No todas las operaciones asíncronas comparten esa protección.

Dependencias externas

Git se ejecuta como proceso, ignore interpreta reglas, Prettier formatea y herramientas del sistema suministran portapapeles. Los binarios llevan runtime Bun; Node/npm solo son necesarios en el canal npm. Formateadores externos se registran globalmente.

Fuentes del capítulo

Enlaces fijados al commit revisado; no siguen main.

Documentación estática · ES / ENVer cobertura ↗