Pergunta

Eu tenho implementado o meu próprio editor e acrescentou uma funcionalidade de conclusão de código para ele. Meu assistente de conteúdo é registrado na configuração visualizador de fonte como esta:

public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
    if (assistant == null) {
        assistant = new ContentAssistant();
        assistant.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer));
        assistant.setContentAssistProcessor(getMyAssistProcessor(),
                MyPartitionScanner.DESIRED_PARTITION_FOR_MY_ASSISTANCE);
        assistant.enableAutoActivation(true);
        assistant.setAutoActivationDelay(500);
        assistant.setProposalPopupOrientation(IContentAssistant.PROPOSAL_OVERLAY);
        assistant.setContextInformationPopupOrientation(IContentAssistant.CONTEXT_INFO_ABOVE);
    }
    return assistant;
}

Ao pressionar Ctrl + Espaço dentro da partição desejada, aparece conclusão popup e funciona como esperado.

E aqui está a minha pergunta .. Como faço para implementar / registrar um pop-up de documentação que aparece ao lado pop-up conclusão? (Por exemplo, no editor de java)

Foi útil?

Solução

Bem,

Vou answear a pergunta me; -)

Você tem que adicionar esta linha

assistant.setInformationControlCreator(getInformationControlCreator(sourceViewer));

para a configuração acima. Em seguida, ao criar CompletionProposals , o parâmetro oitavo (último) chamado additionalProposalInfo do construtor é o texto que será mostrado no pop-up de documentação.

new CompletionProposal(replacementString,
                          replacementOffset,
                          replacementLength,
                          cursorPosition,
                          image,
                          displayString,
                          contextInformation,
                          additionalProposalInfo);

Mais informações sobre podem ser encontrados aqui .

Fácil, não é .. se você sabe como fazê-lo;)

Outras dicas

Para a caixa de informações com estilo (tal como no JDT).

Styled informações additionnal


  • O DefaultInformationControl necessidade instância para recebeu um HTMLTextPresenter.
  • import org.eclipse.jface.internal.text.html.HTMLTextPresenter;
    
    public class MyConfiguration extends SourceViewerConfiguration {
    
    
        [...]
        public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
            if (assistant == null) {
                [...]
                assistant.setInformationControlCreator(getInformationControlCreator(sourceViewer));
            }
            return assistant;
        }
    
        @Override
        public IInformationControlCreator getInformationControlCreator(ISourceViewer sourceViewer) {
            return new IInformationControlCreator() {
                public IInformationControl createInformationControl(Shell parent) {
                    return new DefaultInformationControl(parent,new HTMLTextPresenter(false));
                }
            };
        }
    }
    

  • As propostas podem então usar tags HTML básicos na cadeia a partir do método getAdditionalProposalInfo () .
  • public class MyProposal implements ICompletionProposal {
        [...]
        @Override
        public String getAdditionalProposalInfo() {
            return "<b>Hello</b> <i>World</i>!";
        }
    }
    
    Licenciado em: CC-BY-SA com atribuição
    Não afiliado a StackOverflow
    scroll top