-
Notifications
You must be signed in to change notification settings - Fork 0
10.FileEditor
El Editor de ficheros es una de las secciones más importantes y complejas de nuestro proyecto, se trata de un editor
de monaco (un proyecto de microsoft) modificado y con una extensión creada por nosotros que nos permita analizar,
interpretar, autocompletar, marcar y mostrar documentación.
En este ejemplo se ve como se puede abrir un fichero, como se ejecuta y se realizan distintas pruebas, entre ellas
mostrar errores (no hay en el código solo es un ejemplo del mensaje y la gravedad del posible error), añadir
un breakpoint, ejecutar un paso o ejecutar la simulación.
Como podemos observar la linea de ejecución en color azul verdoso corresponde a la etapa IF.
Como podemos ver en el ejemplo del inicio se puede autocompletar las instrucciones, para ello se han puesto una serie de ejemplos que nos añaden los registros y desplazamientos de ejemplo.
Para mostrar la documentación solo debemos pasar el ratón por encima de la palabra (instrucción) y se nos mostrará los datos de la instrucción (En ingles).
Todos estos ejemplos están en The DLX Instruction Set, BYU Edition.
Como hemos visto en el ejemplo el proyecto nos muestra errores simples, pero en caso de tener errores más complejos estos se verán reflejados una vez que sincronicemos nuestro código con el servidor y esté intérprete el fichero.
Estos errores se muestra en función de la gravedad, con un mensaje descriptivo.
export type TypeErrorInCode = {
line: number;
message: string;
severity: EnumSeverity;
}- Leer la sección
06.TheBreakpoints.md
Después de pedir una simulación, si todo va correctamente (canSimulate) nos permitirá ejecutar nuestro código, en caso
contrario errors nos reportará los distintos fallos que puede haber en nuestro código que impidan su ejecución.
export type TypeSimulationInitRequest = {
id: string;
filename: string;
date: string;
content: string;
breakpoints: TypeLine[];
registers: TypeRegisterToUpdate[];
memory: TypeMemoryToUpdate[];
};
export type TypeSimulationInitResponse = {
filename: string;
id: string;
date: string;
lines: number;
canSimulate: boolean;
errors: TypeErrorInCode[];
machineDirectives: TypeDirectiveData[];
machineInstructions: TypeInstructionsData[];
runner: TypeSimulationStep[];
};