Package org.eclipse.jdt.ui.text.java
Class ContentAssistInvocationContext
- java.lang.Object
-
- org.eclipse.jdt.ui.text.java.ContentAssistInvocationContext
-
- Direct Known Subclasses:
JavaContentAssistInvocationContext
public class ContentAssistInvocationContext extends Object
Describes the context of an invocation of content assist in a text viewer. The context knows the document, the invocation offset and can lazily compute the identifier prefix preceding the invocation offset. It may know the viewer.Subclasses may add information to their environment. For example, source code editors may provide specific context information such as an AST.
Clients may instantiate and subclass.
- Since:
- 3.2
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ContentAssistInvocationContext()
Creates a new context with no viewer or invocation offset set.ContentAssistInvocationContext(IDocument document, int offset)
Creates a new context for the given document and offset.ContentAssistInvocationContext(ITextViewer viewer)
ContentAssistInvocationContext(ITextViewer viewer, int offset)
Creates a new context for the given viewer and offset.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CharSequence
computeIdentifierPrefix()
Computes the identifier (as specified byCharacter.isJavaIdentifierPart(char)
) that immediately precedes the invocation offset.boolean
equals(Object obj)
Invocation contexts are equal if they describe the same context and are of the same type.IDocument
getDocument()
Returns the document that content assist is invoked on, ornull
if not known.int
getInvocationOffset()
Returns the invocation offset.ITextViewer
getViewer()
Returns the viewer,null
if not available.int
hashCode()
-
-
-
Constructor Detail
-
ContentAssistInvocationContext
public ContentAssistInvocationContext(ITextViewer viewer)
- Parameters:
viewer
- the text viewer that content assist is invoked in
-
ContentAssistInvocationContext
public ContentAssistInvocationContext(ITextViewer viewer, int offset)
Creates a new context for the given viewer and offset.- Parameters:
viewer
- the text viewer that content assist is invoked inoffset
- the offset into the viewer's document where content assist is invoked at
-
ContentAssistInvocationContext
protected ContentAssistInvocationContext()
Creates a new context with no viewer or invocation offset set.
-
ContentAssistInvocationContext
public ContentAssistInvocationContext(IDocument document, int offset)
Creates a new context for the given document and offset.- Parameters:
document
- the document that content assist is invoked inoffset
- the offset into the document where content assist is invoked at
-
-
Method Detail
-
getInvocationOffset
public final int getInvocationOffset()
Returns the invocation offset.- Returns:
- the invocation offset
-
getViewer
public final ITextViewer getViewer()
Returns the viewer,null
if not available.- Returns:
- the viewer, possibly
null
-
getDocument
public IDocument getDocument()
Returns the document that content assist is invoked on, ornull
if not known.- Returns:
- the document or
null
-
computeIdentifierPrefix
public CharSequence computeIdentifierPrefix() throws BadLocationException
Computes the identifier (as specified byCharacter.isJavaIdentifierPart(char)
) that immediately precedes the invocation offset.- Returns:
- the prefix preceding the content assist invocation offset,
null
if there is no document - Throws:
BadLocationException
- if accessing the document fails
-
equals
public boolean equals(Object obj)
Invocation contexts are equal if they describe the same context and are of the same type. This implementation checks fornull
values and class equality. Subclasses should extend this method by adding checks for their context relevant fields (but not necessarily cached values).Example:
class MyContext extends ContentAssistInvocationContext { private final Object fState; private Object fCachedInfo; ... public boolean equals(Object obj) { if (!super.equals(obj)) return false; MyContext other= (MyContext) obj; return fState.equals(other.fState); } }
Subclasses should also extend
Object.hashCode()
.
-
-