From 0c6b69c828f3bba503e0e2e3998d9bd118c8a868 Mon Sep 17 00:00:00 2001 From: Martin Lippert Date: Tue, 9 Apr 2019 11:43:48 +0200 Subject: [PATCH] extract inner classes from content-assist proposals and sort proposals by length --- .../boot/xml/TypeCompletionProposalProvider.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/TypeCompletionProposalProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/TypeCompletionProposalProvider.java index 1016c7e95..a74064d18 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/TypeCompletionProposalProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/TypeCompletionProposalProvider.java @@ -57,11 +57,12 @@ public class TypeCompletionProposalProvider implements XMLCompletionProvider { } Flux> types = project.getIndex().fuzzySearchTypes(prefix, true, true); +// Flux> types = project.getIndex().camelcaseSearchTypes(prefix, true, true); - return types.collectSortedList((o1, o2) -> o2.getT2().compareTo(o1.getT2())) - .flatMapIterable(l -> l) + return types .filter(result -> result.getT1() != null && result.getT1().getElementName() != null && result.getT1().getElementName().length() > 0) - .map(t -> createProposal(t, doc, offset, tokenOffset, tokenEnd)).collectList().block(); + .map(t -> createProposal(t, doc, offset, tokenOffset, tokenEnd)) + .collectSortedList((p1, p2) -> ((Integer)p1.getLabel().length()).compareTo((Integer)(p2.getLabel().length()))).block(); }; return null; @@ -71,9 +72,10 @@ public class TypeCompletionProposalProvider implements XMLCompletionProvider { IType type = t.getT1(); String label = type.getFullyQualifiedName(); - int packageIndex = label.lastIndexOf("."); - if (packageIndex > 0) { - label = label.substring(packageIndex + 1) + " - " + label.substring(0, packageIndex); + int splitIndex = Math.max(label.lastIndexOf("."), label.lastIndexOf("$")); + + if (splitIndex > 0) { + label = label.substring(splitIndex + 1) + " - " + label.substring(0, splitIndex); } CompletionItemKind kind;