mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-10-06 06:21:16 +07:00
IJPL-212853 FlexAdapter: store buffer end position in the LexerPosition
GitOrigin-RevId: 3c7f192c2649b868581b9628ad822a48ccbf887c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
37a5a154ee
commit
3839bc027a
@@ -84,13 +84,13 @@ public class FlexAdapter extends LexerBase {
|
||||
@Override
|
||||
public @NotNull LexerPosition getCurrentPosition() {
|
||||
locateToken();
|
||||
return new FlexAdapterPosition(myTokenType, myTokenStart, myTokenEnd, myState, myFlex.yystate());
|
||||
return new FlexAdapterPosition(myTokenType, myTokenStart, myTokenEnd, myState, myFlex.yystate(), myBufferEnd);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void restore(@NotNull LexerPosition position) {
|
||||
FlexAdapterPosition flexAdapterPosition = (FlexAdapterPosition)position;
|
||||
myFlex.reset(myText, flexAdapterPosition.tokenEnd, getBufferEnd(), flexAdapterPosition.flexState);
|
||||
myFlex.reset(myText, flexAdapterPosition.tokenEnd, flexAdapterPosition.bufferEnd, flexAdapterPosition.flexState);
|
||||
myTokenStart = flexAdapterPosition.tokenStart;
|
||||
myTokenEnd = flexAdapterPosition.tokenEnd;
|
||||
myTokenType = flexAdapterPosition.currentToken;
|
||||
@@ -130,13 +130,15 @@ public class FlexAdapter extends LexerBase {
|
||||
private final int tokenEnd;
|
||||
private final int state;
|
||||
private final int flexState;
|
||||
private final int bufferEnd;
|
||||
|
||||
private FlexAdapterPosition(IElementType currentToken, int tokenStart, int tokenEnd, int state, int flexState) {
|
||||
private FlexAdapterPosition(IElementType currentToken, int tokenStart, int tokenEnd, int state, int flexState, int bufferEnd) {
|
||||
this.currentToken = currentToken;
|
||||
this.tokenStart = tokenStart;
|
||||
this.tokenEnd = tokenEnd;
|
||||
this.state = state;
|
||||
this.flexState = flexState;
|
||||
this.bufferEnd = bufferEnd;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user