mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Cleanup (duplicates; typos)
This commit is contained in:
@@ -11,6 +11,7 @@ import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.text.CharArrayUtil;
|
||||
import com.intellij.util.text.CharSequenceHashingStrategy;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Set;
|
||||
@@ -42,7 +43,7 @@ public class JavaLexer extends LexerBase {
|
||||
|
||||
private final _JavaLexer myFlexLexer;
|
||||
private CharSequence myBuffer;
|
||||
private char[] myBufferArray;
|
||||
private @Nullable char[] myBufferArray;
|
||||
private int myBufferIndex;
|
||||
private int myBufferEndOffset;
|
||||
private int myTokenEndOffset; // positioned after the last symbol of the current token
|
||||
@@ -70,7 +71,7 @@ public class JavaLexer extends LexerBase {
|
||||
|
||||
@Override
|
||||
public final IElementType getTokenType() {
|
||||
if (myTokenType == null) _locateToken();
|
||||
locateToken();
|
||||
return myTokenType;
|
||||
}
|
||||
|
||||
@@ -81,26 +82,27 @@ public class JavaLexer extends LexerBase {
|
||||
|
||||
@Override
|
||||
public final int getTokenEnd() {
|
||||
if (myTokenType == null) _locateToken();
|
||||
locateToken();
|
||||
return myTokenEndOffset;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void advance() {
|
||||
if (myTokenType == null) _locateToken();
|
||||
locateToken();
|
||||
myTokenType = null;
|
||||
}
|
||||
|
||||
private void _locateToken() {
|
||||
private void locateToken() {
|
||||
if (myTokenType != null) return;
|
||||
|
||||
if (myTokenEndOffset == myBufferEndOffset) {
|
||||
myTokenType = null;
|
||||
myBufferIndex = myBufferEndOffset;
|
||||
return;
|
||||
}
|
||||
|
||||
myBufferIndex = myTokenEndOffset;
|
||||
|
||||
char c = myBufferArray != null ? myBufferArray[myBufferIndex] : myBuffer.charAt(myBufferIndex);
|
||||
char c = charAt(myBufferIndex);
|
||||
switch (c) {
|
||||
case ' ':
|
||||
case '\t':
|
||||
@@ -117,16 +119,16 @@ public class JavaLexer extends LexerBase {
|
||||
myTokenEndOffset = myBufferEndOffset;
|
||||
}
|
||||
else {
|
||||
char nextChar = myBufferArray != null ? myBufferArray[myBufferIndex + 1] : myBuffer.charAt(myBufferIndex + 1);
|
||||
char nextChar = charAt(myBufferIndex + 1);
|
||||
if (nextChar == '/') {
|
||||
myTokenType = JavaTokenType.END_OF_LINE_COMMENT;
|
||||
myTokenEndOffset = getLineTerminator(myBufferIndex + 2);
|
||||
}
|
||||
else if (nextChar == '*') {
|
||||
if (myBufferIndex + 2 >= myBufferEndOffset ||
|
||||
(myBufferArray != null ? myBufferArray[myBufferIndex + 2] : myBuffer.charAt(myBufferIndex + 2)) != '*' ||
|
||||
(charAt(myBufferIndex + 2)) != '*' ||
|
||||
(myBufferIndex + 3 < myBufferEndOffset &&
|
||||
(myBufferArray != null ? myBufferArray[myBufferIndex + 3] : myBuffer.charAt(myBufferIndex + 3)) == '/')) {
|
||||
(charAt(myBufferIndex + 3)) == '/')) {
|
||||
myTokenType = JavaTokenType.C_STYLE_COMMENT;
|
||||
myTokenEndOffset = getClosingComment(myBufferIndex + 2);
|
||||
}
|
||||
@@ -144,7 +146,7 @@ public class JavaLexer extends LexerBase {
|
||||
case '"':
|
||||
case '\'':
|
||||
myTokenType = c == '"' ? JavaTokenType.STRING_LITERAL : JavaTokenType.CHARACTER_LITERAL;
|
||||
myTokenEndOffset = getClosingParenthesis(myBufferIndex + 1, c);
|
||||
myTokenEndOffset = getClosingQuote(myBufferIndex + 1, c);
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -162,12 +164,12 @@ public class JavaLexer extends LexerBase {
|
||||
}
|
||||
|
||||
int pos = offset;
|
||||
char c = myBufferArray != null ? myBufferArray[pos] : myBuffer.charAt(pos);
|
||||
char c = charAt(pos);
|
||||
|
||||
while (c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '\f') {
|
||||
pos++;
|
||||
if (pos == myBufferEndOffset) return pos;
|
||||
c = myBufferArray != null ? myBufferArray[pos] : myBuffer.charAt(pos);
|
||||
c = charAt(pos);
|
||||
}
|
||||
|
||||
return pos;
|
||||
@@ -182,31 +184,31 @@ public class JavaLexer extends LexerBase {
|
||||
catch (IOException e) { /* impossible */ }
|
||||
}
|
||||
|
||||
private int getClosingParenthesis(int offset, char c) {
|
||||
private int getClosingQuote(int offset, char quoteChar) {
|
||||
if (offset >= myBufferEndOffset) {
|
||||
return myBufferEndOffset;
|
||||
}
|
||||
|
||||
int pos = offset;
|
||||
char cur = myBufferArray != null ? myBufferArray[pos] : myBuffer.charAt(pos);
|
||||
char c = charAt(pos);
|
||||
|
||||
while (true) {
|
||||
while (cur != c && cur != '\n' && cur != '\r' && cur != '\\') {
|
||||
while (c != quoteChar && c != '\n' && c != '\r' && c != '\\') {
|
||||
pos++;
|
||||
if (pos >= myBufferEndOffset) return myBufferEndOffset;
|
||||
cur = myBufferArray != null ? myBufferArray[pos] : myBuffer.charAt(pos);
|
||||
c = charAt(pos);
|
||||
}
|
||||
|
||||
if (cur == '\\') {
|
||||
if (c == '\\') {
|
||||
pos++;
|
||||
if (pos >= myBufferEndOffset) return myBufferEndOffset;
|
||||
cur = myBufferArray != null ? myBufferArray[pos] : myBuffer.charAt(pos);
|
||||
if (cur == '\n' || cur == '\r') continue;
|
||||
c = charAt(pos);
|
||||
if (c == '\n' || c == '\r') continue;
|
||||
pos++;
|
||||
if (pos >= myBufferEndOffset) return myBufferEndOffset;
|
||||
cur = myBufferArray != null ? myBufferArray[pos] : myBuffer.charAt(pos);
|
||||
c = charAt(pos);
|
||||
}
|
||||
else if (cur == c) {
|
||||
else if (c == quoteChar) {
|
||||
break;
|
||||
}
|
||||
else {
|
||||
@@ -222,8 +224,8 @@ public class JavaLexer extends LexerBase {
|
||||
int pos = offset;
|
||||
|
||||
while (pos < myBufferEndOffset - 1) {
|
||||
char c = myBufferArray != null ? myBufferArray[pos] : myBuffer.charAt(pos);
|
||||
if (c == '*' && (myBufferArray != null ? myBufferArray[pos + 1] : myBuffer.charAt(pos + 1)) == '/') {
|
||||
char c = charAt(pos);
|
||||
if (c == '*' && (charAt(pos + 1)) == '/') {
|
||||
break;
|
||||
}
|
||||
pos++;
|
||||
@@ -236,7 +238,7 @@ public class JavaLexer extends LexerBase {
|
||||
int pos = offset;
|
||||
|
||||
while (pos < myBufferEndOffset) {
|
||||
char c = myBufferArray != null ? myBufferArray[pos] : myBuffer.charAt(pos);
|
||||
char c = charAt(pos);
|
||||
if (c == '\r' || c == '\n') break;
|
||||
pos++;
|
||||
}
|
||||
@@ -244,6 +246,10 @@ public class JavaLexer extends LexerBase {
|
||||
return pos;
|
||||
}
|
||||
|
||||
private char charAt(int position) {
|
||||
return myBufferArray != null ? myBufferArray[position] : myBuffer.charAt(position);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public CharSequence getBufferSequence() {
|
||||
|
||||
Reference in New Issue
Block a user