Add debug names for keyword completion contributors

This commit is contained in:
Nikolay Krasko
2013-04-11 14:38:03 +04:00
parent f3e7ec81dc
commit 3963eb0d5e
@@ -232,8 +232,11 @@ public class JetKeywordCompletionContributor extends CompletionContributor {
public static class KeywordsCompletionProvider extends CompletionProvider<CompletionParameters> { public static class KeywordsCompletionProvider extends CompletionProvider<CompletionParameters> {
private final Collection<LookupElement> elements; private final Collection<LookupElement> elements;
private final String debugName;
public KeywordsCompletionProvider(String debugName, String... keywords) {
this.debugName = debugName;
public KeywordsCompletionProvider(String... keywords) {
List<String> elementsList = Lists.newArrayList(keywords); List<String> elementsList = Lists.newArrayList(keywords);
elements = Collections2.transform(elementsList, new Function<String, LookupElement>() { elements = Collections2.transform(elementsList, new Function<String, LookupElement>() {
@Override @Override
@@ -258,10 +261,15 @@ public class JetKeywordCompletionContributor extends CompletionContributor {
@NotNull CompletionResultSet result) { @NotNull CompletionResultSet result) {
result.withPrefixMatcher(new SimplePrefixMatcher(result.getPrefixMatcher().getPrefix())).addAllElements(elements); result.withPrefixMatcher(new SimplePrefixMatcher(result.getPrefixMatcher().getPrefix())).addAllElements(elements);
} }
@Override
public String toString() {
return debugName;
}
} }
public JetKeywordCompletionContributor() { public JetKeywordCompletionContributor() {
registerScopeKeywordsCompletion(new InTopFilter(), registerScopeKeywordsCompletion(InTopFilter.class.getName(), new InTopFilter(),
ABSTRACT_KEYWORD, ABSTRACT_KEYWORD,
FINAL_KEYWORD, GET_KEYWORD, FINAL_KEYWORD, GET_KEYWORD,
IMPORT_KEYWORD, INLINE_KEYWORD, INTERNAL_KEYWORD, IMPORT_KEYWORD, INLINE_KEYWORD, INTERNAL_KEYWORD,
@@ -269,15 +277,15 @@ public class JetKeywordCompletionContributor extends CompletionContributor {
PROTECTED_KEYWORD, PUBLIC_KEYWORD, SET_KEYWORD, PROTECTED_KEYWORD, PUBLIC_KEYWORD, SET_KEYWORD,
TYPE_KEYWORD); TYPE_KEYWORD);
// In modifier list but not in parameters
registerScopeKeywordsCompletion( registerScopeKeywordsCompletion(
"In modifier list but not in parameters",
new AndFilter( new AndFilter(
new SuperParentFilter(new ClassFilter(JetModifierList.class)), new SuperParentFilter(new ClassFilter(JetModifierList.class)),
new NotFilter(new InTypeParameterFirstChildFilter())), new NotFilter(new InTypeParameterFirstChildFilter())),
ABSTRACT_KEYWORD, FINAL_KEYWORD, INLINE_KEYWORD, INTERNAL_KEYWORD, ABSTRACT_KEYWORD, FINAL_KEYWORD, INLINE_KEYWORD, INTERNAL_KEYWORD,
OPEN_KEYWORD, PRIVATE_KEYWORD, PROTECTED_KEYWORD, PUBLIC_KEYWORD); OPEN_KEYWORD, PRIVATE_KEYWORD, PROTECTED_KEYWORD, PUBLIC_KEYWORD);
registerScopeKeywordsCompletion(new InClassBodyFilter(), registerScopeKeywordsCompletion(InClassBodyFilter.class.getName(), new InClassBodyFilter(),
ABSTRACT_KEYWORD, ABSTRACT_KEYWORD,
FINAL_KEYWORD, GET_KEYWORD, FINAL_KEYWORD, GET_KEYWORD,
INLINE_KEYWORD, INTERNAL_KEYWORD, INLINE_KEYWORD, INTERNAL_KEYWORD,
@@ -285,7 +293,7 @@ public class JetKeywordCompletionContributor extends CompletionContributor {
PROTECTED_KEYWORD, PUBLIC_KEYWORD, SET_KEYWORD, PROTECTED_KEYWORD, PUBLIC_KEYWORD, SET_KEYWORD,
TYPE_KEYWORD); TYPE_KEYWORD);
registerScopeKeywordsCompletion(new InNonClassBlockFilter(), registerScopeKeywordsCompletion(InNonClassBlockFilter.class.getName(), new InNonClassBlockFilter(),
AS_KEYWORD, BREAK_KEYWORD, BY_KEYWORD, AS_KEYWORD, BREAK_KEYWORD, BY_KEYWORD,
CATCH_KEYWORD, CONTINUE_KEYWORD, CATCH_KEYWORD, CONTINUE_KEYWORD,
ELSE_KEYWORD, ELSE_KEYWORD,
@@ -300,50 +308,51 @@ public class JetKeywordCompletionContributor extends CompletionContributor {
TYPE_KEYWORD, TYPE_KEYWORD,
VARARG_KEYWORD, WHERE_KEYWORD); VARARG_KEYWORD, WHERE_KEYWORD);
registerScopeKeywordsCompletion(new InPropertyBodyFilter(), registerScopeKeywordsCompletion(InPropertyBodyFilter.class.getName(), new InPropertyBodyFilter(),
ELSE_KEYWORD, FALSE_KEYWORD, ELSE_KEYWORD, FALSE_KEYWORD,
NULL_KEYWORD, THIS_KEYWORD, TRUE_KEYWORD); NULL_KEYWORD, THIS_KEYWORD, TRUE_KEYWORD);
registerScopeKeywordsCompletion(new InTypeParameterFirstChildFilter(), false, IN_KEYWORD, OUT_KEYWORD); registerScopeKeywordsCompletion(InTypeParameterFirstChildFilter.class.getName(), new InTypeParameterFirstChildFilter(), false,
IN_KEYWORD, OUT_KEYWORD);
// templates // templates
registerScopeKeywordsCompletion(new InWhenFilter(), registerScopeKeywordsCompletion(InWhenFilter.class.getName(), new InWhenFilter(),
WHEN_ENTRY_TEMPLATE); WHEN_ENTRY_TEMPLATE);
registerScopeKeywordsCompletion(new InTopFilter(), registerScopeKeywordsCompletion(InTopFilter.class.getName(), new InTopFilter(),
FUN_TEMPLATE, VAL_WITH_TYPE_TEMPLATE, VAL_WITH_GETTER_TEMPLATE, FUN_TEMPLATE, VAL_WITH_TYPE_TEMPLATE, VAL_WITH_GETTER_TEMPLATE,
VAR_WITH_TYPE_TEMPLATE, VAR_WITH_GETTER_AND_SETTER_TEMPLATE, VAR_WITH_TYPE_TEMPLATE, VAR_WITH_GETTER_AND_SETTER_TEMPLATE,
TRAIT_TEMPLATE, CLASS_TEMPLATE, ENUM_CLASS_TEMPLATE); TRAIT_TEMPLATE, CLASS_TEMPLATE, ENUM_CLASS_TEMPLATE);
registerScopeKeywordsCompletion(new InClassBodyFilter(), registerScopeKeywordsCompletion(InClassBodyFilter.class.getName(), new InClassBodyFilter(),
FUN_TEMPLATE, VAL_WITH_TYPE_TEMPLATE, VAL_WITH_GETTER_TEMPLATE, FUN_TEMPLATE, VAL_WITH_TYPE_TEMPLATE, VAL_WITH_GETTER_TEMPLATE,
VAR_WITH_TYPE_TEMPLATE, VAR_WITH_GETTER_AND_SETTER_TEMPLATE, VAR_WITH_TYPE_TEMPLATE, VAR_WITH_GETTER_AND_SETTER_TEMPLATE,
TRAIT_TEMPLATE, CLASS_TEMPLATE, CLASS_OBJECT_TEMPLATE, TRAIT_TEMPLATE, CLASS_TEMPLATE, CLASS_OBJECT_TEMPLATE,
ENUM_CLASS_TEMPLATE); ENUM_CLASS_TEMPLATE);
registerScopeKeywordsCompletion(new InNonClassBlockFilter(), registerScopeKeywordsCompletion(InNonClassBlockFilter.class.getName(), new InNonClassBlockFilter(),
IF_TEMPLATE, IF_ELSE_TEMPLATE, IF_ELSE_ONE_LINE_TEMPLATE, IF_TEMPLATE, IF_ELSE_TEMPLATE, IF_ELSE_ONE_LINE_TEMPLATE,
FUN_TEMPLATE, VAL_SIMPLE_TEMPLATE, VAR_SIMPLE_TEMPLATE, FUN_TEMPLATE, VAL_SIMPLE_TEMPLATE, VAR_SIMPLE_TEMPLATE,
TRAIT_TEMPLATE, CLASS_TEMPLATE, FOR_TEMPLATE, TRAIT_TEMPLATE, CLASS_TEMPLATE, FOR_TEMPLATE,
WHEN_TEMPLATE, WHILE_TEMPLATE, DO_WHILE_TEMPLATE, ENUM_CLASS_TEMPLATE); WHEN_TEMPLATE, WHILE_TEMPLATE, DO_WHILE_TEMPLATE, ENUM_CLASS_TEMPLATE);
registerScopeKeywordsCompletion(new InPropertyBodyFilter(), registerScopeKeywordsCompletion(InPropertyBodyFilter.class.getName(), new InPropertyBodyFilter(),
IF_ELSE_ONE_LINE_TEMPLATE, WHEN_TEMPLATE); IF_ELSE_ONE_LINE_TEMPLATE, WHEN_TEMPLATE);
registerScopeKeywordsCompletion(new AfterClassInClassBodyFilter(), false, registerScopeKeywordsCompletion(AfterClassInClassBodyFilter.class.getName(), new AfterClassInClassBodyFilter(), false,
CLASS_OBJECT_WITHOUT_CLASS_TEMPLATE); CLASS_OBJECT_WITHOUT_CLASS_TEMPLATE);
} }
private void registerScopeKeywordsCompletion(ElementFilter placeFilter, boolean notIdentifier, String... keywords) { private void registerScopeKeywordsCompletion(String debugName, ElementFilter placeFilter, boolean notIdentifier, String... keywords) {
extend(CompletionType.BASIC, getPlacePattern(placeFilter, notIdentifier), extend(CompletionType.BASIC, getPlacePattern(placeFilter, notIdentifier),
new KeywordsCompletionProvider(keywords)); new KeywordsCompletionProvider(debugName, keywords));
} }
private void registerScopeKeywordsCompletion(ElementFilter placeFilter, boolean notIdentifier, JetToken... keywords) { private void registerScopeKeywordsCompletion(String debugName, ElementFilter placeFilter, boolean notIdentifier, JetToken... keywords) {
registerScopeKeywordsCompletion(placeFilter, notIdentifier, convertTokensToStrings(keywords)); registerScopeKeywordsCompletion(debugName, placeFilter, notIdentifier, convertTokensToStrings(keywords));
} }
private void registerScopeKeywordsCompletion(ElementFilter placeFilter, String... keywords) { private void registerScopeKeywordsCompletion(String debugName, ElementFilter placeFilter, String... keywords) {
registerScopeKeywordsCompletion(placeFilter, true, keywords); registerScopeKeywordsCompletion(debugName, placeFilter, true, keywords);
} }
private void registerScopeKeywordsCompletion(ElementFilter placeFilter, JetToken... keywords) { private void registerScopeKeywordsCompletion(String debugName, ElementFilter placeFilter, JetToken... keywords) {
registerScopeKeywordsCompletion(placeFilter, convertTokensToStrings(keywords)); registerScopeKeywordsCompletion(debugName, placeFilter, convertTokensToStrings(keywords));
} }
private static String[] convertTokensToStrings(JetToken... keywords) { private static String[] convertTokensToStrings(JetToken... keywords) {