本文整理汇总了Java中com.intellij.codeInsight.lookup.LookupElementWeigher类的典型用法代码示例。如果您正苦于以下问题:Java LookupElementWeigher类的具体用法?Java LookupElementWeigher怎么用?Java LookupElementWeigher使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
LookupElementWeigher类属于com.intellij.codeInsight.lookup包,在下文中一共展示了LookupElementWeigher类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: updateResult
import com.intellij.codeInsight.lookup.LookupElementWeigher; //导入依赖的package包/类
@NotNull
private CompletionResultSet updateResult(CompletionParameters params, @NotNull CompletionResultSet result) {
CompletionResultSet completionResultSet = result;
CompletionSorter completionSorter =
CompletionSorter.defaultSorter(params, completionResultSet.getPrefixMatcher())
.weighBefore("priority", new LookupElementWeigher("GraphQLWeight") {
@NotNull
@Override
public Comparable weigh(@NotNull LookupElement element) {
return new LookupElementComparator(element);
}
});
completionResultSet = completionResultSet.withRelevanceSorter(completionSorter);
return completionResultSet;
}
开发者ID:jimkyndemeyer,项目名称:js-graphql-intellij-plugin,代码行数:16,代码来源:JSGraphQLCompletionContributor.java
示例2: recursiveSorter
import com.intellij.codeInsight.lookup.LookupElementWeigher; //导入依赖的package包/类
@Nullable
@RequiredReadAction
private static LookupElementWeigher recursiveSorter(CompletionParameters completionParameters, CompletionResultSet result)
{
PsiElement position = completionParameters.getPosition();
Set<PsiElement> elements = new THashSet<>();
PsiElement argumentListOwner = PsiTreeUtil.getContextOfType(position, CSharpCallArgumentListOwner.class, DotNetVariable.class);
if(argumentListOwner instanceof CSharpMethodCallExpressionImpl)
{
ContainerUtil.addIfNotNull(elements, ((CSharpMethodCallExpressionImpl) argumentListOwner).resolveToCallable());
}
else if(argumentListOwner instanceof DotNetVariable)
{
elements.add(argumentListOwner);
}
List<CSharpForeachStatementImpl> foreachStatements = SyntaxTraverser.psiApi().parents(position).filter(CSharpForeachStatementImpl.class).addAllTo(new ArrayList<>());
for(CSharpForeachStatementImpl foreachStatement : foreachStatements)
{
DotNetExpression iterableExpression = foreachStatement.getIterableExpression();
if(iterableExpression instanceof CSharpReferenceExpression)
{
ContainerUtil.addIfNotNull(elements, ((CSharpReferenceExpression) iterableExpression).resolve());
}
}
if(!elements.isEmpty())
{
return new CSharpRecursiveGuardWeigher(elements);
}
return null;
}
开发者ID:consulo,项目名称:consulo-csharp,代码行数:36,代码来源:CSharpCompletionSorting.java
示例3: modifyResultSet
import com.intellij.codeInsight.lookup.LookupElementWeigher; //导入依赖的package包/类
@RequiredReadAction
public static CompletionResultSet modifyResultSet(CompletionParameters completionParameters, CompletionResultSet result)
{
CompletionSorter sorter = CompletionSorter.defaultSorter(completionParameters, result.getPrefixMatcher());
List<LookupElementWeigher> afterStats = new ArrayList<>();
afterStats.add(new KindSorter());
ContainerUtil.addIfNotNull(afterStats, recursiveSorter(completionParameters, result));
List<LookupElementWeigher> afterProximity = new ArrayList<>();
List<ExpectedTypeInfo> expectedTypeRefs = ExpectedTypeVisitor.findExpectedTypeRefs(completionParameters.getPosition());
if(expectedTypeRefs.isEmpty())
{
expectedTypeRefs = ExpectedTypeVisitor.findExpectedTypeRefs(completionParameters.getPosition().getParent());
}
if(!expectedTypeRefs.isEmpty())
{
afterProximity.add(new ExpectedNameSorter(expectedTypeRefs));
afterProximity.add(new PreferShorter(expectedTypeRefs));
}
afterProximity.add(new NotImportedSorter());
sorter = sorter.weighAfter("stats", afterStats.toArray(new LookupElementWeigher[afterStats.size()]));
sorter = sorter.weighAfter("proximity", afterProximity.toArray(new LookupElementWeigher[afterProximity.size()]));
result = result.withRelevanceSorter(sorter);
return result;
}
开发者ID:consulo,项目名称:consulo-csharp,代码行数:31,代码来源:CSharpCompletionSorting.java
示例4: recursion
import com.intellij.codeInsight.lookup.LookupElementWeigher; //导入依赖的package包/类
@Nullable
private static LookupElementWeigher recursion(CompletionParameters parameters, final ExpectedTypeInfo[] expectedInfos)
{
final PsiElement position = parameters.getPosition();
final PsiMethodCallExpression expression = PsiTreeUtil.getParentOfType(position, PsiMethodCallExpression.class, true, PsiClass.class);
final PsiReferenceExpression reference = expression != null ? expression.getMethodExpression() : PsiTreeUtil.getParentOfType(position, PsiReferenceExpression.class);
if(reference == null)
{
return null;
}
return new RecursionWeigher(position, parameters.getCompletionType(), reference, expression, expectedInfos);
}
开发者ID:consulo,项目名称:consulo-java,代码行数:14,代码来源:JavaCompletionSorting.java
示例5: addJavaSorting
import com.intellij.codeInsight.lookup.LookupElementWeigher; //导入依赖的package包/类
public static CompletionResultSet addJavaSorting(final CompletionParameters parameters, CompletionResultSet result)
{
PsiElement position = parameters.getPosition();
ExpectedTypeInfo[] expectedTypes = getExpectedTypesWithDfa(parameters, position);
CompletionType type = parameters.getCompletionType();
boolean smart = type == CompletionType.SMART;
boolean afterNew = JavaSmartCompletionContributor.AFTER_NEW.accepts(position);
List<LookupElementWeigher> afterProximity = new ArrayList<>();
afterProximity.add(new PreferContainingSameWords(expectedTypes));
afterProximity.add(new PreferShorter(expectedTypes));
CompletionSorter sorter = CompletionSorter.defaultSorter(parameters, result.getPrefixMatcher());
if(!smart && afterNew)
{
sorter = sorter.weighBefore("liftShorter", new PreferExpected(true, expectedTypes, position));
}
else if(PsiTreeUtil.getParentOfType(position, PsiReferenceList.class) == null)
{
sorter = ((CompletionSorterImpl) sorter).withClassifier("liftShorterClasses", true, new LiftShorterClasses(position));
}
if(smart)
{
sorter = sorter.weighAfter("priority", new PreferDefaultTypeWeigher(expectedTypes, parameters));
}
final PreferMostUsedWeigher preferMostUsedWeigher = PreferMostUsedWeigher.create(position);
List<LookupElementWeigher> afterStats = ContainerUtil.newArrayList();
afterStats.add(new PreferByKindWeigher(type, position, expectedTypes));
if(!smart)
{
if(preferMostUsedWeigher == null)
{
ContainerUtil.addIfNotNull(afterStats, preferStatics(position, expectedTypes));
}
if(!afterNew)
{
afterStats.add(new PreferExpected(false, expectedTypes, position));
}
}
if(preferMostUsedWeigher != null)
{
afterStats.add(preferMostUsedWeigher);
ContainerUtil.addIfNotNull(afterStats, preferStatics(position, expectedTypes));
}
ContainerUtil.addIfNotNull(afterStats, recursion(parameters, expectedTypes));
afterStats.add(new PreferSimilarlyEnding(expectedTypes));
if(ContainerUtil.or(expectedTypes, info -> !info.getType().equals(PsiType.VOID)))
{
afterStats.add(new PreferNonGeneric());
}
Collections.addAll(afterStats, new PreferAccessible(position), new PreferSimple());
sorter = sorter.weighAfter("stats", afterStats.toArray(new LookupElementWeigher[afterStats.size()]));
sorter = sorter.weighAfter("proximity", afterProximity.toArray(new LookupElementWeigher[afterProximity.size()]));
return result.withRelevanceSorter(sorter);
}
开发者ID:consulo,项目名称:consulo-java,代码行数:58,代码来源:JavaCompletionSorting.java
示例6: preferStatics
import com.intellij.codeInsight.lookup.LookupElementWeigher; //导入依赖的package包/类
@Nullable
private static LookupElementWeigher preferStatics(PsiElement position, final ExpectedTypeInfo[] infos)
{
if(PsiTreeUtil.getParentOfType(position, PsiDocComment.class) != null)
{
return null;
}
if(position.getParent() instanceof PsiReferenceExpression)
{
final PsiReferenceExpression refExpr = (PsiReferenceExpression) position.getParent();
final PsiElement qualifier = refExpr.getQualifier();
if(qualifier == null)
{
return null;
}
if(!(qualifier instanceof PsiJavaCodeReferenceElement) || !(((PsiJavaCodeReferenceElement) qualifier).resolve() instanceof PsiClass))
{
return null;
}
}
return new LookupElementWeigher("statics")
{
@NotNull
@Override
public Comparable weigh(@NotNull LookupElement element)
{
final Object o = element.getObject();
if(o instanceof PsiKeyword)
{
return -3;
}
if(!(o instanceof PsiMember) || element.getUserData(JavaGenerateMemberCompletionContributor.GENERATE_ELEMENT) != null)
{
return 0;
}
if(((PsiMember) o).hasModifierProperty(PsiModifier.STATIC) && !hasNonVoid(infos))
{
if(o instanceof PsiMethod)
{
return -5;
}
if(o instanceof PsiField)
{
return -4;
}
}
if(o instanceof PsiClass)
{
return -3;
}
//instance method or field
return -5;
}
};
}
开发者ID:consulo,项目名称:consulo-java,代码行数:60,代码来源:JavaCompletionSorting.java
示例7: weighBefore
import com.intellij.codeInsight.lookup.LookupElementWeigher; //导入依赖的package包/类
public abstract CompletionSorter weighBefore(@NotNull String beforeId, LookupElementWeigher... weighers);
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:2,代码来源:CompletionSorter.java
示例8: weighAfter
import com.intellij.codeInsight.lookup.LookupElementWeigher; //导入依赖的package包/类
public abstract CompletionSorter weighAfter(@NotNull String afterId, LookupElementWeigher... weighers);
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:2,代码来源:CompletionSorter.java
示例9: weigh
import com.intellij.codeInsight.lookup.LookupElementWeigher; //导入依赖的package包/类
public abstract CompletionSorter weigh(LookupElementWeigher weigher);
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:2,代码来源:CompletionSorter.java
示例10: weighBefore
import com.intellij.codeInsight.lookup.LookupElementWeigher; //导入依赖的package包/类
public abstract CompletionSorter weighBefore(@Nonnull String beforeId, LookupElementWeigher... weighers);
开发者ID:consulo,项目名称:consulo,代码行数:2,代码来源:CompletionSorter.java
示例11: weighAfter
import com.intellij.codeInsight.lookup.LookupElementWeigher; //导入依赖的package包/类
public abstract CompletionSorter weighAfter(@Nonnull String afterId, LookupElementWeigher... weighers);
开发者ID:consulo,项目名称:consulo,代码行数:2,代码来源:CompletionSorter.java
注:本文中的com.intellij.codeInsight.lookup.LookupElementWeigher类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论