FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Merge pull request #4113 from JakubValtar/various-fixes · codetorex/processing@0a5cb1d · GitHub

Repository navigation

Commit 0a5cb1d

Browse files
committed
Merge pull request processing#4113 from JakubValtar/various-fixes
Various editor fixes
2 parents 198f7ba + f7e5aba commit 0a5cb1d

4 files changed

Lines changed: 53 additions & 55 deletions

File tree

‎app/src/processing/app/syntax/Brackets.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public void invalidate() {
1616
}
1717

1818
public int findMatchingBracket(final String text, final int pos) {
19-
if (pos < 0 || pos > text.length())
19+
if (pos < 0 || pos >= text.length())
2020
return -1;
2121

2222
final char alpha = text.charAt(pos);
@@ -51,7 +51,7 @@ public int findMatchingBracket(final String text, final int pos) {
5151
return -1;
5252
}
5353

54-
if (offsets == null)
54+
if (offsets == null || offsets.get(offsets.size()-1) >= text.length())
5555
parse(text);
5656

5757
// find this bracket

‎app/src/processing/app/syntax/JEditTextArea.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -755,6 +755,9 @@ public int xToOffset(int line, int x) {
755755
// ", i = " + i +
756756
// ", length = " + length +
757757
// ", array len = " + segmentArray.length);
758+
if (segmentOffset + offset + i >= segmentArray.length) {
759+
return segmentArray.length - segmentOffset - 1;
760+
}
758761
char c = segmentArray[segmentOffset + offset + i];
759762
int charWidth;
760763
if (c == '\t') {

‎java/src/processing/mode/java/MarkerColumn.java‎

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -155,15 +155,10 @@ protected void done() {
155155
/** Find out which error/warning the user has clicked and scroll to it */
156156
private void scrollToMarkerAt(final int y) {
157157
try {
158-
new SwingWorker() {
159-
protected Object doInBackground() throws Exception {
160-
LineMarker m = findClosestMarker(y);
161-
if (m != null) {
162-
editor.getErrorChecker().scrollToErrorLine(m.getProblem());
163-
}
164-
return null;
165-
}
166-
}.execute();
158+
LineMarker m = findClosestMarker(y);
159+
if (m != null) {
160+
editor.getErrorChecker().scrollToErrorLine(m.getProblem());
161+
}
167162
} catch (Exception ex) {
168163
ex.printStackTrace();
169164
}
@@ -181,21 +176,16 @@ public JToolTip createToolTip() {
181176
/** Show tooltip on hover. */
182177
private void showMarkerHover(final int y) {
183178
try {
184-
new SwingWorker() {
185-
protected Object doInBackground() throws Exception {
186-
LineMarker m = findClosestMarker(y);
187-
if (m != null) {
188-
Problem p = m.getProblem();
179+
LineMarker m = findClosestMarker(y);
180+
if (m != null) {
181+
Problem p = m.getProblem();
189182
// String kind = p.isError() ?
190183
// Language.text("editor.status.error") :
191184
// Language.text("editor.status.warning");
192185
// setToolTipText(kind + ": " + p.getMessage());
193-
editor.statusToolTip(MarkerColumn.this, p.getMessage(), p.isError());
194-
setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
195-
}
196-
return null;
197-
}
198-
}.execute();
186+
editor.statusToolTip(MarkerColumn.this, p.getMessage(), p.isError());
187+
setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
188+
}
199189
} catch (Exception ex) {
200190
ex.printStackTrace();
201191
}

‎java/src/processing/mode/java/pdex/JavaTextAreaPainter.java‎

Lines changed: 38 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.awt.Color;
2727
import java.awt.Cursor;
2828
import java.awt.Font;
29+
import java.awt.FontMetrics;
2930
import java.awt.Graphics;
3031
import java.awt.Graphics2D;
3132
import java.awt.Point;
@@ -114,39 +115,6 @@ public void mousePressed(MouseEvent event) {
114115
}
115116
});
116117

117-
addMouseMotionListener(new MouseMotionAdapter() {
118-
@Override
119-
public void mouseMoved(final MouseEvent evt) {
120-
int line = textArea.yToLine(evt.getY());
121-
int x = evt.getX();
122-
123-
LineMarker marker = getJavaEditor().findError(line);
124-
if (marker != null) {
125-
Problem problem = marker.getProblem();
126-
127-
int lineOffset = textArea.getLineStartOffset(problem.getLineNumber());
128-
129-
int lineStart = textArea.getLineStartOffset(line);
130-
int lineEnd = textArea.getLineStopOffset(line);
131-
132-
int errorStart = lineOffset + problem.getPDELineStartOffset();
133-
int errorEnd = lineOffset + problem.getPDELineStopOffset() + 1;
134-
135-
int startOffset = Math.max(errorStart, lineStart) - lineStart;
136-
int stopOffset = Math.min(errorEnd, lineEnd) - lineStart;
137-
138-
if (x >= getJavaTextArea().offsetToX(line, startOffset) &&
139-
x <= getJavaTextArea().offsetToX(line, stopOffset)) {
140-
//setToolTipText(problem.getMessage());
141-
getJavaEditor().statusToolTip(JavaTextAreaPainter.this,
142-
problem.getMessage(),
143-
problem.isError());
144-
evt.consume();
145-
}
146-
}
147-
}
148-
});
149-
150118
// TweakMode code
151119
tweakMode = false;
152120
cursorType = Cursor.DEFAULT_CURSOR;
@@ -476,6 +444,42 @@ public void setMode(Mode mode) {
476444
}
477445

478446

447+
@Override
448+
public String getToolTipText(MouseEvent evt) {
449+
int line = evt.getY() / getFontMetrics().getHeight() + textArea.getFirstLine();
450+
if (line >= 0 || line < textArea.getLineCount()) {
451+
LineMarker marker = getJavaEditor().findError(line);
452+
if (marker != null) {
453+
Problem problem = marker.getProblem();
454+
455+
int lineOffset = textArea.getLineStartOffset(problem.getLineNumber());
456+
457+
int lineStart = textArea.getLineStartOffset(line);
458+
int lineEnd = textArea.getLineStopOffset(line);
459+
460+
int errorStart = lineOffset + problem.getPDELineStartOffset();
461+
int errorEnd = lineOffset + problem.getPDELineStopOffset() + 1;
462+
463+
int startOffset = Math.max(errorStart, lineStart) - lineStart;
464+
int stopOffset = Math.min(errorEnd, lineEnd) - lineStart;
465+
466+
int x = evt.getX();
467+
468+
if (x >= getJavaTextArea().offsetToX(line, startOffset) &&
469+
x <= getJavaTextArea().offsetToX(line, stopOffset)) {
470+
getJavaEditor().statusToolTip(JavaTextAreaPainter.this,
471+
problem.getMessage(),
472+
problem.isError());
473+
return super.getToolTipText(evt);
474+
}
475+
}
476+
}
477+
setToolTipText(null);
478+
return super.getToolTipText(evt);
479+
}
480+
481+
482+
/*
479483
@Override
480484
public String getToolTipText(MouseEvent event) {
481485
if (!getJavaEditor().hasJavaTabs()) {
@@ -564,6 +568,7 @@ public String getToolTipText(MouseEvent event) {
564568
// setToolTipText(null);
565569
return super.getToolTipText(event);
566570
}
571+
*/
567572

568573

569574
// TweakMode code

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL