2015-04-17 14 views
5

Realizzo un plug-in IntelliJ per supportare un framework nodeJS. Sto cercando di implementare la funzione di completamento automatico ma non so come impostare la posizione di completamento automatico in cima all'elenco. Per prima cosa ho un altro autocompletamento (mozilla ect ..).Completamento automatico del plug-in IntelliJ

Ecco il mio codice:

LookupElementBuilder 
       .create(completionString) 
       .withBoldness(true) 
       .withCaseSensitivity(false) 
       .withIcon(SailsJSIcons.SailsJS) 
       .withPresentableText("\t\t\t" + item) 
       .withAutoCompletionPolicy(AutoCompletionPolicy.GIVE_CHANCE_TO_OVERWRITE); 

suppongo handleInsert mi può aiutare, ma non riesco a trovare come si usa

risposta

0

È possibile provare a specificare esplicita priorità per gli elementi di ricerca tramite PrioritizedLookupElement # withPriority.

+1

cerco solo ma la posizione sono le stesse, che non si muove affatto con PrioritizedLookupElement.withPriority (ricerca, LookupValueWithPriority .HIGHER) o HI GH – jaumard

+0

Quindi sono necessarie ulteriori informazioni. Ad esempio, il peso dell'articolo come stampato dall'azione DumpLookupElementWeights (ctrl/comando + alt + maiusc + w quando l'elenco di ricerca è aperto) –

0

È possibile impostare order="first" su completion.contributor nello plugin.xml. Sembra che renderà il vostro collaboratore essere chiamato prima collaboratori provenienti da altre fonti, con conseguente vostri suggerimenti essere prima:

<extensions defaultExtensionNs="com.intellij"> 
    <completion.contributor order="first" language="PHP" implementationClass="org.klesun.deep_assoc_completion.entry.DeepKeysCbtr"/> 

Quando il collaboratore è chiamato per primo, si può anche scrivere il codice per decidere come posizionare seguente suggerimenti o di escludere alcuni di loro del tutto utilizzando CompletionResultSet::runRemainingContributes() e il PrioritizedLookupElement::withPriority() suggerito da @ peter-Gromov:

protected void addCompletions(CompletionParameters parameters, ProcessingContext processingContext, CompletionResultSet result) 
{ 
    // ... some of your code here ... 

    result.runRemainingContributors(parameters, otherSourceResult -> { 
     // 2000 is any number - make it smaller than on your suggestion to position this suggestion lower 
     result.addElement(PrioritizedLookupElement.withPriority(otherSourceResult.getLookupElement(), 2000)); 
    }); 
} 
Problemi correlati