HarbourBuilder — Cross-Platform Visual IDE for Harbour (major progress update)

41 views
Skip to first unread message

antonio....@gmail.com

unread,
12:53 AM (12 hours ago) 12:53 AM
to Harbour Users
Hi everyone,

I'd like to share the latest progress on HarbourBuilder, an open-source visual IDE for Harbour inspired by Borland C++Builder / Lazarus.

The goal is simple: design forms visually, write event handlers in Harbour, and run natively on Windows, macOS, and Linux — same code, native controls on each platform.

=== What's working today ===

CODE EDITOR (Scintilla on all 3 platforms):
- Scintilla 5.5+ with C++ lexer adapted for Harbour syntax
- Syntax highlighting: keywords (blue bold), commands (teal), comments (green italic), strings (orange), numbers (light green), preprocessor (magenta)
- Harbour-aware code folding (function/class/if/for/while/switch blocks)
- Bracket matching, bookmarks (Ctrl+0..9), code snippets (8 templates)
- Auto-indent, auto-complete (150+ Harbour keywords and functions)
- Go-to-definition (F12), status bar (Ln/Col/INS/UTF-8)
- Build messages panel with clickable errors (jump to line)
- Incremental build (only recompiles changed files)

VISUAL FORM DESIGNER:
- WYSIWYG designer with dot grid, snap-to-grid (8px)
- Drag, resize (8 handles), rubber band multi-selection
- Copy/Paste controls, Align & Distribute (8 modes)
- Undo history (50 steps) for design operations
- Two-way code sync: designer changes update code, code changes update designer

OBJECT INSPECTOR:
- Properties and Events tabs with categorized grid
- Dropdown editors for enum properties (BorderStyle, Position, WindowState...)
- Color picker, font picker, inline editing
- Property validation (numeric ranges, non-empty names)
- Double-click event → auto-generate handler code

109 COMPONENTS in 14 palette tabs:
- Standard, Additional, Native, System, Dialogs
- Data Access (DBF, SQLite working, MySQL/PostgreSQL/etc. stubs)
- Data Controls (TBrowse, DBGrid, DBNavigator, DBEdit...)
- Internet, Threading, AI, ERP, Printing

IN-PROCESS DEBUGGER:
- Compile to .hrb bytecode (harbour -gh -b)
- Execute inside the IDE's own Harbour VM
- Debug hook (hb_dbg_SetEntry) intercepts every source line
- Step Into, Step Over, Continue, Stop
- Locals inspection, Call Stack, Breakpoints, Output tabs
- UI stays responsive during pause

ADDITIONAL IDE FEATURES:
- AI Assistant panel (Ollama integration, 6 models)
- Editor Colors dialog (4 presets: Dark/Light/Monokai/Solarized)
- Project Options (4 tabs: Harbour/Compiler/Linker/Directories)
- Project Inspector with tree view
- Tab order editor
- Dark mode on all platforms
- Two-row toolbar with file/edit and debug buttons

DATABASE:
- TDBFTable: native DBF via Harbour RDD (create, read, write, index)
- TSQLite: full SQLite3 support (tables, transactions, queries)
- Unified TDatabase API — changing backend = one line of code
- Data Controls: TDataSource, TDBNavigator, TDBEdit, TDBText, TDBComboBox

=== Platform status ===

| Platform | Backend                    | Status    |
|----------|----------------------------|-----------|
| Windows  | Win32 API + Scintilla DLL  | Full IDE  |
| macOS    | Cocoa/AppKit + Scintilla   | Full IDE  |
| Linux    | GTK3 + Scintilla           | Full IDE  |

All three platforms are at feature parity: zero placeholder stubs, all menus and toolbar buttons functional.

=== How to try it ===

Repository: https://github.com/FiveTechSoft/HarbourBuilder

Requirements: Harbour 3.2 compiler + platform tools (Xcode CLT on Mac, GCC + GTK3-dev on Linux, BCC on Windows).

Build:
  macOS: cd samples && ./build_mac.sh
  Linux: cd samples && ./build_gtk.sh
  Windows: build_win.bat

=== What's next ===

- Visual Report Designer (FastReport/Crystal style)
- Form inheritance
- Full database binding for MySQL/PostgreSQL
- Pipe-based debugger for compiled executables

The entire project has been vibe coded 100% using Claude Code.

Feedback, testing, and contributions are very welcome!

Antonio Linares
https://github.com/FiveTechSoft/HarbourBuilder

antonio....@gmail.com

unread,
12:54 AM (12 hours ago) 12:54 AM
to Harbour Users
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/HarbourBuilder

Requisitos: 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
Reply all
Reply to author
Forward
0 new messages