if (getCompletionLength() == 0) {  int start= getCompletionOffset(); while ((start != 0) && Character.isUnicodeIdentifierPart(document.getChar(start - 1))) start--;  if ((start != 0) && Character.isUnicodeIdentifierStart(document.getChar(start - 1))) start--;  return start;  }
	public int getStart() {		try {			IDocument document= getDocument();			if (getCompletionLength() == 0) {				int start= getCompletionOffset();						while ((start != 0) && Character.isUnicodeIdentifierPart(document.getChar(start - 1)))					start--;									if ((start != 0) && Character.isUnicodeIdentifierStart(document.getChar(start - 1)))					start--;						return start;						} 						int start= getCompletionOffset();			int end= getCompletionOffset() + getCompletionLength();						while (start != 0 && Character.isUnicodeIdentifierPart(document.getChar(start - 1)))				start--;						while (start != end && Character.isWhitespace(document.getChar(start)))				start++;						if (start == end)				start= getCompletionOffset();								return start;			} catch (BadLocationException e) {			return super.getStart();			}	}