Skip to content

Commit 560624a

Browse files
authored
Filter Completions from Object Mappers (#334)
* Filter Completions from Object Mappers * Review * fix --------- Co-authored-by: brachy84
1 parent f1e2cf7 commit 560624a

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

src/main/java/com/cleanroommc/groovyscript/server/Completions.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,17 @@
1010

1111
import java.util.ArrayList;
1212
import java.util.List;
13+
import java.util.Locale;
1314
import java.util.function.Function;
1415

1516
public class Completions extends ArrayList<CompletionItem> {
1617

1718
private final int limit;
19+
private String filter;
1820

1921
public Completions(int limit) {
2022
this.limit = limit;
23+
this.filter = null;
2124
}
2225

2326
public int getLimit() {
@@ -28,6 +31,18 @@ public boolean reachedLimit() {
2831
return size() >= this.limit;
2932
}
3033

34+
public void setFilter(String filter) {
35+
this.filter = filter.toLowerCase(Locale.ENGLISH);
36+
}
37+
38+
@Override
39+
public boolean add(CompletionItem item) {
40+
if (filter == null || item.getLabel().toLowerCase(Locale.ENGLISH).contains(filter)) {
41+
return super.add(item);
42+
}
43+
return false;
44+
}
45+
3146
public <V> void addAll(Iterable<V> values, Function<V, @Nullable CompletionItem> toCompletionItem) {
3247
for (V v : values) {
3348
if (reachedLimit()) break;

src/main/java/net/prominic/groovyls/providers/CompletionProvider.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ private boolean populateItemsFromConstantExpression(ConstantExpression node, AST
197197
break;
198198
}
199199
}
200+
items.setFilter(node.getText());
200201
mapper.provideCompletion(index, params, items);
201202
}
202203
}

0 commit comments

Comments
 (0)