int start= getCompletionPosition();  if ((start != 0) && (document.getChar(start - 1) == HTML_TAG_END)) start--;  while ((start != 0) && Character.isUnicodeIdentifierPart(document.getChar(start - 1))) start--;  if ((start != 0) && Character.isUnicodeIdentifierStart(document.getChar(start - 1))) start--;   if ((start != 0) && ( (document.getChar(start - 1) == HTML_TAG_BEGIN) || (document.getChar(start - 1) == JAVADOC_TAG_BEGIN))) { start--; }  return start;
if (getCompletionLength() == 0) { int start= getCompletionOffset();  if ((start != 0) && (document.getChar(start - 1) == HTML_TAG_END)) start--;  while ((start != 0) && Character.isUnicodeIdentifierPart(document.getChar(start - 1))) start--;  if ((start != 0) && Character.isUnicodeIdentifierStart(document.getChar(start - 1))) start--;   if ((start != 0) && ( (document.getChar(start - 1) == HTML_TAG_BEGIN) || (document.getChar(start - 1) == JAVADOC_TAG_BEGIN))) { start--; }  return start;  } else {  int start= getCompletionOffset(); int end= getCompletionOffset() + getCompletionLength();  while (start != end && Character.isWhitespace(document.getChar(start))) start++;  if (start == end) start= getCompletionOffset();  return start; }
	public int getStart() {		try {			IDocument document= getDocument();			int start= getCompletionPosition();				if ((start != 0) && (document.getChar(start - 1) == HTML_TAG_END))				start--;				while ((start != 0) && Character.isUnicodeIdentifierPart(document.getChar(start - 1)))				start--;						if ((start != 0) && Character.isUnicodeIdentifierStart(document.getChar(start - 1)))				start--;				// include html and javadoc tags			if ((start != 0) && (				(document.getChar(start - 1) == HTML_TAG_BEGIN) ||				(document.getChar(start - 1) == JAVADOC_TAG_BEGIN)))			{				start--;			}					return start;		} catch (BadLocationException e) {			return getCompletionPosition();			}	}