BearLang Extension for VS Code
Extensión completa de VS Code para el lenguaje de programación BearLang (.bear) con IntelliSense, autocompletado, Go to Definition y ejecución integrada.
🎯 Características
- ✅ Syntax Highlighting - Resaltado de sintaxis completo
- ✅ IntelliSense - Autocompletado inteligente
- ✅ Go to Definition (F12) - Navega a definiciones de funciones, clases y módulos
- ✅ Hover Information - Información al pasar el mouse
- ✅ Code Snippets - Plantillas de código rápidas
- ✅ Run Button - Ejecuta archivos .bear directamente desde VS Code
- ✅ Import Resolution - Resolución automática de módulos del proyecto y stdlib
📦 Instalación
Copia la extensión a tu carpeta de extensiones de VS Code:
%USERPROFILE%\.vscode\extensions\bearlang-0.1.0\
Reinicia VS Code
Abre cualquier archivo .bear
⚙️ Configuración
Configuración Automática (Recomendada)
La extensión usa rutas por defecto:
- Compilador:
C:\bear\compiler\bear.exe
- Stdlib:
C:\bear\compiler\stdlib\
Si tu instalación está en estas rutas, ¡todo funcionará automáticamente! 🎉
Configuración Personalizada
Si tienes BearLang en otra ubicación:
- Abre Settings (
Ctrl+,)
- Busca "bearlang"
- Configura las rutas:
{
"bearlang.compilerPath": "D:\\MiCarpeta\\bear\\compiler",
"bearlang.stdlibPath": "D:\\MiCarpeta\\bear\\compiler\\stdlib"
}
🚀 Uso
Ejecutar archivos BearLang
Hay 3 formas de ejecutar un archivo .bear:
- Botón Run - Click en "▶ Run Bear" en la barra inferior
- Atajo de teclado -
Ctrl+Shift+B (Windows/Linux) o Cmd+Shift+B (Mac)
- Menú contextual - Click derecho → "Run BearLang File"
Imports y Módulos
La extensión busca módulos en este orden:
1. Rutas Relativas (Mayor prioridad)
import "./mimodulo" as mod; // En la misma carpeta
import "../lib/helper" as help; // Carpeta padre
2. Carpeta del Proyecto
import "utils" as utils; // Busca en workspace/utils.bear
import "lib/database" as db; // Busca en workspace/lib/database.bear
Carpetas comunes buscadas automáticamente:
3. Biblioteca Estándar (stdlib)
import "json" as json; // Busca en C:\bear\compiler\stdlib\json.bear
import "math" as math; // Busca en C:\bear\compiler\stdlib\math.bear
Go to Definition (F12)
- Coloca el cursor sobre cualquier función, clase o módulo importado
- Presiona
F12 o Ctrl+Click
- Se abrirá el archivo donde está definido
Funciona con:
- ✅ Funciones locales
- ✅ Clases locales
- ✅ Módulos importados
- ✅ Funciones de stdlib
- ✅ Constantes
Autocompletado
El autocompletado funciona en diferentes contextos:
Imports
import "↓ // Muestra archivos del proyecto y stdlib
Después de punto (.)
json.↓ // Muestra funciones del módulo json
array.↓ // Muestra métodos de array (push, pop, slice, etc.)
Clases con new
new ↓ // Muestra todas las clases disponibles
General
- Keywords:
def, class, if, while, for, etc.
- Funciones definidas en el archivo
- Clases definidas en el archivo
- Módulos importados
Snippets
Escribe el prefijo y presiona Tab:
def → Función
class → Clase completa con constructor
if → If statement
ifelse → If-else statement
while → While loop
for → For loop
try → Try-catch
import → Import statement
📁 Estructura de Proyecto Recomendada
mi-proyecto/
├── main.bear # Archivo principal
├── lib/ # Módulos locales
│ ├── utils.bear
│ └── database.bear
├── src/ # Código fuente
│ └── app.bear
└── modules/ # Módulos adicionales
└── custom.bear
Con esta estructura:
import "lib/utils" as utils; // ✅ Encontrado
import "json" as json; // ✅ Encontrado en stdlib
import "./lib/database" as db; // ✅ Ruta relativa
🐛 Debugging
Para ver logs de la extensión:
View → Output
- Selecciona "BearLang Language Server" en el dropdown
Los logs mostrarán:
- Rutas de módulos resueltos
- Archivos cargados
- Errores de lectura
🔧 Solución de Problemas
"No se encontró el ejecutable Bear"
- Verifica que
bear.exe exista en la ruta configurada
- Revisa la configuración
bearlang.compilerPath
F12 no encuentra módulos importados
- Verifica que el archivo exista en:
- Carpeta del proyecto
C:\bear\compiler\stdlib\
- Revisa los logs en Output
No aparece el botón Run
- Asegúrate de tener un archivo
.bear abierto
- La extensión debe estar activada
📝 Ejemplo Completo
// main.bear
import "json" as json; // Desde stdlib
import "lib/utils" as utils; // Desde proyecto
class User {
constructor(name, age) {
this.name = name;
this.age = age;
}
toJson() {
obj = json.createObject();
obj = json.setProperty(obj, "name", this.name);
obj = json.setProperty(obj, "age", this.age);
return json.stringify(obj, true);
}
}
def main() {
user = new User("Juan", 25);
print(user.toJson());
// Usar utilidades locales
utils.log("Usuario creado");
}
main();
// lib/utils.bear
def log(message) {
print("[LOG] " + message);
}
def formatDate(date) {
// ...
}
Presiona Ctrl+Shift+B para ejecutar! 🚀
📄 Licencia
MIT
🤝 Contribuir
¿Encontraste un bug? ¿Tienes una sugerencia?
Abre un issue en: https://github.com/AvalonTM/bearlang-vscode/issues
Hecho con ❤️ para la comunidad BearLang