Modularización del archivo principal (1367 LOC → 468 LOC): - drawing.zig (495 LOC): FilterBar, Header, Rows, Footer, Scrollbars - input.zig (232 LOC): Keyboard, MouseClick, helpers Archivos sin cambios: state.zig (847 LOC - candidato futuro)
85 lines
2.4 KiB
Markdown
85 lines
2.4 KiB
Markdown
# PLAN: Modularización de virtual_advanced_table.zig
|
|
|
|
**Fecha:** 2025-12-29
|
|
**Estado:** En progreso
|
|
|
|
---
|
|
|
|
## Objetivo
|
|
|
|
Dividir `virtual_advanced_table.zig` (1367 LOC) en módulos más pequeños.
|
|
|
|
---
|
|
|
|
## Estado Actual
|
|
|
|
```
|
|
virtual_advanced_table/
|
|
├── cell_editor.zig # 179 LOC ✓
|
|
├── data_provider.zig # 296 LOC ✓
|
|
├── paged_datasource.zig # 188 LOC ✓
|
|
├── state.zig # 847 LOC (revisar después)
|
|
├── types.zig # 242 LOC ✓
|
|
└── virtual_advanced_table.zig # 1367 LOC ⚠️ DIVIDIR
|
|
```
|
|
|
|
---
|
|
|
|
## Estructura Final
|
|
|
|
```
|
|
virtual_advanced_table/
|
|
├── cell_editor.zig # 179 LOC (sin cambios)
|
|
├── data_provider.zig # 296 LOC (sin cambios)
|
|
├── paged_datasource.zig # 188 LOC (sin cambios)
|
|
├── state.zig # 847 LOC (sin cambios por ahora)
|
|
├── types.zig # 242 LOC (sin cambios)
|
|
├── drawing.zig # ~400 LOC (NUEVO)
|
|
├── input.zig # ~200 LOC (NUEVO)
|
|
└── virtual_advanced_table.zig # ~500 LOC (reducido)
|
|
```
|
|
|
|
---
|
|
|
|
## Mapeo de Funciones
|
|
|
|
### → drawing.zig (~400 LOC)
|
|
| Función | Líneas orig | Descripción |
|
|
|---------|-------------|-------------|
|
|
| drawFilterBar | 604-830 | Barra de filtro superior |
|
|
| drawHeaderAt | 836-911 | Cabecera de tabla |
|
|
| drawRows | 917-1008 | Filas de datos |
|
|
| drawFooter | 1014-1056 | Pie de tabla |
|
|
| drawScrollbar | 1062-1087 | Scrollbar vertical |
|
|
| drawScrollbarH | 1093-1120 | Scrollbar horizontal |
|
|
|
|
### → input.zig (~200 LOC)
|
|
| Función | Líneas orig | Descripción |
|
|
|---------|-------------|-------------|
|
|
| handleKeyboard | 1169-1273 | Manejo de teclado |
|
|
| handleMouseClick | 1279-1345 | Manejo de clicks |
|
|
| ensureColumnVisible | 1127-1160 | Scroll a columna |
|
|
| needsRefetch | 577-598 | Detectar necesidad de refetch |
|
|
|
|
### → virtual_advanced_table.zig (reducido)
|
|
- VirtualAdvancedTableResult struct
|
|
- virtualAdvancedTable() (API pública)
|
|
- virtualAdvancedTableRect() (orquestación)
|
|
|
|
---
|
|
|
|
## Fases
|
|
|
|
- [ ] FASE 1: Extraer drawing.zig
|
|
- [ ] FASE 2: Extraer input.zig
|
|
- [ ] FASE 3: Actualizar imports en virtual_advanced_table.zig
|
|
- [ ] FASE 4: Verificar compilación
|
|
- [ ] FASE 5: Commit y push
|
|
|
|
---
|
|
|
|
## Historial
|
|
|
|
| Fecha | Hora | Acción | Estado |
|
|
|-------|------|--------|--------|
|
|
| 2025-12-29 | ~02:30 | Plan creado | En progreso |
|