La interfaz
La ventana de JARU IDE tiene dos partes. Arriba, la cinta: los botones del IDE, en tres pestañas (Home, Build y Config). Debajo, los paneles: el explorador del proyecto, los editores y las ventanas de salida. Los paneles se mueven, se juntan en pestañas o se sacan a ventanas sueltas.
Recién instalado, el IDE pone el explorador a la izquierda, el editor de código en el centro y, abajo, la Error List y el Output en dos pestañas. Cómo se cambia, en El espacio de trabajo.
La cinta
Cada pestaña agrupa sus botones, con el nombre del grupo debajo. Un botón gris no se puede usar en ese momento: los de compilar, ejecutar y depurar necesitan un proyecto abierto, y mientras el IDE compila, ejecuta o depura se apagan los que no tocan.
La cinta no tiene teclas: los atajos son de cada panel (ver Atajos).
Home
El grupo Project abre y cierra proyectos:
| Botón | Qué hace |
|---|---|
| New | Cierra el proyecto abierto y abre el asistente de proyectos (Project Wizard), para crear uno, abrir otro o partir de un ejemplo. |
| Open | Abre otro proyecto: eliges su fichero .jpr y el IDE cierra el que tenías. |
| Save | Guarda lo que haya sin guardar en todos los editores (el código, las imágenes, los sprites, la música, el mapa y las salas abiertas) y el .jpr del proyecto. |
| Close | Cierra el proyecto y abre el asistente de proyectos. Si cierras el asistente sin elegir nada, el IDE se queda sin proyecto. |
New, Open, Close y cerrar el IDE preguntan antes por lo que no hayas guardado, una vez por cada editor que tenga algo: Yes lo guarda, No lo deja sin guardar y Cancel no cierra nada.
El grupo View abre los paneles. Cada botón abre el suyo o, si ya está abierto, lo pone delante. Un panel que no está en la disposición de la ventana se abre en una ventana suelta.
| Botón | Abre | Lo cuenta |
|---|---|---|
| Explorer | El explorador del proyecto (Explorer) | Proyectos |
| Code | El editor de código (Code Editor) | Editor de código |
| Images | El editor de imágenes (Image Editor) | Editor de imágenes |
| Sprites | El editor de sprites (Sprite Manager) | Editor de sprites |
| TileMap | El editor de mapas (Tilemap Editor) | Editor de mapas |
| Scenes | El editor de escenas (Scene Editor) | Editor de escenas |
| Music | El Music Tracker (Music Editor) | Music Tracker |
| Output | Lo que cuentan el IDE y el monitor serie (Output) | El Output y el monitor serie |
| Errors | Los errores y avisos del código (Error List) | La Error List |
| Git | El control de versiones (Version Control) | Git |
| I2C Controller | La biblioteca de drivers I2C (I2C Driver Manager) | Drivers I2C |
| Task List | La lista de tareas (Tasks Manager) | Editor de código |
Task List busca en los ficheros de código del proyecto los comentarios con TODO, FIXME, BUG, HACK, NOTE, WARNING, OPTIMIZE, REFACTOR o TEMP, escritos en mayúsculas, y los pone en una lista por fichero. Con doble clic vas a esa línea; Refresh vuelve a buscar.
Build
El grupo Target dice dónde se ejecuta el programa:
- El botón del destino. Target: Windows es la VM de Windows. Con una placa, dice su chip (Target: ESP32-S3, por ejemplo); al dejar el ratón encima, sale el nombre de la placa y su puerto. Al pulsarlo se despliega el menú: Windows x64, las placas del proyecto, con su chip y su puerto, y Manage boards..., que abre ESP32 Tools para añadirlas o cambiarlas.
- El destino se guarda con el proyecto. Al elegir una placa, pasa a ser también la placa activa del proyecto, la que enseña ESP32 Tools.
- Si el perfil de placa del destino ya no existe, el botón dice Target: (missing): elige otro.
- Line numbers. Con la casilla encendida, el programa compilado lleva los números de línea, y un error mientras corre dice en qué línea ha sido. Apagada, el programa ocupa menos RAM en la placa, pero los errores no dicen la línea. Está encendida de serie y se guarda con el proyecto. Debug y el Play del editor de escenas compilan siempre con los números de línea.
El grupo Compiler:
| Botón | Qué hace |
|---|---|
| Compile | Prepara los recursos del proyecto (imágenes, sprites, mapas y música, en Build/flash) y compila el fichero principal en Build/flash/<nombre>.jxr. El fichero principal es el de Main File en el explorador o, si no hay, la pestaña activa del editor de código. El Output cuenta cómo va. |
| Run | Ejecuta el programa en el destino de Target. Compila antes si el programa no está compilado, si has guardado código, imágenes, sprites, mapas o música después de compilarlo, o si no está compilado como pide Line numbers. |
| Stop | Para el programa que corre en Windows, el de Run o el del Play del editor de escenas, o la depuración. |
Con Run en Windows, el programa corre en su propia consola: ahí sale lo que imprime y ahí lee readLine. Al acabar, la consola espera a que pulses una tecla. Si el programa da errores, salen también en el Output.
Con Run en una placa, el IDE le envía el programa, y el Output cuenta los tres pasos: prepara los ficheros para la placa, mira que la placa lleve la VM de JARU (si no la lleva, te ofrece grabarla antes con Flash Firmware) y graba en ella el programa y sus ficheros.
Compile, Run y Debug compilan los ficheros tal como están en el disco: lo que no hayas guardado no entra. Guarda antes con Home › Project › Save o, en el editor de código, con Ctrl+S.
El grupo Debug:
| Botón | Atajo | Qué hace |
|---|---|---|
| Debug | F5 | Compila el proyecto y lo arranca en el depurador. Va siempre en la VM de Windows, aunque Target sea una placa. |
| Step Over | F10 | Con el programa parado, ejecuta la línea sin entrar en las funciones que llama. |
| Step Into | Con el programa parado, ejecuta la línea entrando en la función que llama. | |
| Continue | F5 | Con el programa parado, sigue hasta el siguiente punto de parada. |
| Watch | Abre la ventana Watch. | |
| GPIO Sim | Abre el simulador GPIO (GPIO Simulator). |
Los atajos valen con el cursor en el editor de código. Cómo se depura, en Depurador; el simulador, en Simulador GPIO.
Config
| Botón | Qué hace |
|---|---|
| Windows | Abre Windows Tools, los ajustes de la VM de Windows para este proyecto: el nombre del dispositivo (Device Name), la conexión MQTT y el tamaño de la ventana del programa (Window Scale, de x1 a x4). Se guardan en Config/windows.cfg, dentro del proyecto. |
| ESP32 | Abre ESP32 Tools: las placas del proyecto y su perfil de placa, la pantalla, el sonido, la tarjeta SD, el bus I2C y la red, y los botones que graban en la placa el firmware de la VM y el programa. |
| Settings | Abre Settings: las rutas del compilador y de las VM, la casilla Check for updates on startup, los proveedores de IA (AI Agents) y Load Layout y Save Layout, que cargan y guardan la disposición de los paneles. |
| About | Enseña la versión del IDE y los créditos (About JARU). |
| Updates | Mira en ese momento si hay una versión nueva de JARU IDE. Si la hay, sale el aviso de actualización, aunque antes le dijeras Skip this version o Remind me later; si no, te dice que tienes la última. |
Windows y ESP32 están en el grupo Platform; Settings, About y Updates, en el grupo IDE. Los ajustes y los avisos de actualización se cuentan en Ajustes y avisos de actualización.
Los paneles
El explorador
El panel Explorer enseña el proyecto abierto:
- Los botones de arriba crean ficheros (código, sprites, música, mapas, salas y carpetas), importan imágenes y borran lo elegido.
- Project: el nombre del proyecto.
- Main File: el fichero principal, el que compila Compile.
- Output: el programa (
.jxr) que dejó la última compilación, el que ejecuta Run. - Filter: deja en el árbol solo los ficheros cuyo nombre lleva lo que escribes, sin mirar mayúsculas, y los sprites de un actor que se llame así. La cruz roja lo borra.
- El árbol, con las seis carpetas del proyecto y lo que ocupa cada fichero. Con doble clic abres un fichero en su editor, con el botón derecho sale su menú y, arrastrando, lo cambias de carpeta.
Todo esto, con detalle, en Proyectos.
Los editores
El centro de la ventana es de los editores. Se abren con doble clic en un fichero del explorador o con su botón de Home › View. El de código, el de imágenes, el de sprites, el de escenas y el Music Tracker abren cada fichero en una pestaña; el de mapas tiene un solo mapa abierto.
Cada editor tiene su página (mira la tabla de View, arriba). La del editor de código es Editor de código.
El Output y el monitor serie
El Output es donde el IDE cuenta lo que hace:
- Al arrancar, los puertos serie que encuentra.
- Al compilar, cada paso y el resultado. Los errores salen en rojo, con su fichero, línea y columna, y los avisos en amarillo. Si la compilación falla, el primer error se repite al final.
- Si la compilación va bien pero el editor de código marca errores que el compilador no comprueba, el Output los repite como aviso: un programa que llega a uno se para ahí.
- Con Run en Windows, los errores del programa, al acabar. Lo que imprime sale en su consola, no aquí.
- Con Run en una placa, los pasos del envío.
- Con el Play del editor de escenas, también lo que imprime el juego.
- Al depurar, en qué línea se ha parado el programa.
- Lo que llega por el monitor serie.
Su barra:
| Control | Qué hace |
|---|---|
| Clear Log | Vacía el Output. |
| Open Serial | Abre el monitor serie en el puerto de Port, a la velocidad de Speed. Mientras está abierto, el botón dice Close Serial, y lo cierra. |
| Port | El puerto serie. El botón de las flechas en círculo (Refresh) vuelve a buscar los puertos y los lista en el Output. |
| Speed | La velocidad: de 9600 a 921600 baudios. De serie, 115200. |
El monitor serie enseña en el Output lo que la placa envía por el puerto, como lo que imprime tu programa:
- Si el destino de Target es una placa y no has elegido otro puerto, Open Serial usa el de la placa.
- Si el puerto desaparece porque la placa se reinicia, el monitor lo vuelve a abrir en cuanto vuelve.
- Mientras el IDE graba la placa, el monitor se aparta, y vuelve al terminar.
- Solo recibe: no envía nada a la placa.
La Error List
La Error List reúne los errores y avisos que el IDE encuentra en el código del proyecto, al abrirlo y mientras escribes: los mismos que subraya el editor de código. Los del compilador no van aquí, sino al Output.
- Cada fila dice el tipo (el icono), en qué parte del análisis ha salido (Stage: Lexer, Parser o Semantic), el mensaje (Message), el fichero (File), la línea (Line) y la columna (Column).
- Con doble clic en una fila, el editor de código abre el fichero en esa línea y columna.
- Errors, Warnings e Info dicen cuántos hay de cada tipo. Al pulsar uno, la lista enseña u oculta ese tipo; oculto, el botón dice, por ejemplo, «0 of 3 Warnings».
- El cuadro (Filter) deja solo los mensajes que llevan lo que escribes. La cruz lo borra.
- Con el botón derecho, Copy Text copia las filas elegidas, con sus datos separados por tabuladores.
Watch
Watch (Build › Debug › Watch) enseña el valor de las variables que le pidas mientras depuras. Es una ventana que se queda siempre encima de las demás. La primera vez que la abres, sale a la derecha de la ventana del IDE, a media altura.
- Escribe el nombre en la caja de arriba y pulsa
Introo +. − quita la variable elegida, y la flecha redonda vuelve a pedir su valor. - Desde el editor de código, Add Watch, en el menú del botón derecho, abre Watch y le añade lo que tengas elegido o la palabra que tiene el cursor.
- Cada fila dice el nombre (Name), el valor (Value), el tipo (Type) y de dónde es la variable (Context:
localoglobal, por ejemplo). - Las instancias, los sprites y las listas se despliegan. Si tienen muchos elementos, salen por páginas, de tantos como diga Items/page: 10, 20, 50 o 100.
Los valores se ponen al día cada vez que el programa se para. Cómo se depura, en Depurador.
El espacio de trabajo
Cada panel tiene una cabecera con su nombre y una cruz (Close) que lo cierra. Si está acoplado junto a otro, lleva también una chincheta (Minimize). En un panel ancho, la cabecera va a la izquierda, en vertical; en uno alto, arriba.
- Mover un panel. Arrástralo por su cabecera o, si está en pestañas, por su pestaña. Mientras lo arrastras, el IDE marca dónde va a quedar. Si lo sueltas junto a un borde de otro panel, se pone a ese lado; si lo sueltas en el centro, se junta con él en pestañas, como la Error List y el Output. Fuera de la ventana del IDE, se queda en una ventana suelta, que puedes llevar a otro monitor.
- Volver a acoplarlo. Una ventana suelta también tiene cabecera: arrástrala por ella hasta la ventana del IDE.
- Cerrar un panel. La cruz lo cierra. Vuelve con su botón de la cinta.
- Encogerlo. La chincheta lo deja en su cabecera y da su sitio a los de al lado. Para verlo sin desplegarlo, deja el ratón quieto sobre la cabecera: sale por encima de los demás hasta que apartas el ratón. Vuelve a pulsar la chincheta para devolverlo a su sitio.
- El menú de la cabecera. Con el botón derecho en una cabecera: Locked bloquea los paneles, para no moverlos sin querer; Undock saca el panel a una ventana suelta; Header position pone la cabecera arriba, abajo o a un lado, o donde le toque según su forma (Automatically); Docking options abre los ajustes del acoplado.
Settings, About y el asistente de proyectos no son paneles, sino ventanas normales. Una ventana suelta que no cabe en la pantalla se encoge hasta caber.
Guardar la disposición
El IDE arranca con la disposición de los paneles que hay guardada en AppData\Local\JaruIDE\layout.xml. La primera vez no hay ninguna, y copia la de serie de la instalación.
El IDE no guarda la disposición al cerrar. Para que la próxima vez salga como la tienes ahora, pulsa Save Layout, en Config › IDE › Settings. Load Layout vuelve a la que guardaste.
Cierra el IDE, borra layout.xml de AppData\Local\JaruIDE y vuelve a abrirlo.
Atajos
No hay atajos de todo el IDE: cada tecla vale en el panel que tiene el foco. Mientras escribes en un campo de texto, casi todas las teclas son del campo.