HarbourBuilder — Cross-Platform Visual IDE for Harbour

Outras bibliotecas visuais e IDEs para Harbour/xHarbour (xHGTK/HbWxW/GtWvT/GtWvW/WvWtools.etc)

Moderador: Moderadores

alxsts
Colaborador
Colaborador
Mensagens: 3129
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil
Curtiram: 1 vez

HarbourBuilder — Cross-Platform Visual IDE for Harbour

Mensagem por alxsts »

Olá!

Estou acompanhando este assunto no fórum internacional.

Parece ser a concretização de um sonho dos desenvolvedores Harbour, de ter uma IDE profissional própria da linguagem, completa, multiplataforma, de código aberto e gratuita.

Tudo começou com a curiosidade do Antônio Liñares em testar Claude Code, uma IA própria para escrever código fonte.

Ele foi guiando esta IA com os requisitos que imaginou para a IDE e a IA foi gerando o código em C++. Segundo ele, em 3 dias já havia algo consistente.

Todo o processo de desenho da interface gráfica de telas e relatórios (estilo Fast Report), edição de codigo (com o editor Scintilla, embutido na IDE), compilação/linquedição e debug é feito usando a IDE.

É um trabalho em andamento, já bem adiantado, conforme mostrado abaixo. Creio que será muito útil.

Só não entendi bem o fato de ser gratuita pois vai competir com o próprio FiveWin e IDE do Xailer, entre outros.

Talvez seja como ele próprio escreveu: "quem já investiu tempo e dinheiro escrevendo muito código FiveWin, durante muitos anos, não vai refazer tudo usando a nova IDE. Fica para as novas gerações".

Creio que o mesmo se aplica a usuários HwGUI, MiniGui, HMG Extended...

Ele está pedindo testadores, tanto Windows quanto Linux. Tem até um grupo WhatsApp para os testadores.

Torcendo para dar certo.

Segue a lista do que já está funcionando:
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
Fonte (onde se pode ler a versão em espanhol do texto citado acima escrito em inglês)
HarbourBuilder — Cross-Platform Visual IDE for Harbour (major progress update)
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8084
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 3 vezes
Curtiram: 1 vez

Re: HarbourBuilder — Cross-Platform Visual IDE for Harbour

Mensagem por Itamar M. Lins Jr. »

Olá!
Acompanhando. Pena que no windows ele use BCC 7.7 uma cópia do Clang/LLVM antigo 5.0.2 conforme informa o próprio compilador.
Deveria de usar o atual, que vem no msys2 por exemplo que está na versão 20!
Embarcadero C++ 7.70 for Win32
Copyright (c) 1993-2023 Embarcadero Technologies, Inc.
LLVM/Clang C 5.0.2 (f0862325.b014dc86.38289)
Acredito que por questões de cultura (baixar um arquivinho para instalar). Com certeza vai enfrentar problemas de compatibilidade nos 3 OS Mac/Lin/Win.
Lembrando que Mac e Linux é quase a mesma coisa.(praticamente)
Como é a IA que faz, vamos ver até onde irá antes de ser abandonado, ou aparecer mais dúzias de ramificações, igual a mod_harbour, etc...
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8084
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 3 vezes
Curtiram: 1 vez

Re: HarbourBuilder — Cross-Platform Visual IDE for Harbour

Mensagem por Itamar M. Lins Jr. »

Olá!
itamar@itamar-I7:~/dev$ git clone https://github.com/FiveTechSoft/HarbourBuilder.git
Cloning into 'HarbourBuilder'...
remote: Enumerating objects: 3307, done.
remote: Counting objects: 100% (264/264), done.
remote: Compressing objects: 100% (172/172), done.
remote: Total 3307 (delta 162), reused 159 (delta 73), pack-reused 3043 (from 1)
Receiving objects: 100% (3307/3307), 66.62 MiB | 4.00 MiB/s, done.
Resolving deltas: 100% (1380/1380), done.
itamar@itamar-I7:~/dev/HarbourBuilder$ ./build_scintilla.sh
=== Building Scintilla + Lexilla for Linux GTK3 ===
Build directory: /tmp/scintilla_build_766773

[1/4] Downloading Scintilla 561...
[2/4] Downloading Lexilla 548...
[3/4] Extracting and building...
Building Scintilla (GTK3)...
ar rc ../bin/scintilla.a AutoComplete.o CallTip.o CaseConvert.o CaseFolder.o CellBuffer.o ChangeHistory.o CharacterCategoryMap.o CharacterType.o CharClassify.o ContractionState.o DBCS.o Decoration.o Document.o EditModel.o Editor.o EditView.o Geometry.o Indicator.o KeyMap.o LineMarker.o MarginView.o PerLine.o PositionCache.o RESearch.o RunStyles.o Selection.o Style.o UndoHistory.o UniConversion.o UniqueString.o ViewStyle.o XPM.o ScintillaBase.o PlatGTK.o ScintillaGTK.o ScintillaGTKAccessible.o scintilla-marshal.o
g++ -DGTK -DNDEBUG -I ./../include -I ./../src --std=c++17 -fPIC -Wpedantic -Wall -O3 -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glycin-2 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/atk-1.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/fribidi -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gio-unix-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/sysprof-6 -pthread -shared AutoComplete.o CallTip.o CaseConvert.o CaseFolder.o CellBuffer.o ChangeHistory.o CharacterCategoryMap.o CharacterType.o CharClassify.o ContractionState.o DBCS.o Decoration.o Document.o EditModel.o Editor.o EditView.o Geometry.o Indicator.o KeyMap.o LineMarker.o MarginView.o PerLine.o PositionCache.o RESearch.o RunStyles.o Selection.o Style.o UndoHistory.o UniConversion.o UniqueString.o ViewStyle.o XPM.o ScintillaBase.o PlatGTK.o ScintillaGTK.o ScintillaGTKAccessible.o scintilla-marshal.o -o ../bin/libscintilla.so -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lcairo-gobject -lgdk_pixbuf-2.0 -latk-1.0 -lpango-1.0 -lcairo -lharfbuzz -lgio-2.0 -lgobject-2.0 -lz -lgmodule-2.0 -pthread -lglib-2.0
ranlib ../bin/scintilla.a
Building Lexilla...
g++ -shared Lexilla.o Accessor.o CharacterCategory.o CharacterSet.o DefaultLexer.o InList.o LexAccessor.o LexerBase.o LexerModule.o LexerSimple.o PropSetSimple.o StyleContext.o WordList.o LexA68k.o LexAPDL.o LexASY.o LexAU3.o LexAVE.o LexAVS.o LexAbaqus.o LexAda.o LexAsciidoc.o LexAsm.o LexAsn1.o LexBaan.o LexBash.o LexBasic.o LexBatch.o LexBibTeX.o LexBullant.o LexCIL.o LexCLW.o LexCOBOL.o LexCPP.o LexCSS.o LexCaml.o LexCmake.o LexCoffeeScript.o LexConf.o LexCrontab.o LexCsound.o LexD.o LexDMAP.o LexDMIS.o LexDart.o LexDataflex.o LexDiff.o LexECL.o LexEDIFACT.o LexEScript.o LexEiffel.o LexErlang.o LexErrorList.o LexEscSeq.o LexFSharp.o LexFlagship.o LexForth.o LexFortran.o LexGAP.o LexGDScript.o LexGui4Cli.o LexHTML.o LexHaskell.o LexHex.o LexHollywood.o LexIndent.o LexInno.o LexJSON.o LexJulia.o LexKVIrc.o LexKix.o LexLaTeX.o LexLisp.o LexLout.o LexLua.o LexMMIXAL.o LexMPT.o LexMSSQL.o LexMagik.o LexMake.o LexMarkdown.o LexMatlab.o LexMaxima.o LexMetapost.o LexModula.o LexMySQL.o LexNim.o LexNimrod.o LexNix.o LexNsis.o LexNull.o LexOScript.o LexOpal.o LexPB.o LexPLM.o LexPO.o LexPOV.o LexPS.o LexPascal.o LexPerl.o LexPowerPro.o LexPowerShell.o LexProgress.o LexProps.o LexPython.o LexR.o LexRaku.o LexRebol.o LexRegistry.o LexRuby.o LexRust.o LexSAS.o LexSINEX.o LexSML.o LexSQL.o LexSTTXT.o LexScriptol.o LexSmalltalk.o LexSorcus.o LexSpecman.o LexSpice.o LexStata.o LexTACL.o LexTADS3.o LexTAL.o LexTCL.o LexTCMD.o LexTOML.o LexTeX.o LexTroff.o LexTxt2tags.o LexVB.o LexVHDL.o LexVerilog.o LexVisualProlog.o LexX12.o LexYAML.o LexZig.o -o ../bin/liblexilla.so
ar rc ../bin/liblexilla.a Lexilla.o Accessor.o CharacterCategory.o CharacterSet.o DefaultLexer.o InList.o LexAccessor.o LexerBase.o LexerModule.o LexerSimple.o PropSetSimple.o StyleContext.o WordList.o LexA68k.o LexAPDL.o LexASY.o LexAU3.o LexAVE.o LexAVS.o LexAbaqus.o LexAda.o LexAsciidoc.o LexAsm.o LexAsn1.o LexBaan.o LexBash.o LexBasic.o LexBatch.o LexBibTeX.o LexBullant.o LexCIL.o LexCLW.o LexCOBOL.o LexCPP.o LexCSS.o LexCaml.o LexCmake.o LexCoffeeScript.o LexConf.o LexCrontab.o LexCsound.o LexD.o LexDMAP.o LexDMIS.o LexDart.o LexDataflex.o LexDiff.o LexECL.o LexEDIFACT.o LexEScript.o LexEiffel.o LexErlang.o LexErrorList.o LexEscSeq.o LexFSharp.o LexFlagship.o LexForth.o LexFortran.o LexGAP.o LexGDScript.o LexGui4Cli.o LexHTML.o LexHaskell.o LexHex.o LexHollywood.o LexIndent.o LexInno.o LexJSON.o LexJulia.o LexKVIrc.o LexKix.o LexLaTeX.o LexLisp.o LexLout.o LexLua.o LexMMIXAL.o LexMPT.o LexMSSQL.o LexMagik.o LexMake.o LexMarkdown.o LexMatlab.o LexMaxima.o LexMetapost.o LexModula.o LexMySQL.o LexNim.o LexNimrod.o LexNix.o LexNsis.o LexNull.o LexOScript.o LexOpal.o LexPB.o LexPLM.o LexPO.o LexPOV.o LexPS.o LexPascal.o LexPerl.o LexPowerPro.o LexPowerShell.o LexProgress.o LexProps.o LexPython.o LexR.o LexRaku.o LexRebol.o LexRegistry.o LexRuby.o LexRust.o LexSAS.o LexSINEX.o LexSML.o LexSQL.o LexSTTXT.o LexScriptol.o LexSmalltalk.o LexSorcus.o LexSpecman.o LexSpice.o LexStata.o LexTACL.o LexTADS3.o LexTAL.o LexTCL.o LexTCMD.o LexTOML.o LexTeX.o LexTroff.o LexTxt2tags.o LexVB.o LexVHDL.o LexVerilog.o LexVisualProlog.o LexX12.o LexYAML.o LexZig.o
ranlib ../bin/liblexilla.a
[4/4] Installing to /home/itamar/dev/HarbourBuilder/resources...

-rwxrwxr-x 1 itamar itamar 2.9M Apr 7 09:31 /home/itamar/dev/HarbourBuilder/resources/liblexilla.so
-rwxrwxr-x 1 itamar itamar 2.1M Apr 7 09:31 /home/itamar/dev/HarbourBuilder/resources/libscintilla.so

=== Scintilla + Lexilla built successfully ===
Cleaning up build directory...
Vamos ver o que será!
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8084
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 3 vezes
Curtiram: 1 vez

Re: HarbourBuilder — Cross-Platform Visual IDE for Harbour

Mensagem por Itamar M. Lins Jr. »

Olá!
Ele baixa o harbour e compila, provavelmente na pasta dele.
Anexos
Captura_de_tela_20260407_093813.png
Captura_de_tela_20260407_093813.png (270.69 KiB) Exibido 29 vezes
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8084
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 3 vezes
Curtiram: 1 vez

Re: HarbourBuilder — Cross-Platform Visual IDE for Harbour

Mensagem por Itamar M. Lins Jr. »

Olá!
Erro clássico!
Captura_de_tela_20260407_094112.png
Captura_de_tela_20260407_094112.png (97.55 KiB) Exibido 29 vezes
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8084
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 3 vezes
Curtiram: 1 vez

Re: HarbourBuilder — Cross-Platform Visual IDE for Harbour

Mensagem por Itamar M. Lins Jr. »

Olá!
Fica o meme! kkkkk

Código: Selecionar todos

😏😎🤔😬😲😥🫵😑
Viendo a Claude hacer todo tu trabajo frente a tus ojos de repente te diste cuenta de que podrías ser despedido pronto......
661362614_1015460304140413_7378829667713514627_n.jpg
661362614_1015460304140413_7378829667713514627_n.jpg (34.87 KiB) Exibido 28 vezes
Saudações,
Itamar M. Lins Jr.
Responder