fAlign= fScanner.findNonWhitespaceForwardInAnyPartition(lineOffset, startPosition + 1);
int bound= Math.min(fDocument.getLength(), startPosition + 1); fAlign= fScanner.findNonWhitespaceForwardInAnyPartition(lineOffset, bound);
	private int skipToPreviousListItemOrListStart() {		int startLine= fLine;		int startPosition= fPosition;		while (true) {			nextToken();						// if any line item comes with its own indentation, adapt to it			if (fLine < startLine) {				try {					int lineOffset= fDocument.getLineOffset(startLine);					fAlign= fScanner.findNonWhitespaceForwardInAnyPartition(lineOffset, startPosition + 1);				} catch (BadLocationException e) {					// ignore and return just the position				}				return startPosition;			}						switch (fToken) {				// scopes: skip them				case Symbols.TokenRPAREN:				case Symbols.TokenRBRACKET:				case Symbols.TokenRBRACE:					skipScope();					break;								// scope introduction: special treat who special is				case Symbols.TokenLPAREN:				case Symbols.TokenLBRACE:				case Symbols.TokenLBRACKET:					return handleScopeIntroduction(startPosition + 1);									case Symbols.TokenSEMICOLON:					return fPosition;				case Symbols.TokenQUESTIONMARK:					if (prefTernaryDeepAlign()) {						setFirstElementAlignment(fPosition - 1, fPosition + 1);						return fPosition;					} else {						fIndent= prefTernaryIndent();						return fPosition;					}				case Symbols.TokenEOF:					return 0;								}		}	}