Saltar al contenido principal

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.

JARU IDE con SpaceIntruders abierto: la pestaña Build de la cinta, el explorador a la izquierda, el editor de código en el centro y, abajo, el Output junto a la Error List

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​

La pestaña Home de la cinta, con los grupos Project y View

El grupo Project abre y cierra proyectos:

BotónQué hace
NewCierra el proyecto abierto y abre el asistente de proyectos (Project Wizard), para crear uno, abrir otro o partir de un ejemplo.
OpenAbre otro proyecto: eliges su fichero .jpr y el IDE cierra el que tenías.
SaveGuarda 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.
CloseCierra 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ónAbreLo cuenta
ExplorerEl explorador del proyecto (Explorer)Proyectos
CodeEl editor de código (Code Editor)Editor de código
ImagesEl editor de imágenes (Image Editor)Editor de imágenes
SpritesEl editor de sprites (Sprite Manager)Editor de sprites
TileMapEl editor de mapas (Tilemap Editor)Editor de mapas
ScenesEl editor de escenas (Scene Editor)Editor de escenas
MusicEl Music Tracker (Music Editor)Music Tracker
OutputLo que cuentan el IDE y el monitor serie (Output)El Output y el monitor serie
ErrorsLos errores y avisos del código (Error List)La Error List
GitEl control de versiones (Version Control)Git
I2C ControllerLa biblioteca de drivers I2C (I2C Driver Manager)Drivers I2C
Task ListLa 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​

La pestaña Build de la cinta, con los grupos Target, Compiler y Debug

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ónQué hace
CompilePrepara 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.
RunEjecuta 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.
StopPara 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.

Compilar no guarda

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ónAtajoQué hace
DebugF5Compila el proyecto y lo arranca en el depurador. Va siempre en la VM de Windows, aunque Target sea una placa.
Step OverF10Con el programa parado, ejecuta la línea sin entrar en las funciones que llama.
Step IntoCon el programa parado, ejecuta la línea entrando en la función que llama.
ContinueF5Con el programa parado, sigue hasta el siguiente punto de parada.
WatchAbre la ventana Watch.
GPIO SimAbre 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​

La pestaña Config de la cinta, con los grupos Platform e IDE
BotónQué hace
WindowsAbre 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.
ESP32Abre 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.
SettingsAbre 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.
AboutEnseña la versión del IDE y los créditos (About JARU).
UpdatesMira 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:

ControlQué hace
Clear LogVacía el Output.
Open SerialAbre 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.
PortEl puerto serie. El botón de las flechas en círculo (Refresh) vuelve a buscar los puertos y los lista en el Output.
SpeedLa 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​

La ventana Watch con las variables de SpaceIntruders: una instancia y sus sprites desplegados por páginas

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 Intro o +. − 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: local o global, 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.

Volver a la disposición de serie

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.

Editor de código y depurador​

AtajoQué hace
F5Debug; con el programa parado, Continue.
F10Step Over.
F9Pone o quita un punto de parada en la línea del cursor.
Ctrl+SGuarda el fichero de la pestaña.
Ctrl+FAbre el panel de búsqueda y reemplazo.
Ctrl+EspacioAbre el autocompletado.
Ctrl+JCon texto elegido, la edición sincronizada: al cambiar un nombre, cambian a la vez todas sus apariciones en lo elegido.
EscCierra la pista abierta. En la edición sincronizada, la termina.
Ctrl+Shift+MEnseña u oculta el minimapa.
Ctrl + clic en un nombreVa a donde está definido, también en otro fichero.
Ctrl + ruedaAgranda o achica la letra, de 6 a 72 puntos.
Ctrl+Z y Ctrl+Shift+ZDeshacen y rehacen.
Ctrl+YBorra la línea: no rehace.
Ctrl+Shift+YBorra hasta el final de la línea.
Ctrl+NInserta una línea en blanco: no crea un fichero.
Ctrl+TBorra hasta el final de la palabra.
Ctrl+I y Ctrl+UAñaden y quitan sangría a las líneas elegidas.
Alt+Shift+1 y Alt+Shift+0Pliegan todos los bloques y los despliegan.
Ctrl+Shift+BSalta al paréntesis, corchete o llave pareja.
Alt+Shift + flechasEligen en columna.
↓, ↑, Intro y Esc, en Search symbols...Abren la lista de símbolos, la recorren, saltan al elegido y la cierran.

F5, F9 y F10 solo valen con el cursor en el editor de código. Cómo se usa cada cosa, en Editor de código y Depurador.

Editor de escenas​

AtajoQué hace
1 a 6Eligen Select, Place, Shape, Zone, Pan o Path.
Espacio, pulsadoDesplaza la vista arrastrando.
+, -, F y Ctrl+0Acercan, alejan, encajan todo en la vista (Fit) y ponen el zoom al 100 %.
Ctrl+Z y Ctrl+YDeshacen y rehacen.
Ctrl+S y Ctrl+GSave y Generate.
Ctrl+C, Ctrl+X, Ctrl+V, Ctrl+D y Ctrl+ACopian, cortan, pegan y duplican lo elegido, y eligen todos los objetos de la capa.
Supr, F2 y EscBorran lo elegido, lo renombran y dejan la selección vacía.
FlechasMueven lo elegido; con Shift, de píxel en píxel.
Re Pág, Av Pág, Inicio y FinCambian lo elegido de sitio en el orden de dibujo.
H y VVoltean en horizontal y en vertical.

Los de la herramienta Path, los del ratón y los de la ventana Problems, en Editor de escenas.

Editor de mapas​

AtajoQué hace
Ctrl+ZDeshace.
Ctrl+Y o Ctrl+Shift+ZRehacen.
Ctrl + ruedaAcerca o aleja el mapa, o la paleta.
Botón derecho, sobre el mapaBorra, con cualquier herramienta.

Más, en Editor de mapas.

Editor de sprites​

AtajoQué hace
Ctrl+Z y Ctrl+YDeshacen y rehacen.
Ctrl+SGuarda el sprite.
Ctrl+0 y Ctrl+9Zoom al 100 % (1:1) y la hoja entera en la vista (Fit).
+ y -, o Ctrl + ruedaAcercan y alejan la hoja.
EspacioReproduce o para la animación.
← y →Pasan al fotograma anterior o al siguiente.
SuprBorra los fotogramas marcados.

Más, en Editor de sprites.

Editor de imágenes​

AtajoQué hace
Ctrl+C, Ctrl+X y Ctrl+VCopian, cortan y pegan lo elegido. Al pegar, el editor pasa a Select, para que arrastres lo pegado a su sitio.
Ctrl+AElige la imagen entera, con Select.
SuprBorra lo elegido.
Esc o IntroSueltan lo elegido.
FlechasMueven lo elegido de píxel en píxel.
Ctrl + ruedaAcerca o aleja la imagen hacia el ratón.

Supr, Esc, Intro y las flechas valen con la herramienta Select y algo elegido. Undo y Redo no tienen tecla. Más, en Editor de imágenes.

Music Tracker​

AtajoQué hace
Ctrl+SSave.
F9Validate: comprueba la canción.
F5, F6 y F8Tocan la canción, la pausan o la siguen, y la paran.
Ctrl+F5Toca en bucle las filas elegidas.
Ctrl+Z, y Ctrl+Y o Ctrl+Shift+ZDeshacen y rehacen.
Ctrl+LEnciende o apaga Loop song.
Ins, Shift+Supr y Ctrl+DInsertan una fila debajo, borran las filas elegidas y las duplican.
Ctrl+C, Ctrl+X, Ctrl+V y SuprCopian, cortan, pegan y vacían las celdas elegidas.
Shift+↑ y Shift+↓Pitch + y Pitch -: suben o bajan lo elegido un semitono.
Shift+Re Pág y Shift+Av Pág+12 y -12: lo suben o lo bajan una octava.
Ctrl+↑ y Ctrl+↓Cambian la octava del teclado del ordenador.
Ctrl+← y Ctrl+→Mueven el piano de la pantalla.
Alt+1 a Alt+4Silencian un canal de tono; con Shift, lo dejan sonar solo.
Z S X D C V G B H N J M y Q 2 W 3 E R 5 T 6 Y 7 UTocan notas, como un piano. Con REC encendido, además las escriben.
Esc, en el editor de instrumentosLo cierra sin guardar.

Más, en Music Tracker.

Otras ventanas​

DóndeAtajoQué hace
WatchIntro, en la caja de arribaAñade la variable.
Error List y Tasks ManagerDoble clic en una filaLleva a esa línea del código.
La tabla de pines del simulador GPIOIntro y EscAceptan o descartan lo que estás cambiando.

Problemas conocidos​

  • Los filtros de la Error List no duran. Cada vez que el editor de código vuelve a analizar el fichero, al escribir o al cambiar de pestaña, la lista vuelve a enseñarlo todo, aunque los botones sigan diciendo «0 of …» y el filtro siga escrito. Para volver a aplicarlos, escribe en el cuadro (Filter).

Todos los problemas conocidos de JARU, juntos, están en Problemas conocidos.