@@ -57,36 +57,41 @@ public TokenFunctions(RSyntaxTextArea textArea) {
57
57
}
58
58
59
59
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 )
62
62
return false ;
63
+ final char [] tokenText = token .getTextArray ();
64
+ if (tokenText == null ) return false ;
65
+ final int textOffset = token .getTextOffset ();
63
66
for (int i = 0 ; i < text .length ; i ++)
64
- if (token . text [ token . textOffset + i ] != text [i ])
67
+ if (tokenText [ textOffset + i ] != text [i ])
65
68
return false ;
66
69
return true ;
67
70
}
68
71
69
72
public static boolean isIdentifier (Token token ) {
70
- if (token .type != token .IDENTIFIER )
73
+ if (token .getType () != token .IDENTIFIER )
71
74
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 ]))
73
78
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 ]))
76
81
return false ;
77
82
return true ;
78
83
}
79
84
80
85
public static String getText (Token token ) {
81
- if (token .text == null )
86
+ final char [] tokenText = token .getTextArray ();
87
+ if (tokenText == null )
82
88
return "" ;
83
- return new String (token .text ,
84
- token .textOffset , token .textCount );
89
+ return new String (tokenText , token .getTextOffset (), token .length ());
85
90
}
86
91
87
92
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 () );
90
95
}
91
96
92
97
class TokenIterator implements Iterator <Token > {
@@ -130,8 +135,9 @@ public Iterator<Token> iterator() {
130
135
}
131
136
132
137
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 ()] == '.' ;
135
141
}
136
142
137
143
/* The following methods are Java-specific */
@@ -192,7 +198,7 @@ public String toString() {
192
198
193
199
Token skipNonCode (TokenIterator iter , Token current ) {
194
200
for (;;) {
195
- switch (current .type ) {
201
+ switch (current .getType () ) {
196
202
case Token .COMMENT_DOCUMENTATION :
197
203
case Token .COMMENT_EOL :
198
204
case Token .COMMENT_MULTILINE :
@@ -210,9 +216,9 @@ Token skipNonCode(TokenIterator iter, Token current) {
210
216
int skipToEOL (TokenIterator iter , Token current ) {
211
217
int end = textArea .getDocument ().getLength ();
212
218
for (;;) {
213
- if (current .type == current .NULL || !iter .hasNext ())
219
+ if (current .getType () == current .NULL || !iter .hasNext ())
214
220
return end ;
215
- end = current .offset + current . textCount ;
221
+ end = current .getEndOffset () ;
216
222
current = iter .next ();
217
223
}
218
224
}
@@ -224,22 +230,22 @@ public List<Import> getImports() {
224
230
TokenIterator iter = new TokenIterator ();
225
231
while (iter .hasNext ()) {
226
232
Token token = iter .next ();
227
- int offset = token .offset ;
233
+ int offset = token .getOffset () ;
228
234
token = skipNonCode (iter , token );
229
235
if (tokenEquals (token , importChars )) {
230
236
do {
231
237
if (!iter .hasNext ())
232
238
return result ;
233
239
token = iter .next ();
234
240
} while (!isIdentifier (token ));
235
- int start = token .offset , end = start ;
241
+ int start = token .getOffset () , end = start ;
236
242
do {
237
243
if (!iter .hasNext ())
238
244
return result ;
239
245
token = iter .next ();
240
246
if (isDot (token ) && iter .hasNext ())
241
247
token = iter .next ();
242
- end = token .offset + token . textCount ;
248
+ end = token .getEndOffset () ;
243
249
} while (isIdentifier (token ));
244
250
String identifier = getText (start , end );
245
251
if (identifier .endsWith (";" ))
@@ -302,7 +308,7 @@ public void addImport(String className) {
302
308
boolean insertLF = false ;
303
309
while (iter .hasNext ()) {
304
310
Token token = iter .next ();
305
- if (token .type != token .RESERVED_WORD ) {
311
+ if (token .getType () != token .RESERVED_WORD ) {
306
312
insertLF = false ;
307
313
continue ;
308
314
}
@@ -311,7 +317,7 @@ public void addImport(String className) {
311
317
insertLF = true ;
312
318
}
313
319
else {
314
- offset = token .offset ;
320
+ offset = token .getOffset () ;
315
321
break ;
316
322
}
317
323
}
0 commit comments