¡Hola!
Recientemente he estado investigando una situación molesta mientras editaba clases o rutinas ObjectScript en VSCode.
Lo que me estaba pasando era que, como yo estaba escribiendo en las líneas de código en mi clase (por ejemplo: la adición de un nuevo método; el cambio de la firma de la clase; o de un bloque de código), esto hacía que rápidamente la sintaxis fuera revisada, reformateada y compilada - e inevitablemente, (ya que estaría a la mitad de mi escritura), esto generaba errores de compilación.
Sabiendo que estaba a medio camino de añadir código, podía simplemente descartar este mensaje, sin embargo, esto empezó a volverse molesto, y me condicionó a ignorar posibles errores (lo cual no es bueno).
Aún peor, sin embargo, es que el proceso de compilación también reformateaba el documento y a veces rompía lo que antes eran líneas de código bien formateadas (que aparecían debajo de la línea que estaba escribiendo) - lo que me obligaba a ir a esa zona del documento y arreglarlas de nuevo.
¿Qué es lo que ocurre?
Pues hay dos configuraciones en juego:
- La configuración de auto-guardado de VSCode (files.autosave) que dicta si guardar automáticamente un documento que ha sido cambiado, y si es así, cuánto tiempo esperar antes de guardar (files.autoSaveDelay)
- CompileOnSave de la extensión ObjectScript (objectscript.compileOnSave), que determina si después de guardar el documento, este también se importa y compila en el espacio de nombres conectado a IRIS.
Como tenía el autosave o autoguardado activado, y con un pequeño retardo de espera junto con compileOnSave significaba que el código parcialmente editado se seguía compilando, generando los errores a los que me refiero, y como se ha mencionado, a veces reformateando bloques de código buenos y preexistentes.
En mi caso, me he decidido por lo siguiente:
- Autoguardar (files.autosave) desactivado (se ignora autosaveDelay), y...
- CompileOnSave (objectscript.compileOnSave) activado.
Ahora, cuando estoy satisfecho con mis ediciones (¡y cuando yo quiero!), pulso Ctrl-S, para guardar, importar y compilar mi clase, y estoy atento a ese mensaje emergente que ahora tiene verdadero significado y propósito.
Podéis elegir una combinación diferente, (por ejemplo, seguir adelante y autoguardar después de 5 minutos más o menos, aceptando que el código puede no compilarse completamente), sin embargo, he encontrado que la combinación anterior funciona para mí, y espero que - si vosotros estáis experimentando la misma molestia, este artículo pueda ayudaros a encontrar vuestra configuración óptima.
¡Gracias a @Patrick Sulin, y @Raj Singh por indicarme cómo llegar a estos ajustes!
Traducción del post de Steve Pisani