static int moveBackToToken(TokenSequence<JavaTokenId> tokenSequence, final int pos, JavaTokenId id) { tokenSequence.move(pos); tokenSequence.moveNext(); // Assumes the pos is located within input bounds while (!id.equals(tokenSequence.token().id())) { if (!tokenSequence.movePrevious()) return -1; } return tokenSequence.offset(); }
@Override public String toString() { // state should be saved to avoid hard-to-spot defects when debugging initialize() boolean inited = initialized; int spos = seq.offset(); if (!inited) initialize(); String result = ""; for (int i = 0; i < data.size(); i++) { int[] pos = data.get(i); String s = diffContext.origText.substring(pos[0], pos[1]); result += "[" + s + "]"; } this.seq.move(spos); this.seq.moveNext(); this.initialized = inited; return result; }
public static int commentStart(DiffContext diffContext, CommentSet comments, CommentSet.RelativePosition pos, int limit) { List<Comment> list = comments.getComments(pos); if (list.isEmpty()) { return Integer.MAX_VALUE; } else { diffContext.tokenSequence.move(limit); moveToSrcRelevant(diffContext.tokenSequence, Direction.BACKWARD); limit = diffContext.tokenSequence.offset() + diffContext.tokenSequence.token().length(); int start = Integer.MAX_VALUE; for (Comment c : list) { if (c.pos() >= limit) start = Math.min(start, c.pos()); } return start; } }
private static List<TokenSequence<?>> embeddedTokenSequences(TokenHierarchy<Document> th, int offset) { TokenSequence<?> embedded = th.tokenSequence(); List<TokenSequence<?>> sequences = new ArrayList<TokenSequence<?>>(); do { TokenSequence<?> seq = embedded; embedded = null; seq.move(offset); if (seq.moveNext()) { sequences.add(seq); embedded = seq.embedded(); } } while (embedded != null); return sequences; }
TokenSequence<JavaTokenId> findFirstNonWhitespaceToken(Env env, int startPos, int endPos) { TokenSequence<JavaTokenId> ts = env.getController().getTokenHierarchy().tokenSequence(JavaTokenId.language()); ts.move(startPos); ts = nextNonWhitespaceToken(ts); if (ts == null || ts.offset() >= endPos) { return null; } return ts; }
static int moveFwdToToken(TokenSequence<JavaTokenId> tokenSequence, final int pos, JavaTokenId id) { tokenSequence.move(pos); tokenSequence.moveNext(); // Assumes the pos is located within input bounds while (!id.equals(tokenSequence.token().id())) { if (!tokenSequence.moveNext()) return -1; } return tokenSequence.offset(); }
private TokenSequence<FortranTokenId> getTokenSequence(BaseDocument doc, int dotPos){ FortranCodeStyle.get(doc).setupLexerAttributes(doc); TokenSequence<FortranTokenId> ts = CndLexerUtilities.getFortranTokenSequence(doc, dotPos); if (ts == null) { return null; } ts.move(dotPos); if (!ts.moveNext()) { return null; } return ts; }
TokenSequence<JavaTokenId> findLastNonWhitespaceToken(Env env, int startPos, int endPos) { TokenSequence<JavaTokenId> ts = env.getController().getTokenHierarchy().tokenSequence(JavaTokenId.language()); ts.move(endPos); ts = previousNonWhitespaceToken(ts); if (ts == null || ts.offset() < startPos) { return null; } return ts; }
private TokenSequence<JavaTokenId> findFirstTokenOccurrence(int startOffset, int endOffset, JavaTokenId token) { if (startOffset == endOffset) { return null; } ts.move(startOffset); boolean backward = startOffset > endOffset; while (backward ? ts.movePrevious() : ts.moveNext()) { if (backward && ts.offset() < endOffset || !backward && ts.offset() > endOffset) { return null; } if (ts.token().id() == token) { return ts; } } return null; }
private Token<FortranTokenId> getToken(BaseDocument doc, int dotPos){ FortranCodeStyle.get(doc).setupLexerAttributes(doc); TokenSequence<FortranTokenId> ts = CndLexerUtilities.getFortranTokenSequence(doc, dotPos); if (ts == null) { return null; } ts.move(dotPos); if (!ts.moveNext()) { return null; } return ts.token(); }
public static TokenSequence getTokenSequence (Document document, int offset) { TokenHierarchy tokenHierarchy = TokenHierarchy.get (document); if (tokenHierarchy == null) return null; TokenSequence tokenSequence = tokenHierarchy.tokenSequence (); if (tokenSequence == null) return null; while (true) { tokenSequence.move (offset); if (!tokenSequence.moveNext ()) return tokenSequence; TokenSequence tokenSequence2 = tokenSequence.embedded (); if (tokenSequence2 == null) return tokenSequence; tokenSequence = tokenSequence2; } }
private TokenSequence<JavaTokenId> findFirstOtherToken(int startOffset, int endOffset, EnumSet<JavaTokenId> ids) { if (startOffset == endOffset) { return null; } ts.move(startOffset); boolean backward = startOffset > endOffset; while (backward ? ts.movePrevious() : ts.moveNext()) { if (backward && ts.offset() < endOffset || !backward && ts.offset() > endOffset) { return null; } if (!ids.contains(ts.token().id())) { return ts; } } return null; }
static JavaTokenId moveFwdToOneOfTokens(TokenSequence<JavaTokenId> tokenSequence, final int pos, EnumSet<JavaTokenId> ids) { tokenSequence.move(pos); tokenSequence.moveNext(); // Assumes the pos is located within input bounds while (!ids.contains(tokenSequence.token().id())) { if (!tokenSequence.moveNext()) return null; } return tokenSequence.token().id(); }
private boolean semicolonProceededByBreak(TokenSequence ts) { boolean retunValue = false; if (ts.token().id() == PHPTokenId.PHP_BREAK) { retunValue = true; } else if (ts.token().id() == PHPTokenId.PHP_NUMBER) { int origOffset = ts.offset(); if (ts.movePrevious()) { if (ts.token().id() == PHPTokenId.WHITESPACE) { if (ts.movePrevious()) { if (ts.token().id() == PHPTokenId.PHP_BREAK) { retunValue = true; } } } } ts.move(origOffset); ts.moveNext(); } return retunValue; }
private boolean isLeftBraceOnNewLine(int startOffset, int endOffset) { ts.move(startOffset); while (ts.moveNext()) { if (ts.offset() >= endOffset) { return false; } if (ts.token().id() == JavaTokenId.LBRACE) { if (!ts.movePrevious()) { return false; } return ts.token().id() == JavaTokenId.LINE_COMMENT || ts.token().id() == JavaTokenId.WHITESPACE && ts.token().text().toString().indexOf('\n') >= 0; } } return false; }