Add debug names for keyword completion contributors
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user