From 4d7541adf8985c599719d96bb1a62f2c6663f554 Mon Sep 17 00:00:00 2001 From: Manindra Moharana Date: Sat, 12 Jul 2014 01:22:40 +0530 Subject: [PATCH] fix error underlining --- .../mode/experimental/ErrorCheckerService.java | 9 +++++++-- pdex/src/processing/mode/experimental/Problem.java | 7 +++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/pdex/src/processing/mode/experimental/ErrorCheckerService.java b/pdex/src/processing/mode/experimental/ErrorCheckerService.java index a142718d9..79691cadf 100644 --- a/pdex/src/processing/mode/experimental/ErrorCheckerService.java +++ b/pdex/src/processing/mode/experimental/ErrorCheckerService.java @@ -703,7 +703,12 @@ public class ErrorCheckerService implements Runnable{ // for (String j : problem.getArguments()) { // log("arg " + j); // } - int a[] = calculateTabIndexAndLineNumber(problem.getSourceLineNumber()); + + // added a -1 to line number because in compile check code + // an extra package statement is added, so all line numbers + // are increased by 1 + int a[] = calculateTabIndexAndLineNumber(problem.getSourceLineNumber() - 1); + Problem p = new Problem(problem, a[0], a[1]); if (problem.isError()) { p.setType(Problem.ERROR); @@ -787,7 +792,7 @@ public class ErrorCheckerService implements Runnable{ .getIProblem().getSourceEnd() - pkgNameOffset; log(p.toString()); log("IProblem Start " + prbStart + ", End " + prbEnd); - int javaLineNumber = p.getIProblem().getSourceLineNumber() - 1; + int javaLineNumber = p.getSourceLineNumber() - 1; Element lineElement = javaSource.getDefaultRootElement() .getElement(javaLineNumber); if (lineElement == null) { diff --git a/pdex/src/processing/mode/experimental/Problem.java b/pdex/src/processing/mode/experimental/Problem.java index d46aa254f..b55d77b4e 100644 --- a/pdex/src/processing/mode/experimental/Problem.java +++ b/pdex/src/processing/mode/experimental/Problem.java @@ -129,6 +129,13 @@ public class Problem { public int getLineNumber(){ return lineNumber; } + + public int getSourceLineNumber(){ + // added a -1 to line number because in compile check code + // an extra package statement is added, so all line numbers + // are increased by 1 + return iProblem.getSourceLineNumber() - 1; + } public void setType(int ProblemType){ if(ProblemType == ERROR)