From a6c8675f2a6e539d48982572fbb042db8a173c90 Mon Sep 17 00:00:00 2001 From: Martin Lippert Date: Mon, 15 Jul 2024 16:45:53 +0200 Subject: [PATCH] refactor to more generic proposal implementation for annotation attribute proposals --- ...nnotationAttributeCompletionProcessor.java | 3 +- ...nnotationAttributeCompletionProposal.java} | 6 +- .../beans/DependsOnCompletionProposal.java | 62 ------------------- .../java/value/ValueCompletionProcessor.java | 4 +- 4 files changed, 6 insertions(+), 69 deletions(-) rename headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/{beans/QualifierCompletionProposal.java => annotations/AnnotationAttributeCompletionProposal.java} (85%) delete mode 100644 headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/DependsOnCompletionProposal.java diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationAttributeCompletionProcessor.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationAttributeCompletionProcessor.java index 2a77afa39..9c2d31b0d 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationAttributeCompletionProcessor.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationAttributeCompletionProcessor.java @@ -26,7 +26,6 @@ import org.eclipse.jdt.core.dom.ITypeBinding; import org.eclipse.jdt.core.dom.MemberValuePair; import org.eclipse.jdt.core.dom.SimpleName; import org.eclipse.jdt.core.dom.StringLiteral; -import org.springframework.ide.vscode.boot.java.beans.QualifierCompletionProposal; import org.springframework.ide.vscode.boot.java.handlers.CompletionProvider; import org.springframework.ide.vscode.commons.java.IJavaProject; import org.springframework.ide.vscode.commons.languageserver.completion.DocumentEdits; @@ -124,7 +123,7 @@ public class AnnotationAttributeCompletionProcessor implements CompletionProvide DocumentEdits edits = new DocumentEdits(doc, false); edits.replace(startOffset, endOffset, createReplacementText.apply(candidate)); - QualifierCompletionProposal proposal = new QualifierCompletionProposal(edits, candidate, candidate, null, score--); + AnnotationAttributeCompletionProposal proposal = new AnnotationAttributeCompletionProposal(edits, candidate, candidate, null, score--); completions.add(proposal); } } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/QualifierCompletionProposal.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationAttributeCompletionProposal.java similarity index 85% rename from headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/QualifierCompletionProposal.java rename to headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationAttributeCompletionProposal.java index 1a7dd3a59..de8b0b701 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/QualifierCompletionProposal.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationAttributeCompletionProposal.java @@ -8,7 +8,7 @@ * Contributors: * Broadcom - initial API and implementation *******************************************************************************/ -package org.springframework.ide.vscode.boot.java.beans; +package org.springframework.ide.vscode.boot.java.annotations; import org.eclipse.lsp4j.CompletionItemKind; import org.springframework.ide.vscode.commons.languageserver.completion.DocumentEdits; @@ -18,7 +18,7 @@ import org.springframework.ide.vscode.commons.util.Renderable; /** * @author Martin Lippert */ -public class QualifierCompletionProposal extends ScoreableProposal { +public class AnnotationAttributeCompletionProposal extends ScoreableProposal { private static final String EMPTY_DETAIL = ""; @@ -28,7 +28,7 @@ public class QualifierCompletionProposal extends ScoreableProposal { private final Renderable documentation; private final double score; - public QualifierCompletionProposal(DocumentEdits edits, String label, String detail, Renderable documentation, double score) { + public AnnotationAttributeCompletionProposal(DocumentEdits edits, String label, String detail, Renderable documentation, double score) { this.edits = edits; this.label = label; this.detail = detail == null ? EMPTY_DETAIL : detail; diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/DependsOnCompletionProposal.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/DependsOnCompletionProposal.java deleted file mode 100644 index 7d5cf8a39..000000000 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/DependsOnCompletionProposal.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2024 Broadcom - * 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 - * https://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Broadcom - initial API and implementation - *******************************************************************************/ -package org.springframework.ide.vscode.boot.java.beans; - -import org.eclipse.lsp4j.CompletionItemKind; -import org.springframework.ide.vscode.commons.languageserver.completion.DocumentEdits; -import org.springframework.ide.vscode.commons.languageserver.completion.ICompletionProposal; -import org.springframework.ide.vscode.commons.util.Renderable; - -/** - * @author Martin Lippert - */ -public class DependsOnCompletionProposal implements ICompletionProposal { - - private static final String EMPTY_DETAIL = ""; - - private DocumentEdits edits; - private String label; - private String detail; - private Renderable documentation; - - public DependsOnCompletionProposal(DocumentEdits edits, String label, String detail, Renderable documentation) { - this.edits = edits; - this.label = label; - this.detail = detail == null ? EMPTY_DETAIL : detail; - this.documentation = documentation; - } - - @Override - public String getLabel() { - return this.label; - } - - @Override - public CompletionItemKind getKind() { - return CompletionItemKind.Value; - } - - @Override - public DocumentEdits getTextEdit() { - return this.edits; - } - - @Override - public String getDetail() { - return this.detail; - } - - @Override - public Renderable getDocumentation() { - return this.documentation; - } - -} diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/value/ValueCompletionProcessor.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/value/ValueCompletionProcessor.java index 4bb82f1fc..7f39dbe8c 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/value/ValueCompletionProcessor.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/value/ValueCompletionProcessor.java @@ -30,7 +30,7 @@ import org.eclipse.jdt.core.dom.StringLiteral; import org.eclipse.lsp4j.TextDocumentIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.ide.vscode.boot.java.beans.QualifierCompletionProposal; +import org.springframework.ide.vscode.boot.java.annotations.AnnotationAttributeCompletionProposal; import org.springframework.ide.vscode.boot.java.handlers.CompletionProvider; import org.springframework.ide.vscode.boot.metadata.ProjectBasedPropertyIndexProvider; import org.springframework.ide.vscode.boot.metadata.PropertyInfo; @@ -148,7 +148,7 @@ public class ValueCompletionProcessor implements CompletionProvider { String label = "classpath:" + resource; - ICompletionProposal proposal = new QualifierCompletionProposal(edits, label, label, null, score--); + ICompletionProposal proposal = new AnnotationAttributeCompletionProposal(edits, label, label, null, score--); completions.add(proposal); }