int invocationOffset= computeOffsetWithCorrection(initalOffset);
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; }
	public String showPossibleCompletions() {		if (fViewer == null)			// Let superclass deal with this			return super.showPossibleCompletions();				int initalOffset= fViewer.getSelectedRange().x;		int invocationOffset= computeOffsetWithCorrection(initalOffset);		if (invocationOffset != -1) {			storePosition();			fViewer.setSelectedRange(invocationOffset, 0);			fViewer.revealRange(invocationOffset, 0);		} else {			fPosition= null;		}				String errorMsg= super.showPossibleCompletions();		return errorMsg;	}