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 Details

    • ContentAssistInvocationContext

      public ContentAssistInvocationContext(org.eclipse.jface.text.ITextViewer viewer)
      Parameters:
      viewer - the text viewer that content assist is invoked in
    • ContentAssistInvocationContext

      public ContentAssistInvocationContext(org.eclipse.jface.text.ITextViewer viewer, int offset)
      Creates a new context for the given viewer and offset.
      Parameters:
      viewer - the text viewer that content assist is invoked in
      offset - 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(org.eclipse.jface.text.IDocument document, int offset)
      Creates a new context for the given document and offset.
      Parameters:
      document - the document that content assist is invoked in
      offset - the offset into the document where content assist is invoked at
  • Method Details

    • getInvocationOffset

      public final int getInvocationOffset()
      Returns the invocation offset.
      Returns:
      the invocation offset
    • getViewer

      public final org.eclipse.jface.text.ITextViewer getViewer()
      Returns the viewer, null if not available.
      Returns:
      the viewer, possibly null
    • getDocument

      public org.eclipse.jface.text.IDocument getDocument()
      Returns the document that content assist is invoked on, or null if not known.
      Returns:
      the document or null
    • computeIdentifierPrefix

      public CharSequence computeIdentifierPrefix() throws org.eclipse.jface.text.BadLocationException
      Computes the identifier (as specified by Character.isJavaIdentifierPart(char)) that immediately precedes the invocation offset.
      Returns:
      the prefix preceding the content assist invocation offset, null if there is no document
      Throws:
      org.eclipse.jface.text.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 for null 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().

      Overrides:
      equals in class Object
      Parameters:
      obj -
      Returns:
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getTextSelection

      public org.eclipse.jface.text.ITextSelection getTextSelection()
      Return the current known selection for the viewer, usable in non-UI Thread.
      Returns:
      the text selection if running in UI-Thread or viewer implements ITextViewerExtension9, or null in other cases.
      Since:
      3.20