Ir al contenido

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.

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.

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.

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.

Es un botón en tres pasos:

  1. Compilar. Si hay un solo error, no se envía nada. Ni un wired. Los errores salen en el panel con su línea.
  2. 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.
  3. 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.

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).

  • Dentro de una lista [ … ] ofrece las etiquetas y los #id del documento.
  • En el cuerpo de una pila (fuera de un bloque) ofrece furni etiqueta "classname".

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.

  • 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.

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.

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
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
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)

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.