From bd1743d0694099b3a697292ed94e5acd68d5a6fd Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Mon, 26 Jan 2026 03:51:02 +0200 Subject: [PATCH] Penalised keyword items in autocomplete suggestions --- .../autocomplete/JavaAutocompleteProvider.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/JavaAutocompleteProvider.java b/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/JavaAutocompleteProvider.java index 9a871afbb..81e105b4b 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/JavaAutocompleteProvider.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/autocomplete/JavaAutocompleteProvider.java @@ -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.