2009-03-23 7 views
0

J'essaie d'ajouter du contenu aider à mon éditeur. J'ai ajoutéEclipse RCP - Problème d'assistance au contenu

public IContentAssistant getContentAssistant(ISourceViewer sv) { 
    ContentAssistant ca = new ContentAssistant(); 
    IContentAssistProcessor pr = new TagCompletionProcessor(); 
    ca.setContentAssistProcessor(pr, XMLPartitionScanner.XML_TAG); 
    ca.setContentAssistProcessor(pr, IDocument.DEFAULT_CONTENT_TYPE); 
    return ca; 
} 

à la configuration de l'éditeur, puis en classe de processeur d'achèvement:

public class TagCompletionProcessor implements IContentAssistProcessor { 
private ITypedRegion wordRegion; 
private String currentWord; 
private SmartTreeSet tags; 
public TagCompletionProcessor() { 
    tags = new SmartTreeSet(); 
    //filling tags skipped 
} 
@Override 
public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, 
     int offset) { 
    System.out.println("compute"); 
    wordRegion = viewer.getDocument().getDocumentPartitioner().getPartition(offset); 
    try { 
     int offs = wordRegion.getOffset(); 
     int len = wordRegion.getLength(); 
     currentWord = viewer.getDocument().get(offs, len); 
     return tags.getProposals(currentWord.toLowerCase(), offs, len); 
    } catch (BadLocationException e) { 
     return null; 
    } 
} 
@Override 
public IContextInformation[] computeContextInformation(ITextViewer viewer, 
     int offset) { 
    return null; 
} 
@Override 
public char[] getCompletionProposalAutoActivationCharacters() { 
    return new char[] {'<'}; 
} 
@Override 
public char[] getContextInformationAutoActivationCharacters() { 
    return null; 
} 
@Override 
public IContextInformationValidator getContextInformationValidator() { 
    return null; 
} 
@Override 
public String getErrorMessage() { 
    return "No tags found"; 
} 

}

... mais cela ne fonctionne pas. Init devient normal, mais l'auto-activation ne fonctionne pas et quand j'appuie sur ctrl-space (j'ai ajouté la commande org.eclipse.ui.edit.text.contentAssist.proposals à Bindings ext point) la liste vide apparaît (aussi pas près du curseur, mais dans un endroit constant). Qu'est-ce que je fais mal?

Répondre

0

Désolé, il y avait une sortie nulle au milieu. What a fail = (

0

Si votre document met en œuvre IDocumentExtension3, que vous devez définir la partition de votre assistant ..

ca.setDocumentPartitioning(MyPartitionScanner.MyPartitioning); 

Hope this aide

Questions connexes