diff --git a/server/src/diagnostics.ts b/server/src/diagnostics.ts index 0f177ac..387979c 100644 --- a/server/src/diagnostics.ts +++ b/server/src/diagnostics.ts @@ -96,11 +96,22 @@ export function cookCompilationDiagnostics(processedText: string, pwd: String){ tempSplit.forEach(function(line:String, index: number){ if(line.includes(`${pwd}`)){ let innerSplit = line.split(":") + + // Windows paths have a colon after the drive letter + // Shifts the error colon by one in the array + let splitIndex + if(process.platform === 'win32') { + splitIndex = 2 + } + else { + splitIndex = 1 + } + // Handling line number based on current Behaviour - since preprocessing is done if(preProcessingClass.defaultBehaviourEnable){ - errorNodeLine[errorNodeCount] = +innerSplit[1] - pStandards.reduceLineDefaultBehaviour + errorNodeLine[errorNodeCount] = +innerSplit[splitIndex] - pStandards.reduceLineDefaultBehaviour } else if(preProcessingClass.methodBehaviourEnable){ - errorNodeLine[errorNodeCount] = +innerSplit[1] - pStandards.reduceLineMethodBehaviour + errorNodeLine[errorNodeCount] = +innerSplit[splitIndex] - pStandards.reduceLineMethodBehaviour } let localIndex = index + 1 errorNodeReasons[errorNodeCount] = line.split("error:")[1] diff --git a/server/src/parser.ts b/server/src/parser.ts index 8e39d35..6380a70 100644 --- a/server/src/parser.ts +++ b/server/src/parser.ts @@ -53,7 +53,13 @@ export function parseAST(processedText: string, textDocument: TextDocument) { // Wrote methods to handle Error in the Error Stream // diagnostics.cookDiagnosticsReport(processedText) - diagnostics.cookCompilationDiagnostics(processedText, `${__dirname}/compile/${pStandards.defaultClassName}.java`) + let pwd + if (process.platform === 'win32') { + pwd =`${__dirname}\\compile\\${pStandards.defaultClassName}.java` + }else { + pwd = `${__dirname}/compile/${pStandards.defaultClassName}.java` + } + diagnostics.cookCompilationDiagnostics(processedText, pwd) log.writeLog("Parse Tree construction Successfully")