Editar y aplicar
La ventana tiene cuatro zonas: la barra de herramientas arriba, el editor en medio, el panel de problemas y resultados debajo y la barra de estado al pie.
La barra de herramientas
Sección titulada «La barra de herramientas»| Ver / Editar | El modo del editor — ver Ver y Editar |
| Recargar | Vuelve a pedir la sala al servidor y reescribe el documento entero |
| Aplicar / Vista previa… | Compila el texto y guarda lo que haya cambiado. Se llama Vista previa… en cuanto hay algo que comprar, recoger, mover o cambiar de altura/rotación |
N cambios |
Cuántos wireds se guardarían ahora mismo |
+N nuevos |
Cuántos bloques nuevos hay (solo aparece si hay alguno) |
↔ N movidos |
Cuántos wireds o furnis cambiarían de casilla o de altura/rotación (solo aparece si hay alguno; el texto pasa a «N movidos/alturas» si hay de las dos cosas) |
−N quitados |
Cuántos wireds o furnis se recogerían (solo aparece si hay alguno) |
N errores |
Cuántos errores bloquean el Aplicar |
Las pastillas se encienden cuando su número deja de ser cero.
Ver y Editar
Sección titulada «Ver y Editar»El editor tiene dos modos, en la propia barra. Se recuerdan por navegador (no por sala): la próxima vez que abras Wired Code, sigues en el mismo modo en el que lo dejaste.
| Modo | Qué permite |
|---|---|
| Ver (por defecto) | Solo lectura: seleccionar y copiar texto, buscar, y el hover/resaltado de #id y etiquetas contra la sala — ver El editor. No hay Aplicar ni Vista previa… |
| Editar | Todo lo de arriba, más escribir y aplicar — es el modo descrito en el resto de esta página |
Abrir la ventana te deja en Ver: es el modo pensado para consultar la sala sin arriesgarte a tocar nada por accidente. Pasas a Editar con su botón cuando quieras cambiar algo.
Volver a Ver con cambios sin aplicar te pregunta primero —el mismo aviso que Recargar— porque ese cambio de modo descarta lo que hubieras escrito: confirmas y el documento vuelve a quedar en solo lectura con lo último guardado en el servidor, no con tu borrador.
Este modo es independiente de si tienes o no derechos de wired en la sala: con derechos puedes elegir Ver o Editar; sin ellos, ver Solo lectura más abajo — ese es el motivo por el que el documento es de solo lectura, no una elección tuya.
Recargar
Sección titulada «Recargar»Pide el volcado y descarta lo que hubieras escrito. Si tienes cambios sin aplicar, primero te pregunta «Discard unsaved changes?».
Recarga tú mismo siempre que hayas tocado la sala con el ratón (colocar, recoger, mover una caja):
el documento es una foto del momento en que se pidió, y aplicar sobre una foto vieja da errores de
#id que no existe.
Recargar también está apagado mientras se está construyendo de verdad: recargar a mitad tiraría el
texto en el que hay que escribir los #id nuevos.
Aplicar
Sección titulada «Aplicar»Es un botón en tres pasos:
- Compilar. Si hay un solo error, no se envía nada. Ni un wired. Los errores salen en el panel con su línea.
- Comparar (el diff). De todo lo que compila, solo se manda lo que sale distinto de lo que
la ventana de ese wired mandaría sin tocar nada. Reordenar campos, cambiar comentarios o escribir
un enumerado por su nombre en vez de por su número no cuentan como cambio: no se guarda. Eso
es lo que cuenta la pastilla
N cambios. - Guardar, uno detrás de otro. Cada wired se guarda exactamente igual que si lo hicieras desde su propia ventana, esperando la respuesta del anterior antes de mandar el siguiente. Al terminar, el editor recarga solo y las líneas de los wireds guardados se quedan resaltadas dos segundos.
Si además hay bloques nuevos, wireds que recoger o wireds que mover, entre el paso 2 y el 3 se cuela la vista previa con el coste, que hay que confirmar; al confirmarla, la construcción se hace pieza a pieza (con el progreso a la vista) antes de que empiece el paso 3: está contada en Crear, borrar y mover.
El editor
Sección titulada «El editor»Pon el cursor de teclado sobre un #id o una etiqueta y el furni correspondiente se ilumina en la
sala —el mismo brillo que usa el selector de furnis— mientras el cursor siga ahí; en cuanto lo
mueves a otra parte, o cierras la ventana, se apaga. Es la forma rápida de saber de qué mueble habla
una referencia sin salir del texto. Y con el cursor en la cabecera de una stack (x, y) se ilumina la pila
entera: todos los bloques y furnis con #id que hay dentro. El tooltip del ratón sobre ese mismo #id o etiqueta te dice
el classname, la casilla, la z y el #id del bloque que nombra (o nuevo (se comprará) si el bloque
aún no tiene #id).
Autocompletado
Sección titulada «Autocompletado»- Dentro de una lista
[ … ]ofrece las etiquetas y los#iddel documento. - En el cuerpo de una pila (fuera de un bloque) ofrece
furni etiqueta "classname".
El panel de problemas y resultados
Sección titulada «El panel de problemas y resultados»Aparece solo cuando hay algo que decir, y se pliega pulsando su cabecera. Cada fila salta a su línea en el editor.
| Icono | Es |
|---|---|
| ⚠ | Un error: bloquea Aplicar hasta que lo arregles |
| ℹ | Un aviso: no bloquea nada |
| … | Un aviso pendiente: tampoco bloquea, pero solo se resuelve al aplicar (ver más abajo) |
| ✓ | El servidor guardó (o recogió) ese wired |
| ✗ | El servidor rechazó ese wired, con su motivo |
Los avisos ℹ que verás:
| Aviso | Es |
|---|---|
nuevo wired familia.nombre en (x, y) |
Un bloque sin #id: se va a comprar y colocar |
#N (familia.nombre) se recogerá al inventario |
Un #id de la sala que ya no está en el texto |
↔ #N (x1, y1) → (x2, y2) |
Un #id bajo una stack distinta de la que trae de la sala: se va a mover ahí |
el editor no conoce el wired #N (i_type 'X'): se deja sin tocar |
Una caja que el esquema no sabe describir. No se borra |
Y uno con icono … en vez de ℹ, porque no se resuelve al compilar sino al aplicar:
| Aviso | Es |
|---|---|
'campo': se resolverá al crear 'a' |
Ese campo referencia por nombre una variable que declara otra caja variable.* nueva de este mismo documento. Se guarda vacío hasta que esa caja se cree; en cuanto tiene su #id real, el editor lo rellena solo y guarda este bloque. Si la caja que declara 'a' no llega a crearse, este bloque no se guarda y sale no se guardó: la variable 'a' no llegó a crearse — ver Crear, borrar y mover |
'furnis': se resolverá al crear 'tile1' |
Ese campo de furnis referencia por etiqueta un furni o un wired nuevo de este mismo documento. Se guarda vacío hasta que se crea; en cuanto tiene su #id real, el editor lo rellena solo y guarda este bloque. Si el bloque que declara 'tile1' no llega a crearse, este bloque no se guarda y sale no se guardó: 'tile1' no llegó a crearse — ver Furnis normales |
Los errores también se subrayan dentro del editor, en su sitio exacto.
La barra de estado
Sección titulada «La barra de estado»- Lín / Col: dónde está el cursor. Es lo que usas para encontrar la línea que te dice un error.
- N wireds: cuántos bloques tiene el documento tal y como está escrito ahora (no cuántos hay en la sala).
Vista previa: +N −N: solo mientras la vista previa está abierta.- El modo:
Listo,Cargando…,Aplicando…,Solo lectura (sin derechos de wired), o el motivo por el que el editor está apagado.
| Atajo | Hace |
|---|---|
Ctrl + S |
Aplicar |
Ctrl + R |
Recargar |
F5 |
Recargar |
Ctrl + / |
Comentar / descomentar la selección |
Escape |
Cancelar la vista previa (mientras está abierta y el servidor no ha empezado) |
Tab |
Indentar (dentro del editor no cambia de campo) |
Ctrl + Z / Ctrl + Y |
Deshacer / rehacer |
Ctrl+S, Ctrl+R y F5 están capturados a propósito: dentro del editor no guardan la página ni
recargan el cliente.
Los bloques stack se pueden plegar desde el margen izquierdo, junto al número de línea. Ahí
mismo, los bloques sin #id llevan un + verde.
Solo lectura
Sección titulada «Solo lectura»Hay tres motivos por los que no vas a poder escribir:
- Sin permiso de lectura: la ventana se abre vacía y la barra de estado dice No permission to read the wireds of this room. No es un fallo: el servidor contesta a propósito en vez de dejar el editor cargando para siempre.
- Sin derechos de wired: el documento se ve entero, pero el editor está bloqueado y Aplicar
apagado (
Solo lectura (sin derechos de wired)). - Modo Ver: el que hayas elegido tú, con derechos de sobra — ver Ver y Editar. Pasa a Editar con el botón de la barra.
También queda bloqueado mientras carga, mientras aplica y mientras la vista previa está abierta, para que el texto no cambie debajo.
Los errores, uno a uno
Sección titulada «Los errores, uno a uno»De escritura (sintaxis)
Sección titulada «De escritura (sintaxis)»Con un error de estos no se compila nada más: se arreglan primero, porque hasta que el texto no se lee entero no se puede decir nada sensato sobre qué wireds faltan o sobran — y menos aún comprar o recoger nada.
| Mensaje | Qué pasó |
|---|---|
Cadena sin cerrar |
Falta la comilla de cierre. Un salto de línea corta la cadena |
Carácter inesperado 'X' |
Un símbolo que el lenguaje no usa (acentos, ;, :, !…). Las mayúsculas se leen como identificador: valen en una etiqueta, y en cualquier otro sitio darán campo desconocido o valor de enumerado desconocido |
Se esperaba 'stack' |
Fuera de una pila solo puede haber comentarios y stack |
Se esperaba '(' / ')' / la coordenada X / la coordenada Y |
La cabecera de la pila mal escrita; se escribe stack (3, 1) { |
Se esperaba '{' |
La llave de apertura va en la misma línea que la cabecera |
la cabecera es familia.nombre [#id] {; el classname ya no se escribe |
Una cadena entre comillas detrás de familia.nombre (la sintaxis antigua). Quítala: el furni que se compra lo dice ya familia.nombre |
Se esperaba '}' |
Falta una llave de cierre (muchas veces, la culpa es de una cadena sin cerrar más arriba). Un wired al que se le olvida su } de cierre cae en este mismo error: al ser de sintaxis, no se aplica nada |
Se esperaba la familia del wired / familia desconocida 'X' |
Las familias son trigger, effect, condition, selector, extra, variable |
Se esperaba '.' / Se esperaba el nombre del wired |
La cabecera es familia.nombre, con el punto pegado |
Se esperaba el nombre de un campo / Se esperaba '=' |
Un campo es nombre = valor |
Se esperaba un valor |
Después del = no hay nada que el lenguaje reconozca |
Se esperaba ']' |
Falta el corchete de cierre de una lista |
Se esperaba ',' |
Falta la coma de la cabecera de la pila |
Se esperaba ',' o un salto de línea entre campos |
Dos campos pegados en la misma línea sin coma |
Del bloque
Sección titulada «Del bloque»| Mensaje | Qué pasó |
|---|---|
wired desconocido 'familia.nombre' |
Ese nombre no existe. Búscalo en la referencia |
el wired #N no está en la sala (recarga) |
El #id no es de esta sala, o el furni ya no está. Recargar |
el wired #N no es un 'familia.nombre' (su i_type es 'X') |
Le cambiaste la familia o el nombre al bloque de otro furni |
el wired #N aparece dos veces |
Dos bloques con el mismo #id. Copiaste y pegaste sin quitar el id |
De los campos
Sección titulada «De los campos»| Mensaje | Qué pasó |
|---|---|
campo desconocido 'X' en familia.nombre |
Ese wired no tiene ese campo. Los suyos están en su ficha de la referencia |
'campo': se esperaba … |
El valor no tiene la forma del tipo (un texto donde va un entero, etc.) |
'campo': N está fuera de rango (min..max) |
El entero se sale de lo que admite ese campo |
'campo': valor de enumerado desconocido 'X' |
Ese nombre no está en el enumerado del campo |
'campo': N está fuera de rango (no es ninguno de: …) |
Un entero suelto que el enumerado no reconoce |
'campo': texto demasiado largo (N > M) |
La cadena pasa del máximo de ese campo |
'campo': el furni #N no está en la sala |
Referenciaste un furni que no existe aquí |
'campo': demasiados furnis (N, máximo M) |
La lista pasa del tope de furnis marcados a mano de tu sesión (30, o 50 con Super Wired). El servidor los recortaría en silencio, así que el editor lo trata como error — ver Límites |
'campo': fuente no disponible para este wired (familia.nombre) |
Ese wired no ofrece esa fuente. Las que admite están en su ficha |
'campo': variable desconocida 'X' |
No hay ninguna caja de variable con ese nombre ni con esa id |
'campo': nombre de variable ambiguo 'X' (ninguna es de furni): usa la id (…) |
Dos variables se llaman igual y el ámbito del wired no decide entre ellas. Si la nota dice “ninguna es de furni/usuario”, el problema es el ámbito: corrige scope/source o usa el selector del portador correcto. Solo si son dos cajas tuyas con el mismo nombre, escribe la id que ofrece el mensaje (mejor: renómbralas) |
Del servidor (filas ✗ del panel)
Sección titulada «Del servidor (filas ✗ del panel)»Después de compilar, el servidor todavía puede decir que no: es el mismo validador que usa la ventana normal, y comprueba permisos, topes de la sala, longitud de los textos y las transiciones de las variables permanentes. Su mensaje sale tal cual en la fila del wired.
Los que no vienen del validador:
| Mensaje | Qué pasó |
|---|---|
sin respuesta |
Ese wired no contestó a tiempo. No se sabe si se guardó o no |
cancelado: el servidor no responde |
Dos silencios seguidos cortan la tanda. Los que quedaban no se enviaron |
cancelado: cambio de sala |
Saliste de la sala en mitad de la tanda |
kind desconocido N |
Ese wired no encaja en ninguna de las seis familias de guardado (no debería pasar) |
Los mensajes propios de las compras, las recogidas y los movimientos están en Crear, borrar y mover.