diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/ICompletionProposal.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/ICompletionProposal.java index 474cb39e49..e0683cdc46 100644 --- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/ICompletionProposal.java +++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/ICompletionProposal.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2016, 2019 Pivotal, Inc. + * Copyright (c) 2016, 2025 Pivotal, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -16,6 +16,7 @@ import org.eclipse.lsp4j.Command; import org.eclipse.lsp4j.CompletionItemKind; +import org.eclipse.lsp4j.CompletionItemLabelDetails; import org.springframework.ide.vscode.commons.util.Renderable; /** @@ -63,4 +64,8 @@ default Optional getCommand() { return Optional.empty(); } + default CompletionItemLabelDetails getLabelDetails() { + return null; + } + } diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/VscodeCompletionEngineAdapter.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/VscodeCompletionEngineAdapter.java index 382426a806..0156129b62 100644 --- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/VscodeCompletionEngineAdapter.java +++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/VscodeCompletionEngineAdapter.java @@ -281,6 +281,7 @@ private CompletionItem adaptItem(TextDocument doc, ICompletionProposal completio item.setSortText(sortkeys.next()); item.setFilterText(completion.getFilterText()); item.setInsertTextMode(InsertTextMode.AsIs); + item.setLabelDetails(completion.getLabelDetails()); if (completion.isDeprecated()) { item.setTags(List.of(CompletionItemTag.Deprecated)); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/BeanCompletionProposal.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/BeanCompletionProposal.java index 335556c772..187612273b 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/BeanCompletionProposal.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/BeanCompletionProposal.java @@ -16,6 +16,8 @@ import org.eclipse.lsp4j.Command; import org.eclipse.lsp4j.CompletionItemKind; +import org.eclipse.lsp4j.CompletionItemLabelDetails; +import org.openrewrite.java.tree.JavaType; import org.springframework.ide.vscode.boot.java.rewrite.RewriteRefactorings; import org.springframework.ide.vscode.commons.languageserver.completion.DocumentEdits; import org.springframework.ide.vscode.commons.languageserver.completion.ICompletionProposalWithScore; @@ -32,6 +34,8 @@ */ public class BeanCompletionProposal implements ICompletionProposalWithScore { + private static final String DETAIL = " - autowire bean"; + private DocumentEdits edits; private IDocument doc; private String beanId; @@ -54,12 +58,12 @@ public BeanCompletionProposal(DocumentEdits edits, IDocument doc, String beanId, @Override public String getLabel() { - return this.beanId; + return beanId; } @Override public CompletionItemKind getKind() { - return CompletionItemKind.Constructor; + return CompletionItemKind.Field; } @Override @@ -71,6 +75,14 @@ public DocumentEdits getTextEdit() { public String getDetail() { return "Autowire a bean"; } + + @Override + public CompletionItemLabelDetails getLabelDetails() { + CompletionItemLabelDetails labelDetails = new CompletionItemLabelDetails(); + labelDetails.setDetail(DETAIL); + labelDetails.setDescription(JavaType.ShallowClass.build(beanType).getClassName()); + return labelDetails; + } @Override public Renderable getDocumentation() {