Hola a todos,
Quiero compartir el progreso de HarbourBuilder, un IDE visual open-source para Harbour inspirado en Borland C++Builder / Lazarus.
El objetivo es sencillo: diseñar formularios visualmente, escribir event handlers en Harbour, y ejecutar nativamente en Windows, macOS y Linux — mismo código, controles nativos en cada plataforma.
=== Qué funciona hoy ===
EDITOR DE CODIGO (Scintilla en las 3 plataformas):
- Scintilla 5.5+ con lexer C++ adaptado para sintaxis Harbour
- Syntax highlighting: keywords (azul bold), commands (teal), comments (verde italic), strings (naranja), numbers (verde claro), preprocessor (magenta)
- Code folding inteligente para Harbour (function/class/if/for/while/switch)
- Bracket matching, bookmarks (Ctrl+0..9), code snippets (8 plantillas)
- Auto-indent, auto-complete (150+ keywords y funciones Harbour)
- Go-to-definition (F12), barra de estado (Ln/Col/INS/UTF-8)
- Panel de mensajes con errores clickables (salta a la línea del error)
- Build incremental (solo recompila lo que cambió)
DISEÑADOR VISUAL DE FORMULARIOS:
- Diseñador WYSIWYG con grid de puntos, snap-to-grid (8px)
- Drag, resize (8 handles), rubber band multi-selección
- Copiar/Pegar controles, Alinear y Distribuir (8 modos)
- Historial de undo (50 pasos) para operaciones de diseño
- Sincronización bidireccional: cambios en el diseñador actualizan el código y viceversa
INSPECTOR DE OBJETOS:
- Pestañas de Propiedades y Eventos con grid categorizado
- Editores dropdown para propiedades enum (BorderStyle, Position, WindowState...)
- Selector de color, selector de fuente, edición inline
- Validación de propiedades (rangos numéricos, nombres no vacíos)
- Doble-click en evento → genera handler automáticamente
109 COMPONENTES en 14 pestañas de paleta:
- Standard, Additional, Native, System, Dialogs
- Data Access (DBF y SQLite funcionando, MySQL/PostgreSQL/etc. en stubs)
- Data Controls (TBrowse, DBGrid, DBNavigator, DBEdit...)
- Internet, Threading, AI, ERP, Printing
DEPURADOR IN-PROCESS:
- Compila a bytecode .hrb (harbour -gh -b)
- Ejecuta dentro de la propia VM Harbour del IDE
- Hook de debug (hb_dbg_SetEntry) intercepta cada línea de código
- Step Into, Step Over, Continue, Stop
- Inspección de variables locales, Call Stack, Breakpoints, Output
- La UI se mantiene responsiva durante la pausa
CARACTERISTICAS ADICIONALES DEL IDE:
- Panel de AI Assistant (integración con Ollama, 6 modelos)
- Diálogo de colores del editor (4 presets: Dark/Light/Monokai/Solarized)
- Opciones de proyecto (4 pestañas: Harbour/Compilador/Linker/Directorios)
- Inspector de proyecto con vista de árbol
- Editor de tab order
- Dark mode en todas las plataformas
- Toolbar doble con botones de archivo/edición y debug
BASE DE DATOS:
- TDBFTable: DBF nativo via Harbour RDD (crear, leer, escribir, indexar)
- TSQLite: soporte completo SQLite3 (tablas, transacciones, queries)
- API unificada TDatabase — cambiar de backend = una sola línea
- Data Controls: TDataSource, TDBNavigator, TDBEdit, TDBText, TDBComboBox
=== Estado por plataforma ===
| Plataforma | Backend | Estado |
|------------|----------------------------|--------------|
| Windows | Win32 API + Scintilla DLL | IDE completo |
| macOS | Cocoa/AppKit + Scintilla | IDE completo |
| Linux | GTK3 + Scintilla | IDE completo |
Las tres plataformas están en paridad de features: cero stubs placeholder, todos los menús y botones de toolbar funcionales.
=== Cómo probarlo ===
Repositorio:
https://github.com/FiveTechSoft/HarbourBuilderRequisitos: compilador Harbour 3.2 + herramientas de la plataforma (Xcode CLT en Mac, GCC + GTK3-dev en Linux, BCC en Windows).
Compilar:
macOS: cd samples && ./build_mac.sh
Linux: cd samples && ./build_gtk.sh
Windows: build_win.bat
=== Qué viene después ===
- Diseñador Visual de Reportes (estilo FastReport/Crystal)
- Herencia de formularios
- Binding completo para MySQL/PostgreSQL
- Depurador pipe-based para ejecutables compilados
Todo el proyecto ha sido vibe coded al 100% usando Claude Code.
¡Cualquier feedback, pruebas y contribuciones son bienvenidos!
Antonio Linares
https://github.com/FiveTechSoft/HarbourBuilder