org.eclipse.xtext.ui.editor.contentassist.antlr
Class ParserBasedContentAssistContextFactory.StatefulFactory

java.lang.Object
  extended by org.eclipse.xtext.ui.editor.contentassist.antlr.ParserBasedContentAssistContextFactory.StatefulFactory
All Implemented Interfaces:
com.google.common.base.Function<ContentAssistContext.Builder,ContentAssistContext>
Enclosing class:
ParserBasedContentAssistContextFactory

public static class ParserBasedContentAssistContextFactory.StatefulFactory
extends java.lang.Object
implements com.google.common.base.Function<ContentAssistContext.Builder,ContentAssistContext>


Constructor Summary
ParserBasedContentAssistContextFactory.StatefulFactory()
           
 
Method Summary
 ContentAssistContext apply(ContentAssistContext.Builder from)
           
protected  boolean canBeCalledAfter(AbstractRule rule, org.eclipse.emf.ecore.EObject previousGrammarElement, java.lang.String previousText, org.eclipse.emf.ecore.EObject nextGrammarElement)
           
protected  com.google.common.collect.Multimap<org.eclipse.emf.ecore.EObject,AbstractElement> computeCurrentModel(org.eclipse.emf.ecore.EObject currentModel, INode lastCompleteNode, java.util.Collection<AbstractElement> followElements)
           
protected  void computeFollowElements(java.util.Collection<FollowElement> followElements, java.util.Collection<AbstractElement> result)
           
protected  void computeFollowElements(ParserBasedContentAssistContextFactory.FollowElementCalculator calculator, FollowElement element)
           
protected  void computeFollowElements(ParserBasedContentAssistContextFactory.FollowElementCalculator calculator, FollowElement element, com.google.common.collect.Multimap<java.lang.Integer,java.util.List<AbstractElement>> visited)
           
 ContentAssistContext[] create(org.eclipse.jface.text.ITextViewer viewer, int offset, XtextResource resource)
           
protected  ParserBasedContentAssistContextFactory.CallHierarchyHelper createCallHierachyHelper(org.eclipse.emf.ecore.EObject previousGrammarElement, java.lang.String previousText, org.eclipse.emf.ecore.EObject nextGrammarElement)
           
protected  void createContextsForLastCompleteNode(org.eclipse.emf.ecore.EObject previousModel, boolean strict)
           
 boolean doComputePrefix(ICompositeNode node, java.lang.StringBuilder result)
           
 ContentAssistContext.Builder doCreateContext(INode lastCompleteNode, org.eclipse.emf.ecore.EObject currentModel, org.eclipse.emf.ecore.EObject previousModel, INode currentNode, java.lang.String prefix)
           
protected  void doCreateContexts(INode lastCompleteNode, INode currentNode, java.lang.String prefix, org.eclipse.emf.ecore.EObject previousModel, java.util.Collection<FollowElement> followElements)
           
protected  ContentAssistContext[] doCreateContexts(int offset)
           
 INode getContainingDatatypeRuleNode(INode node)
           
protected  INode getLastCompleteNodeByOffset(INode node, int offsetPosition)
           
 java.lang.String getNodeTextUpToCompletionOffset(INode currentNode)
           
 IContentAssistParser getParser()
           
 java.lang.String getPrefix(INode prefixNode)
           
protected  AbstractRule getRule(org.eclipse.emf.ecore.EObject currentGrammarElement)
           
protected  void handleLastCompleteNodeAsPartOfDatatypeNode()
           
protected  void handleLastCompleteNodeHasNoGrammarElement(java.util.List<ContentAssistContext.Builder> contextBuilderToCheck, org.eclipse.emf.ecore.EObject previousModel)
           
protected  void handleLastCompleteNodeIsAtEndOfDatatypeNode()
           
protected  void handleLastCompleteNodeIsPartOfLookahead()
           
protected  void initializeAndAdjustCompletionOffset(int offset)
           
protected  void initializeFromViewerAndResource(int offset)
           
protected  void initializeNodeAndModelData()
           
protected  boolean isErrorToken(org.antlr.runtime.Token token)
          Return true if the token should be considered to be an error token.
protected  boolean isLikelyToBeValidProposal(INode lastCompleteNode, java.lang.Iterable<ContentAssistContext> contexts)
           
 void setParser(IContentAssistParser parser)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.google.common.base.Function
equals
 

Constructor Detail

ParserBasedContentAssistContextFactory.StatefulFactory

public ParserBasedContentAssistContextFactory.StatefulFactory()
Method Detail

apply

public ContentAssistContext apply(ContentAssistContext.Builder from)
Specified by:
apply in interface com.google.common.base.Function<ContentAssistContext.Builder,ContentAssistContext>

create

public ContentAssistContext[] create(org.eclipse.jface.text.ITextViewer viewer,
                                     int offset,
                                     XtextResource resource)
                              throws org.eclipse.jface.text.BadLocationException
Throws:
org.eclipse.jface.text.BadLocationException

doCreateContexts

protected ContentAssistContext[] doCreateContexts(int offset)
                                           throws org.eclipse.jface.text.BadLocationException
Throws:
org.eclipse.jface.text.BadLocationException

initializeFromViewerAndResource

protected void initializeFromViewerAndResource(int offset)

initializeNodeAndModelData

protected void initializeNodeAndModelData()

initializeAndAdjustCompletionOffset

protected void initializeAndAdjustCompletionOffset(int offset)

handleLastCompleteNodeIsPartOfLookahead

protected void handleLastCompleteNodeIsPartOfLookahead()
                                                throws org.eclipse.jface.text.BadLocationException
Throws:
org.eclipse.jface.text.BadLocationException

handleLastCompleteNodeIsAtEndOfDatatypeNode

protected void handleLastCompleteNodeIsAtEndOfDatatypeNode()
                                                    throws org.eclipse.jface.text.BadLocationException
Throws:
org.eclipse.jface.text.BadLocationException

handleLastCompleteNodeHasNoGrammarElement

protected void handleLastCompleteNodeHasNoGrammarElement(java.util.List<ContentAssistContext.Builder> contextBuilderToCheck,
                                                         org.eclipse.emf.ecore.EObject previousModel)
                                                  throws org.eclipse.jface.text.BadLocationException
Throws:
org.eclipse.jface.text.BadLocationException

handleLastCompleteNodeAsPartOfDatatypeNode

protected void handleLastCompleteNodeAsPartOfDatatypeNode()
                                                   throws org.eclipse.jface.text.BadLocationException
Throws:
org.eclipse.jface.text.BadLocationException

isLikelyToBeValidProposal

protected boolean isLikelyToBeValidProposal(INode lastCompleteNode,
                                            java.lang.Iterable<ContentAssistContext> contexts)

createContextsForLastCompleteNode

protected void createContextsForLastCompleteNode(org.eclipse.emf.ecore.EObject previousModel,
                                                 boolean strict)
                                          throws org.eclipse.jface.text.BadLocationException
Throws:
org.eclipse.jface.text.BadLocationException

isErrorToken

protected boolean isErrorToken(org.antlr.runtime.Token token)
Return true if the token should be considered to be an error token. If the token that is created from the prefix before the cursor position is an error token, no proposals shall be computed that don't use a prefix.

Returns:
true if the token should be considered to be an error token.
Since:
2.0

doCreateContexts

protected void doCreateContexts(INode lastCompleteNode,
                                INode currentNode,
                                java.lang.String prefix,
                                org.eclipse.emf.ecore.EObject previousModel,
                                java.util.Collection<FollowElement> followElements)

computeCurrentModel

protected com.google.common.collect.Multimap<org.eclipse.emf.ecore.EObject,AbstractElement> computeCurrentModel(org.eclipse.emf.ecore.EObject currentModel,
                                                                                                                INode lastCompleteNode,
                                                                                                                java.util.Collection<AbstractElement> followElements)

computeFollowElements

protected void computeFollowElements(java.util.Collection<FollowElement> followElements,
                                     java.util.Collection<AbstractElement> result)

computeFollowElements

protected void computeFollowElements(ParserBasedContentAssistContextFactory.FollowElementCalculator calculator,
                                     FollowElement element)

computeFollowElements

protected void computeFollowElements(ParserBasedContentAssistContextFactory.FollowElementCalculator calculator,
                                     FollowElement element,
                                     com.google.common.collect.Multimap<java.lang.Integer,java.util.List<AbstractElement>> visited)

getContainingDatatypeRuleNode

public INode getContainingDatatypeRuleNode(INode node)

doCreateContext

public ContentAssistContext.Builder doCreateContext(INode lastCompleteNode,
                                                    org.eclipse.emf.ecore.EObject currentModel,
                                                    org.eclipse.emf.ecore.EObject previousModel,
                                                    INode currentNode,
                                                    java.lang.String prefix)

getPrefix

public java.lang.String getPrefix(INode prefixNode)

getNodeTextUpToCompletionOffset

public java.lang.String getNodeTextUpToCompletionOffset(INode currentNode)

doComputePrefix

public boolean doComputePrefix(ICompositeNode node,
                               java.lang.StringBuilder result)

setParser

public void setParser(IContentAssistParser parser)

getParser

public IContentAssistParser getParser()

canBeCalledAfter

protected boolean canBeCalledAfter(AbstractRule rule,
                                   org.eclipse.emf.ecore.EObject previousGrammarElement,
                                   java.lang.String previousText,
                                   org.eclipse.emf.ecore.EObject nextGrammarElement)

createCallHierachyHelper

protected ParserBasedContentAssistContextFactory.CallHierarchyHelper createCallHierachyHelper(org.eclipse.emf.ecore.EObject previousGrammarElement,
                                                                                              java.lang.String previousText,
                                                                                              org.eclipse.emf.ecore.EObject nextGrammarElement)

getRule

protected AbstractRule getRule(org.eclipse.emf.ecore.EObject currentGrammarElement)

getLastCompleteNodeByOffset

protected INode getLastCompleteNodeByOffset(INode node,
                                            int offsetPosition)