From 9d0d73092a5ce2331e9ee510ae418efb2cfba6c5 Mon Sep 17 00:00:00 2001 From: Dara Silvera <dara.silvera@fing.edu.uy> Date: Tue, 22 Nov 2022 01:29:10 -0300 Subject: [PATCH] Se soluciono problema del parser del code mirror --- .../src/app/shared/services/ghci.service.ts | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/Frontend Angular 4/src/app/shared/services/ghci.service.ts b/Frontend Angular 4/src/app/shared/services/ghci.service.ts index ea3a9d9..89665a7 100755 --- a/Frontend Angular 4/src/app/shared/services/ghci.service.ts +++ b/Frontend Angular 4/src/app/shared/services/ghci.service.ts @@ -162,6 +162,7 @@ export class GHCIService { hayError(text: string) { // Si se está esperando por la descripción del error + if (this.waitingForError) { // WA para manejar el tema de las traducciones asincronicas. Dado que no, // hay una buena forma de manejar las traducciones asincronicas con los @@ -172,12 +173,15 @@ export class GHCIService { const language = this.authService.getLanguage(); const traduccionColumna = language == "es" ? "columna" : "column"; const traduccionEnColumna = language == "es" ? "En columna" : "In column"; - var columna = this.errorText .split(`${traduccionColumna}:`)[1] .split("}")[0]; + const parsedText = JSON.parse(text).resultado; - var errorTextToShow = JSON.parse(text).resultado.split("OUT")[1].trim(); + if (!parsedText) { + return; + } + var errorTextToShow = parsedText.split("OUT")[1].trim(); var errorFinalText = traduccionEnColumna + columna + ": " + errorTextToShow; @@ -213,9 +217,9 @@ export class GHCIService { "breakpoints", makeMarker() ); - this.waitingForError = false; this.lastErrorLineNumber = -1; } + this.waitingForError = false; } else { try { const message: { tipo: string; resultado: string } = JSON.parse(text); @@ -246,12 +250,17 @@ export class GHCIService { this.translateService .get("i18n.codemirror.command.line") .subscribe((line) => { - const lineNumber = - Number(fileNameAndMore.split(` ${line}: `)[1].split(" ")[0]) - - 1; + const lineNumberNotParsed = fileNameAndMore.split( + ` ${line}: ` + )[1]; + + if (lineNumberNotParsed) { + const lineNumber = + Number(lineNumberNotParsed.split(" ")[0]) - 1; - this.lastErrorLineNumber = lineNumber; - this.lastErrorFile = fileName; + this.lastErrorLineNumber = lineNumber; + this.lastErrorFile = fileName; + } this.errorText = fileNameAndMore.trim(); }); }); -- GitLab