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