From 3839bc027afabe6e547de7945501da6ce548c9ff Mon Sep 17 00:00:00 2001 From: Piotr Tomiak Date: Wed, 12 Nov 2025 17:11:16 +0100 Subject: [PATCH] IJPL-212853 FlexAdapter: store buffer end position in the LexerPosition GitOrigin-RevId: 3c7f192c2649b868581b9628ad822a48ccbf887c --- .../core-impl/src/com/intellij/lexer/FlexAdapter.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/platform/core-impl/src/com/intellij/lexer/FlexAdapter.java b/platform/core-impl/src/com/intellij/lexer/FlexAdapter.java index 798f80226fab..063e571de467 100644 --- a/platform/core-impl/src/com/intellij/lexer/FlexAdapter.java +++ b/platform/core-impl/src/com/intellij/lexer/FlexAdapter.java @@ -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