0

我正在尝试向我的编辑器添加内容辅助。我已经添加

    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;
}

编辑器配置,然后完成处理器类:

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";
}

}

...但它不起作用。初始化正常,但自动激活不起作用,当我按 ctrl-space(我已将 org.eclipse.ui.edit.text.contentAssist.proposals 命令添加到 Bindings 分机点)出现空列表(也是不在光标附近,而是在某个固定位置)。我究竟做错了什么?

4

3 回答 3

0

如果您的文档实现IDocumentExtension3,那么您必须设置助手的分区..

ca.setDocumentPartitioning(MyPartitionScanner.MyPartitioning);

希望这有帮助

于 2009-05-20T10:29:09.660 回答
0

您应该在编辑器中注册您的操作并替换默认操作。这是一个如何使用内容辅助操作的示例。

http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/editors_actions.htm

于 2009-08-09T17:48:01.460 回答
0

抱歉,中间有一些空输出。多么失败=(

于 2011-01-19T09:48:18.650 回答