int endOffset= fCachedDocument.getLineOffset(end + 1);
int endOffset; if (fCachedDocument.getNumberOfLines() > end + 1) endOffset= fCachedDocument.getLineOffset(end + 1); else endOffset= fCachedDocument.getLineOffset(end) + fCachedDocument.getLineLength(end);
	private Position createProjectionPosition(IRegion region) {				if (fCachedDocument == null)			return null;				try {						int start= fCachedDocument.getLineOfOffset(region.getOffset());			int end= fCachedDocument.getLineOfOffset(region.getOffset() + region.getLength());			if (start != end) {				int offset= fCachedDocument.getLineOffset(start);				int endOffset= fCachedDocument.getLineOffset(end + 1);				return new Position(offset, endOffset - offset);			}					} catch (BadLocationException x) {		}				return null;	}