public String getReferenceIndentation(int position) {
public StringBuffer getReferenceIndentation(int offset) {
	public String getReferenceIndentation(int position) {				try {			// account for unindenation characters already typed in, but after position			// also account for a dangling else						boolean danglingElse= false;			boolean matchBrace= false;			boolean matchParen= false;						if (position < fDocument.getLength()) {				IRegion line= fDocument.getLineInformationOfOffset(position);				int next= fScanner.nextToken(position, line.getOffset() + line.getLength());				switch (next) {					case Symbols.TokenEOF:					case Symbols.TokenELSE:						danglingElse= true;						break;					case Symbols.TokenRBRACE: // closing braces get unindented						matchBrace= true;				}			} else {				danglingElse= true;			}						// find the base position			int unit= findReferencePosition(position, danglingElse, matchBrace, matchParen);						// if we were unable to find anything, return null			if (unit == JavaHeuristicScanner.NOT_FOUND)				return null; //$NON-NLS-1$						// get base indent at the reference location			IRegion line= fDocument.getLineInformationOfOffset(unit);			int offset= line.getOffset();			int nonWS= fScanner.findNonWhitespaceForwardInAnyPartition(offset, offset + line.getLength());			StringBuffer indent= new StringBuffer(fDocument.get(offset, nonWS - offset));						return indent.toString();					} catch (BadLocationException e) {		}				return null;	}