Domanda

Ho implementato il mio editore e ha aggiunto una funzionalità di completamento del codice ad esso. Il mio assistente contenuto è registrato in configurazione visualizzatore sorgente in questo modo:

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

Quando si preme Ctrl + SPAZIO all'interno della partizione desiderata, appare il popup di completamento e funziona come previsto.

Ed ecco la mia domanda .. Come faccio a implementare / registrare un pop-up di documentazione che appare accanto al completamento popup? (Per esempio in Java editor)

È stato utile?

Soluzione

Bene,

Io answear la domanda che mi; -)

È necessario aggiungere questa riga

assistant.setInformationControlCreator(getInformationControlCreator(sourceViewer));

per la configurazione di cui sopra. Poi, quando la creazione di CompletionProposals , (l'ultimo) parametro ottavo chiamato additionalProposalInfo del costruttore è il testo, che sarà mostrato nel popup documentazione.

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

Maggiori informazioni su si possono trovare qui .

facile, non è vero .. se sai come farlo;)

Altri suggerimenti

Per la casella informazioni in stile (proprio come in JDT).

Styled informazioni additionnal


  • Il DefaultInformationControl esempio bisogno di ricevuto un 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));
                }
            };
        }
    }
    

  • Le proposte possono quindi utilizzare i tag HTML di base nella stringa da metodo di getAdditionalProposalInfo () .
  • public class MyProposal implements ICompletionProposal {
        [...]
        @Override
        public String getAdditionalProposalInfo() {
            return "<b>Hello</b> <i>World</i>!";
        }
    }
    
    Autorizzato sotto: CC-BY-SA insieme a attribuzione
    Non affiliato a StackOverflow
    scroll top