Skip to content

Commit aa3f8e0

Browse files
committed
Update RSyntaxTextArea to version 2.5.0
This is the newest version available on Maven Central. We should be less incompatible with Micro-Manager. Pointed out by Ben Booth. Signed-off-by: Johannes Schindelin <[email protected]>
1 parent 631c24a commit aa3f8e0

File tree

4 files changed

+33
-27
lines changed

4 files changed

+33
-27
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
<dependency>
9191
<groupId>com.fifesoft</groupId>
9292
<artifactId>rsyntaxtextarea</artifactId>
93-
<version>2.0.4.1</version>
93+
<version>2.5.0</version>
9494
</dependency>
9595
<dependency>
9696
<groupId>com.miglayout</groupId>

src/main/java/net/imagej/ui/swing/script/ImageJMacroTokenMaker.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@
3636
import javax.swing.text.Segment;
3737

3838
import org.fife.ui.rsyntaxtextarea.AbstractJFlexCTokenMaker;
39-
import org.fife.ui.rsyntaxtextarea.DefaultToken;
4039
import org.fife.ui.rsyntaxtextarea.Token;
40+
import org.fife.ui.rsyntaxtextarea.TokenImpl;
4141

4242
/**
4343
* TODO
@@ -2471,7 +2471,7 @@ public Token getTokenList(Segment text, int initialTokenType, int startOffset) {
24712471
return yylex();
24722472
} catch (IOException ioe) {
24732473
ioe.printStackTrace();
2474-
return new DefaultToken();
2474+
return new TokenImpl();
24752475
}
24762476

24772477
}

src/main/java/net/imagej/ui/swing/script/MatlabTokenMaker.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@
3636
import javax.swing.text.Segment;
3737

3838
import org.fife.ui.rsyntaxtextarea.AbstractJFlexTokenMaker;
39-
import org.fife.ui.rsyntaxtextarea.DefaultToken;
4039
import org.fife.ui.rsyntaxtextarea.Token;
40+
import org.fife.ui.rsyntaxtextarea.TokenImpl;
4141

4242
/**
4343
* Scanner for the Matlab programming language.<p>
@@ -570,7 +570,7 @@ public Token getTokenList(Segment text, int initialTokenType, int startOffset) {
570570
return yylex();
571571
} catch (IOException ioe) {
572572
ioe.printStackTrace();
573-
return new DefaultToken();
573+
return new TokenImpl();
574574
}
575575

576576
}

src/main/java/net/imagej/ui/swing/script/TokenFunctions.java

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -57,36 +57,41 @@ public TokenFunctions(RSyntaxTextArea textArea) {
5757
}
5858

5959
public static boolean tokenEquals(Token token, char[] text) {
60-
if (token.type != token.RESERVED_WORD ||
61-
token.textCount != text.length)
60+
if (token.getType() != token.RESERVED_WORD ||
61+
token.length() != text.length)
6262
return false;
63+
final char[] tokenText = token.getTextArray();
64+
if (tokenText == null) return false;
65+
final int textOffset = token.getTextOffset();
6366
for (int i = 0; i < text.length; i++)
64-
if (token.text[token.textOffset + i] != text[i])
67+
if (tokenText[textOffset + i] != text[i])
6568
return false;
6669
return true;
6770
}
6871

6972
public static boolean isIdentifier(Token token) {
70-
if (token.type != token.IDENTIFIER)
73+
if (token.getType() != token.IDENTIFIER)
7174
return false;
72-
if (!Character.isJavaIdentifierStart(token.text[token.textOffset]))
75+
final char[] tokenText = token.getTextArray();
76+
final int textOffset = token.getTextOffset();
77+
if (tokenText == null || !Character.isJavaIdentifierStart(tokenText[textOffset]))
7378
return false;
74-
for (int i = 1; i < token.textCount; i++)
75-
if (!Character.isJavaIdentifierPart(token.text[token.textOffset + i]))
79+
for (int i = 1; i < tokenText.length; i++)
80+
if (!Character.isJavaIdentifierPart(tokenText[textOffset + i]))
7681
return false;
7782
return true;
7883
}
7984

8085
public static String getText(Token token) {
81-
if (token.text == null)
86+
final char[] tokenText = token.getTextArray();
87+
if (tokenText == null)
8288
return "";
83-
return new String(token.text,
84-
token.textOffset, token.textCount);
89+
return new String(tokenText, token.getTextOffset(), token.length());
8590
}
8691

8792
public void replaceToken(Token token, String text) {
88-
textArea.replaceRange(text, token.textOffset,
89-
token.textOffset + token.textCount);
93+
textArea.replaceRange(text, token.getOffset(),
94+
token.getEndOffset());
9095
}
9196

9297
class TokenIterator implements Iterator<Token> {
@@ -130,8 +135,9 @@ public Iterator<Token> iterator() {
130135
}
131136

132137
public static boolean isDot(Token token) {
133-
return token.type == token.IDENTIFIER && token.textCount == 1
134-
&& token.text[token.textOffset] == '.';
138+
if (token.getType() != token.IDENTIFIER) return false;
139+
final char[] tokenText = token.getTextArray();
140+
return tokenText != null && token.length() == 1 && tokenText[token.getTextOffset()] == '.';
135141
}
136142

137143
/* The following methods are Java-specific */
@@ -192,7 +198,7 @@ public String toString() {
192198

193199
Token skipNonCode(TokenIterator iter, Token current) {
194200
for (;;) {
195-
switch (current.type) {
201+
switch (current.getType()) {
196202
case Token.COMMENT_DOCUMENTATION:
197203
case Token.COMMENT_EOL:
198204
case Token.COMMENT_MULTILINE:
@@ -210,9 +216,9 @@ Token skipNonCode(TokenIterator iter, Token current) {
210216
int skipToEOL(TokenIterator iter, Token current) {
211217
int end = textArea.getDocument().getLength();
212218
for (;;) {
213-
if (current.type == current.NULL || !iter.hasNext())
219+
if (current.getType() == current.NULL || !iter.hasNext())
214220
return end;
215-
end = current.offset + current.textCount;
221+
end = current.getEndOffset();
216222
current = iter.next();
217223
}
218224
}
@@ -224,22 +230,22 @@ public List<Import> getImports() {
224230
TokenIterator iter = new TokenIterator();
225231
while (iter.hasNext()) {
226232
Token token = iter.next();
227-
int offset = token.offset;
233+
int offset = token.getOffset();
228234
token = skipNonCode(iter, token);
229235
if (tokenEquals(token, importChars)) {
230236
do {
231237
if (!iter.hasNext())
232238
return result;
233239
token = iter.next();
234240
} while (!isIdentifier(token));
235-
int start = token.offset, end = start;
241+
int start = token.getOffset(), end = start;
236242
do {
237243
if (!iter.hasNext())
238244
return result;
239245
token = iter.next();
240246
if (isDot(token) && iter.hasNext())
241247
token = iter.next();
242-
end = token.offset + token.textCount;
248+
end = token.getEndOffset();
243249
} while (isIdentifier(token));
244250
String identifier = getText(start, end);
245251
if (identifier.endsWith(";"))
@@ -302,7 +308,7 @@ public void addImport(String className) {
302308
boolean insertLF = false;
303309
while (iter.hasNext()) {
304310
Token token = iter.next();
305-
if (token.type != token.RESERVED_WORD) {
311+
if (token.getType() != token.RESERVED_WORD) {
306312
insertLF = false;
307313
continue;
308314
}
@@ -311,7 +317,7 @@ public void addImport(String className) {
311317
insertLF = true;
312318
}
313319
else {
314-
offset = token.offset;
320+
offset = token.getOffset();
315321
break;
316322
}
317323
}

0 commit comments

Comments
 (0)