mirror of
https://github.com/processing/processing4.git
synced 2026-02-14 02:45:36 +01:00
fixed highlighting issues with last line number
This commit is contained in:
@@ -728,7 +728,8 @@ public class ErrorCheckerService implements Runnable{
|
||||
.getElement(javaLineNumber);
|
||||
if (lineElement == null) {
|
||||
log("calcPDEOffsetsForProbList(): Couldn't fetch javalinenum "
|
||||
+ javaLineNumber);
|
||||
+ javaLineNumber + "\nProblem: " + p);
|
||||
p.setPDEOffsets(-1,-1);
|
||||
continue;
|
||||
}
|
||||
String javaLine = javaSource
|
||||
@@ -739,7 +740,8 @@ public class ErrorCheckerService implements Runnable{
|
||||
.getDefaultRootElement().getElement(p.getLineNumber());
|
||||
if (pdeLineElement == null) {
|
||||
log("calcPDEOffsetsForProbList(): Couldn't fetch pdelinenum "
|
||||
+ javaLineNumber);
|
||||
+ javaLineNumber + "\nProblem: " + p);
|
||||
p.setPDEOffsets(-1,-1);
|
||||
continue;
|
||||
}
|
||||
String pdeLine = pdeTabs[p.getTabIndex()]
|
||||
@@ -1442,17 +1444,32 @@ public class ErrorCheckerService implements Runnable{
|
||||
if (p == null)
|
||||
return;
|
||||
try {
|
||||
astGenerator.highlightPDECode(p.getTabIndex(),
|
||||
p.getLineNumber(),
|
||||
p.getPDELineStartOffset(),
|
||||
(p.getPDELineStopOffset()
|
||||
- p.getPDELineStartOffset() + 1));
|
||||
editor.getTextArea().scrollTo(p.getLineNumber(), 0);
|
||||
if(p.getPDELineStartOffset() == -1 || p.getPDELineStopOffset() == -1){
|
||||
// bad offsets, don't highlight, just scroll.
|
||||
editor.toFront();
|
||||
editor.getSketch().setCurrentCode(p.getTabIndex());
|
||||
}
|
||||
else {
|
||||
astGenerator.highlightPDECode(p.getTabIndex(),
|
||||
p.getLineNumber(),
|
||||
p.getPDELineStartOffset(),
|
||||
(p.getPDELineStopOffset()
|
||||
- p.getPDELineStartOffset() + 1));
|
||||
}
|
||||
|
||||
// scroll, but within boundaries
|
||||
// It's also a bit silly that if parameters to scrollTo() are out of range,
|
||||
// a BadLocation Exception is thrown internally and caught in JTextArea AND
|
||||
// even the stack trace gets printed! W/o letting me catch it later! SMH
|
||||
if (p.getLineNumber() < Base.countLines(editor.textArea().getDocument()
|
||||
.getText(0, editor.textArea().getDocument().getLength()))
|
||||
&& p.getLineNumber() >= 0) {
|
||||
editor.getTextArea().scrollTo(p.getLineNumber(), 0);
|
||||
}
|
||||
editor.repaint();
|
||||
} catch (Exception e) {
|
||||
System.err.println(e
|
||||
+ " : Error while selecting text in scrollToErrorLine()");
|
||||
e.printStackTrace();
|
||||
logE(e
|
||||
+ " : Error while selecting text in scrollToErrorLine(), for problem: " + p);
|
||||
}
|
||||
// log("---");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user