Extensión oficial del lenguaje Forja (fa) para Visual Studio Code — un lenguaje de programación moderno, expresivo y multi-paradigma con sintaxis en español.
- Resaltado de sintaxis con gramática TextMate personalizada (todos los keywords, tipos, strings, operadores, etc.)
- LSP (Language Server Protocol) — análisis semántico, diagnóstico en tiempo real y autocompletado vía
forja-lsp - Depurador integrado — configuración de lanzamiento para depurar archivos
.facon breakpoints, inspección de variables y paso a paso - 39 comandos para ejecutar, compilar, transpilar, generar documentación y depurar código Forja
- Snippets para keywords, estructuras de control y tipos
- Task provider personalizado para builds (run, test, bench, fmt, doc, diagram, transpile, build-asm, build-wasm, build-android)
- 10 keybindings para acceso rápido a las operaciones más frecuentes
- Webviews para diagramas AST interactivos, visor de bytecode y laboratorio WASM
- Sidebar dedicada con vista de diagramas
- Recarga en caliente (Hot Reload) automática al guardar archivos
.fa - Compilación multi-target: nativo, Android (ARM64, x86_64), WebAssembly
- Paleta de colores coherente con el CLI
forja highlighty la documentación web - Auto-cierre de brackets
{},(),[], comillas""e indentación automática
| Comando | Título | Descripción |
|---|---|---|
forja.run |
Forja: ejecutar | Ejecuta el archivo activo con la VM por defecto |
forja.runFast |
Forja: ejecutar con FastVM | Ejecuta usando la máquina virtual rápida (FastVM) |
forja.runJIT |
Forja: ejecutar con JIT | Ejecuta con compilación JIT nativa |
forja.runAOT |
Forja: compilar AOT y ejecutar | Compila anticipadamente (AOT) y ejecuta |
forja.runDebug |
Forja: ejecutar en modo depuración | Ejecuta en modo debug con el depurador integrado |
forja.runGUI |
Forja: ejecutar con interfaz nativa | Ejecuta utilizando la runtime GUI nativa |
forja.runRepl |
Forja: abrir VM interactiva | Abre una terminal interactiva (REPL) de Forja |
forja.build |
Forja: compilar a Bytecode | Compila el archivo activo a bytecode |
forja.buildASM |
Forja: compilar a ASM | Compila a ensamblador |
forja.buildAndroid |
Forja: compilar para Android | Compila el proyecto para Android |
forja.buildAndroid.arm64 |
Forja: compilar para Android ARM64 | Compila para arquitectura ARM64 Android |
forja.buildAndroid.x86_64 |
Forja: compilar para Android x86_64 | Compila para arquitectura x86_64 Android |
forja.buildAndroid.all |
Forja: compilar para Android (todos los objetivos) | Compila para todas las arquitecturas Android |
forja.buildWASM |
Forja: compilar a WebAssembly | Compila el archivo activo a WebAssembly |
forja.test |
Forja: ejecutar prueba | Ejecuta las pruebas del archivo activo |
forja.bench |
Forja: evaluar rendimiento | Ejecuta benchmarks de rendimiento |
forja.fmt |
Forja: formatear archivo | Formatea el código Forja con el formateador oficial |
forja.doc |
Forja: generar documentacion HTML | Genera documentación HTML a partir del código |
forja.diagram |
Forja: generar diagrama | Genera un diagrama AST del código activo |
forja.transpile |
Forja: transpilar a Rust | Transpila el código Forja a Rust |
forja.hotReload |
Forja: recarga en caliente | Recarga el código en caliente sin reiniciar |
forja.hotRestart |
Forja: reinicio en caliente | Reinicia la ejecución en caliente |
forja.newProject |
Forja: crear nuevo proyecto | Crea un nuevo proyecto Forja desde una plantilla |
forja.selectVM |
Forja: seleccionar maquina virtual por omisión | Cambia la VM por defecto (FastVM, VM, JIT) |
forja.selectTarget |
Forja: seleccionar plataforma | Cambia la plataforma objetivo de compilación |
forja.showOutput |
Forja: mostrar salida | Muestra el panel de salida de Forja |
forja.installToolchain |
Forja: instalar o verificar el entorno de compilación | Verifica/instala el toolchain de Forja |
forja.openTutorial |
Forja: abrir tutorial interactivo | Abre el tutorial interactivo de Forja |
forja.openWasmPlayground |
Forja: abrir laboratorio WebAssembly | Abre el playground WASM en una webview |
forja.openDiagram |
Forja: abrir visor de diagramas | Abre el visor de diagramas AST |
forja.toggleSidebar |
Forja: alternar panel lateral | Muestra/oculta la sidebar de Forja |
forja.toggleHotReload |
Forja: activar o desactivar recarga en caliente | Activa/desactiva la recarga en caliente |
forja.checkAndroidNDK |
Forja: verificar NDK Android | Verifica que el NDK de Android esté instalado |
forja.deployAndroid |
Forja: desplegar en dispositivo Android | Despliega la app compilada en un dispositivo Android |
forja.showAST |
Forja: mostrar AST | Muestra el Árbol de Sintaxis Abstracta del archivo activo |
forja.showBytecode |
Forja: mostrar Bytecode generado | Muestra el bytecode generado por el compilador |
forja.openStdlib |
Forja: abrir archivo de la biblioteca | Abre un archivo de la biblioteca estándar |
forja.openFile |
Forja: abrir archivo | Abre un archivo del proyecto |
forja.revealLine |
Forja: ir a linea | Navega a una línea específica |
| Nombre | Tipo | Valor por defecto | Descripción |
|---|---|---|---|
forja.diagram.command |
string |
"forja" |
Comando o ruta absoluta al compilador Forja para generar diagramas |
forja.lsp.path |
string |
"" |
Ruta al binario del LSP server forja-lsp. Vacío = auto-detect en PATH |
forja.lsp.enabled |
boolean |
true |
Habilitar/deshabilitar el servidor LSP |
forja.defaultVM |
string |
"fastvm" |
Máquina virtual por defecto para ejecución (fastvm, vm, jit) |
forja.defaultTarget |
string |
"native" |
Plataforma objetivo por defecto para compilación |
forja.buildArgs |
string |
"" |
Argumentos extra para el compilador Forja (CLI) |
forja.terminal.preserveFocus |
boolean |
false |
Mantener el foco en el editor al ejecutar comandos |
forja.terminal.clearBeforeRun |
boolean |
false |
Limpiar la terminal antes de ejecutar |
forja.hotReload.enabled |
boolean |
true |
Habilitar recarga en caliente automática al guardar archivos .fa |
forja.checkDiagnosticsOnSave |
boolean |
true |
Ejecutar diagnóstico completo al guardar |
| Tecla | Comando | Cuándo |
|---|---|---|
Ctrl+Alt+R |
forja.run |
editorLangId == forja |
Ctrl+Alt+F |
forja.runFast |
editorLangId == forja |
Ctrl+Alt+D |
forja.runDebug |
editorLangId == forja |
Ctrl+Alt+G |
forja.runGUI |
editorLangId == forja |
Ctrl+Alt+T |
forja.test |
editorLangId == forja |
Ctrl+Alt+P |
forja.runRepl |
editorLangId == forja |
Ctrl+Alt+L |
forja.fmt |
editorLangId == forja |
Ctrl+Alt+H |
forja.hotReload |
editorLangId == forja |
Ctrl+Shift+R |
forja.hotRestart |
editorLangId == forja |
Ctrl+Alt+E |
forja.openTutorial |
editorLangId == forja |
| Token | Color | CSS/ANSI | Elementos |
|---|---|---|---|
keyword |
#f59e0b 🔶 |
var(--fuego-light) |
variable, si, funcion, clase, coincidir, etc. |
function |
#10b981 🟢 |
var(--verde) |
escribir(), leer() |
type |
#06b6d4 🔷 |
var(--cian) |
Entero, Decimal, Texto, Booleano |
string |
#fbbf24 ⭐ |
gold | Texto entre comillas dobles |
comment |
#5b6a84 🌫️ |
var(--text-muted) |
Líneas con // |
operator |
#ec4899 🩷 |
var(--rosa) |
+, -, *, /, ==, &&, || |
number |
#818cf8 💜 |
var(--acero-light) |
Literales numéricos |
boolean |
#f59e0b 🔶 |
var(--fuego-light) |
verdadero, falso |
La paleta de colores de esta extensión es idéntica a la usada en el comando CLI forja highlight, la documentación web y el playground WASM.
- Rust toolchain (cargo, rustc) — necesario para compilar el núcleo de Forja
- Forja instalado en el sistema (
forja,forja-lspdisponibles en PATH) - VS Code
^1.60.0o superior
- Abrir VS Code
Ctrl+Shift+P→ "Extensions: Install Extensions"- Buscar "Forja (fa)"
- Hacer clic en "Instalar"
- Descargar el
.vsixdesde Releases Ctrl+Shift+P→ "Extensions: Install from VSIX..."- Seleccionar el archivo
.vsixdescargado
code --install-extension forja-syntax-0.8.8.vsix- Abre un archivo
.fa - Usa
Ctrl+Shift+Py busca "Forja: ejecutar" - O usa las teclas rápidas:
Ctrl+Alt+R— ejecutar con VM por defectoCtrl+Alt+F— ejecutar con FastVMCtrl+Alt+D— ejecutar en modo depuración
- Para cambiar de motor, usa
Forja: seleccionar maquina virtual por omisión
| Ruta | Propósito |
|---|---|
vscode/forja-syntax/ |
Código fuente de la extensión |
vscode/forja-syntax/package.json |
Manifiesto de la extensión |
vscode/forja-syntax/language-configuration.json |
Configuración de comentarios, brackets, auto-cierre, indentación |
vscode/forja-syntax/syntaxes/forja.tmLanguage.json |
Gramática TextMate |
vscode/forja-syntax/src/ |
Código TypeScript de la extensión |
vscode/forja-syntax/snippets/forja.json |
Snippets del lenguaje |
.github/workflows/package.yml |
CI: empaquetado automático del VSIX |
git clone https://github.com/forja-lang/forja.git
cd vscode/forja-syntax
npm installPara desarrollo:
- Abrí la carpeta
vscode/forja-syntax/en VS Code - Presioná
F5para iniciar una ventana de Extension Development Host - Editá los archivos en
syntaxes/,src/olanguage-configuration.json - Recargá con
Ctrl+Shift+P→ "Developer: Reload Window" - Compilá con
npm run compile - Opcional: regenerá el VSIX con
npx vsce package
Versión actual: 0.8.8 — Soporte completo para el lenguaje Forja: sintaxis, LSP, compilación, depuración y toolchain multi-plataforma.
MIT — Ver archivo LICENSE.md para más detalles.