Penalised keyword items in autocomplete suggestions

This commit is contained in:
bigguy345 committed 2026-01-26 03:51:02 +02:00
1 parent 76b6dae9d4
commit bd1743d069
1 file changed
+15
@@ -368,6 +368,7 @@ public class JavaAutocompleteProvider implements AutocompleteProvider {
applyUsageBoost(item, tracker, ownerFullName);
applyStaticPenalty(item, isMemberAccess, isStaticContext);
applyObjectMethodPenalty(item);
applyKeywordPenalty(item, prefix);
}
return;
}
@@ -387,6 +388,7 @@ public class JavaAutocompleteProvider implements AutocompleteProvider {
applyUsageBoost(item, tracker, ownerFullName);
applyStaticPenalty(item, isMemberAccess, isStaticContext);
applyObjectMethodPenalty(item);
applyKeywordPenalty(item, prefix);
}
}
}
@@ -454,6 +456,19 @@ public class JavaAutocompleteProvider implements AutocompleteProvider {
item.addScoreBoost(-10000);
}
}
/**
* Push keywords below non-keywords unless user typed a longer prefix.
*/
protected void applyKeywordPenalty(AutocompleteItem item, String prefix) {
if (item.getKind() != AutocompleteItem.Kind.KEYWORD) {
return;
}
if (prefix == null || prefix.length() < 2) {
item.addScoreBoost(-10000);
}
}
/**
* Builder class for AutocompleteItem to handle cases without source data.