int initalOffset= fViewer.getSelectedRange().x;
Point selectedRange= fViewer.getSelectedRange(); int initalOffset= selectedRange.x;
	public String showPossibleCompletions() {		if (fViewer == null)			// Let superclass deal with this			return super.showPossibleCompletions();				int initalOffset= fViewer.getSelectedRange().x;		int invocationOffset;		int invocationLength;				if (areMultipleLinesSelected()) {			try {				IDocument document= fViewer.getDocument();				IRegion start= document.getLineInformationOfOffset(initalOffset);				invocationOffset= start.getOffset();				int line= document.getLineOfOffset(initalOffset);				if (line + 1 < document.getNumberOfLines()) {					IRegion end= document.getLineInformation(line + 1);					invocationLength= end.getOffset() - invocationOffset + end.getLength();				} else {					invocationLength= start.getLength();				}			} catch (BadLocationException ex) {				invocationOffset= initalOffset;				invocationLength= 0;			}		} else {			invocationOffset= computeOffsetWithCorrection(initalOffset);			invocationLength= 0;		}					if (invocationOffset != -1) {			storePosition();			fViewer.setSelectedRange(invocationOffset, invocationLength);			fViewer.revealRange(invocationOffset, invocationLength);		} else {			fPosition= null;		}				String errorMsg= super.showPossibleCompletions();		return errorMsg;	}