Editor de Codigo (Scintilla)
El editor de codigo de HarbourBuilder esta impulsado por Scintilla 5.5+, el mismo componente de edicion utilizado por Notepad++, SciTE y Code::Blocks. Proporciona funciones profesionales de edicion de codigo con resaltado de sintaxis consciente de Harbour y plegado de codigo inteligente.
Las tres plataformas usan Scintilla 5.5+ — Windows usa DLLs dinamicas, macOS usa bibliotecas estaticas y Linux usa bibliotecas compartidas. La experiencia de edicion es identica en todas las plataformas.
Configuracion de Scintilla por Plataforma
| Plataforma | Tipo de biblioteca | Archivos |
|---|---|---|
| Windows | Bibliotecas dinamicas | Scintilla.dll, Lexilla.dll |
| macOS | Bibliotecas estaticas | libscintilla.a, liblexilla.a |
| Linux | Bibliotecas compartidas | libscintilla.so, liblexilla.so |
Resaltado de Sintaxis
El editor usa un tema de color VS Code Dark+ con resaltado de sintaxis consciente de Harbour:
| Tipo de token | Color | Estilo | Ejemplo |
|---|---|---|---|
| Palabras clave | Azul | Negrita | function, return, local |
| Comandos | Verde azulado | Normal | DEFINE FORM, BUTTON, LABEL |
| Comentarios | Verde | Cursiva | // Esto es un comentario |
| Cadenas | Naranja | Normal | "Hola Mundo" |
| Numeros | Verde claro | Normal | 400, 3.14 |
| Preprocesador | Magenta | Normal | #include, #xcommand |
Plegado de Codigo
El plegado de codigo consciente de Harbour comprende las estructuras del lenguaje xBase:
function/return— Limites de funcionCLASS/ENDCLASS— Definiciones de claseif/endif— Bloques condicionalesfor/next— Bucles fordo while/enddo— Bucles whileswitch/endswitch— Sentencias switchbegin sequence/end sequence— Manejo de excepciones#pragma begindump/#pragma enddump— Codigo C embebido
Atajos de Teclado
| Atajo | Accion |
|---|---|
| Ctrl+F / Cmd+F | Abrir barra de busqueda |
| Ctrl+H / Cmd+H | Abrir barra de reemplazo |
| Ctrl+Space / Cmd+Space | Autocompletado (150+ palabras clave) |
| Ctrl+/ / Cmd+/ | Alternar comentario de linea |
| Ctrl+Shift+D / Cmd+Shift+D | Duplicar linea actual |
| Ctrl+Shift+K / Cmd+Shift+K | Eliminar linea actual |
| Ctrl+L / Cmd+L | Seleccionar linea actual |
| Ctrl+G / Cmd+G | Ir al numero de linea |
| F12 | Ir a la definicion (funcion/procedimiento/metodo/clase) |
Autocompletado
Presiona Ctrl+Space / Cmd+Space para activar el autocompletado con 150+ elementos:
- Palabras clave de Harbour — function, return, local, static, class, method, etc.
- Funciones de Harbour — MsgInfo(), MsgStop(), hb_vfExists(), etc.
- Comandos xBase — DEFINE FORM, BUTTON, LABEL, ACTIVATE, etc.
Coincidencia de Corchetes
El editor resalta automaticamente los corchetes coincidentes:
- Pares coincidentes —
(),[],{}resaltados en amarillo - Corchetes sin par/mal formados — Resaltados en rojo
Marcadores
Establece marcadores para navegar rapidamente a ubicaciones importantes del codigo:
| Atajo | Accion |
|---|---|
| Ctrl+0..9 / Cmd+0..9 | Alternar marcador en la linea actual |
| Ctrl+Shift+0..9 / Cmd+Shift+0..9 | Saltar al marcador |
Fragmentos de Codigo
Expansion con Tab para patrones de codigo comunes:
| Fragmento | Se expande a |
|---|---|
forn | for nI := 1 to nCount |
iff | if condition |
cls | CLASS TClassName FROM TParentClass |
func | function FunctionName() |
proc | procedure ProcedureName() |
whil | do while .T. |
swit | switch nValue |
tryx | begin sequence ... end sequence |
Auto-indentacion
Cuando presionas Enter, el editor sangra automaticamente la nueva linea para coincidir con el nivel de indentacion de la linea anterior. Esto mantiene tu codigo correctamente formateado sin espaciado manual.
Edicion Multi-Archivo con Pestanas
El editor soporta edicion con pestanas, permitiendote trabajar en multiples archivos fuente simultaneamente. Las pestanas muestran el nombre del archivo y un asterisco (*) cuando el archivo tiene cambios sin guardar.
Panel de Mensajes de Construccion
Despues de construir, el panel de Mensajes aparece en la parte inferior mostrando:
- Errores — Marcadores rojos con referencias de archivo/linea en las que se puede hacer clic
- Advertencias — Marcadores amarillos para problemas potenciales
- Ir al codigo fuente — Haz clic en cualquier error para navegar directamente a la linea de codigo
- Boton limpiar — Limpia el panel de mensajes
Barra de Estado
La barra de estado en la parte inferior muestra informacion de edicion en tiempo real:
| Campo | Descripcion |
|---|---|
| Linea | Numero de linea actual |
| Columna | Posicion de columna actual |
| INS/SOB | Indicador de modo Insercion o Sobrescritura |
| Contador de lineas | Total de lineas en el archivo |
| Contador de caracteres | Total de caracteres en el archivo |
| UTF-8 | Codificacion del archivo |
Todas las caracteristicas de Scintilla estan configuradas especificamente para la sintaxis de Harbour/xBase. El lexer comprende las palabras clave, comandos y constructos especificos de xBase de Harbour.