Pregunta

He implementado mi propio editor y añadido una funcionalidad de finalización de código a la misma. Mi asistente contenido se ha registrado en la configuración de vista de fuentes de la siguiente manera:

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

Cuando presione Ctrl + Espacio dentro de la partición deseada, aparece la ventana emergente de finalización y funciona como se esperaba.

Y aquí está mi pregunta .. ¿Cómo implemento / registrar un popup documentación que aparece junto a la finalización emergente? (Por ejemplo, en editor java)

¿Fue útil?

Solución

Bueno,

Voy a answear la pregunta a mí mismo; -)

Hay que añadir esta línea

assistant.setInformationControlCreator(getInformationControlCreator(sourceViewer));

a la configuración anterior. Luego, cuando la creación de CompletionProposals , el octavo (último) parámetro llamado additionalProposalInfo del constructor es el texto que se mostrará en la ventana emergente de la documentación.

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

Más información sobre se puede encontrar aquí .

Fácil, ¿no es así .. si usted sabe cómo hacerlo;)

Otros consejos

En el cuadro de información de estilo (al igual que en JDT).

labrado información additionnal


  • La DefaultInformationControl ejemplo necesitan recibido una 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));
                }
            };
        }
    }
    

  • Las propuestas se pueden utilizar las etiquetas HTML básicas en la cadena del método getAdditionalProposalInfo () .
  • public class MyProposal implements ICompletionProposal {
        [...]
        @Override
        public String getAdditionalProposalInfo() {
            return "<b>Hello</b> <i>World</i>!";
        }
    }
    
    Licenciado bajo: CC-BY-SA con atribución
    No afiliado a StackOverflow
    scroll top