2015-04-17 59 views
5

Bir nodeJS çerçevesini desteklemek için bir IntelliJ eklentisi yapıyorum. Otomatik tamamlama özelliğini uygulamaya çalışıyorum ancak listenin en üstünde otomatik tamamlama konumunu nasıl ayarlayacağımı bilmiyorum. Önce diğer otomatik tamamlama (mozilla ect ..) var. Bana yardım edebilecek handleInsert varsayalım amaIntelliJ eklentisi otomatik tamamlama

cevap

0

Sen PrioritizedLookupElement # withPriority aracılığıyla arama elemanları açık yüksek öncelik belirterek deneyebilirsiniz nasıl kullandıklarını bulamıyorum

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

:

İşte benim kodudur.

+1

ben sadece denemek ama pozisyon aynıdır, onlar PrioritizedLookupElement.withPriority ile hiç hareket etmez (arama, LookupValueWithPriority .HIGHER) veya HI GH – jaumard

+0

Daha sonra daha fazla bilgiye ihtiyaç var. Örneğin, DumpLookupElementWeights eylemi tarafından yazdırılan öğe ağırlıkları (arama listesi açıkken ctrl/command + alt + shift + w) –

0

completion.contributor ürününe plugin.xml numaralı telefondan order="first"'u ayarlayabilirsiniz. katkıda bulunuyor ilk çağrıldığında

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

, şunları da konumlandırmak için nasıl yapılacağına karar vermek kod yazabilirsiniz: ilk olma önerilerinizi yol açacak şekilde katkıda başka kaynaklardan önce katkıda çağrılacak yapacak gibi görünüyor öneri veya bazıları dışlamak tamamen CompletionResultSet::runRemainingContributes() ve @ peter-Gromov önerdiği PrioritizedLookupElement::withPriority() kullanarak:

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