void (CharSequence editorText, TextRange literalTextRange, int cursorOffset, Lexer lexer, List<? super TextRange> result) { lexer.start(editorText, literalTextRange.getStartOffset(), literalTextRange.getEndOffset()); while (lexer.getTokenType() != null) { if (lexer.getTokenStart() <= cursorOffset && cursorOffset < lexer.getTokenEnd()) { if (StringEscapesTokenTypes.STRING_LITERAL_ESCAPES.contains(lexer.getTokenType())) { result.add(new TextRange(lexer.getTokenStart(), lexer.getTokenEnd())); } else { TextRange word = getWordSelectionRange(editorText, cursorOffset, JAVA_IDENTIFIER_PART_CONDITION); if (word != null) { result.add(new TextRange(Math.max(word.getStartOffset(), lexer.getTokenStart()), Math.min(word.getEndOffset(), lexer.getTokenEnd()))); } } break; } lexer.advance(); } }