GH-1375: added ast node to signature of annotation completion providers to prepare for deeper analysis features

This commit is contained in:
Martin Lippert
2024-10-11 13:11:43 +02:00
parent 54d7ee49f3
commit 2dffa3af0d
12 changed files with 24 additions and 12 deletions

View File

@@ -134,7 +134,7 @@ public class AnnotationAttributeCompletionProcessor implements CompletionProvide
AnnotationAttributeCompletionProvider completionProvider = this.completionProviders.get(attributeName);
if (completionProvider != null) {
Map<String, String> proposals = completionProvider.getCompletionCandidates(project);
Map<String, String> proposals = completionProvider.getCompletionCandidates(project, node);
Map<String, String> filteredProposals = proposals.entrySet().stream()
.filter(candidate -> candidate.getKey().toLowerCase().contains(filterPrefix.toLowerCase()))
.filter(candidate -> !alreadyMentionedValues.contains(candidate.getKey()))

View File

@@ -12,10 +12,11 @@ package org.springframework.ide.vscode.boot.java.annotations;
import java.util.Map;
import org.eclipse.jdt.core.dom.ASTNode;
import org.springframework.ide.vscode.commons.java.IJavaProject;
public interface AnnotationAttributeCompletionProvider {
Map<String, String> getCompletionCandidates(IJavaProject project);
Map<String, String> getCompletionCandidates(IJavaProject project, ASTNode node);
}

View File

@@ -15,6 +15,7 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.stream.Collectors;
import org.eclipse.jdt.core.dom.ASTNode;
import org.springframework.ide.vscode.boot.index.SpringMetamodelIndex;
import org.springframework.ide.vscode.boot.java.annotations.AnnotationAttributeCompletionProvider;
import org.springframework.ide.vscode.commons.java.IJavaProject;
@@ -32,7 +33,7 @@ public class BeanNamesCompletionProcessor implements AnnotationAttributeCompleti
}
@Override
public Map<String, String> getCompletionCandidates(IJavaProject project) {
public Map<String, String> getCompletionCandidates(IJavaProject project, ASTNode node) {
Bean[] beans = this.springIndex.getBeansOfProject(project.getElementName());
return Arrays.stream(beans)
.map(Bean::getName)

View File

@@ -10,6 +10,7 @@
*******************************************************************************/
package org.springframework.ide.vscode.boot.java.beans;
import org.eclipse.jdt.core.dom.ASTNode;
import org.springframework.ide.vscode.boot.index.SpringMetamodelIndex;
import org.springframework.ide.vscode.boot.java.annotations.AnnotationAttributeCompletionProvider;
import org.springframework.ide.vscode.commons.java.IJavaProject;
@@ -32,7 +33,7 @@ public class BeanTypesCompletionProcessor implements AnnotationAttributeCompleti
}
@Override
public Map<String, String> getCompletionCandidates(IJavaProject project) {
public Map<String, String> getCompletionCandidates(IJavaProject project, ASTNode node) {
Bean[] beans = this.springIndex.getBeansOfProject(project.getElementName());
return Arrays.stream(beans)
.map(Bean::getType)

View File

@@ -15,6 +15,7 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.stream.Collectors;
import org.eclipse.jdt.core.dom.ASTNode;
import org.springframework.ide.vscode.boot.index.SpringMetamodelIndex;
import org.springframework.ide.vscode.boot.java.annotations.AnnotationAttributeCompletionProvider;
import org.springframework.ide.vscode.commons.java.IJavaProject;
@@ -237,7 +238,7 @@ public class DependsOnCompletionProcessor implements AnnotationAttributeCompleti
// }
@Override
public Map<String, String> getCompletionCandidates(IJavaProject project) {
public Map<String, String> getCompletionCandidates(IJavaProject project, ASTNode node) {
return Arrays.stream(this.springIndex.getBeansOfProject(project.getElementName()))
.map(bean -> bean.getName())
.distinct()

View File

@@ -16,6 +16,7 @@ import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.eclipse.jdt.core.dom.ASTNode;
import org.springframework.ide.vscode.boot.index.SpringMetamodelIndex;
import org.springframework.ide.vscode.boot.java.Annotations;
import org.springframework.ide.vscode.boot.java.annotations.AnnotationAttributeCompletionProvider;
@@ -34,7 +35,7 @@ public class NamedCompletionProvider implements AnnotationAttributeCompletionPro
}
@Override
public Map<String, String> getCompletionCandidates(IJavaProject project) {
public Map<String, String> getCompletionCandidates(IJavaProject project, ASTNode node) {
Bean[] beans = this.springIndex.getBeansOfProject(project.getElementName());

View File

@@ -16,6 +16,7 @@ import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.eclipse.jdt.core.dom.ASTNode;
import org.springframework.ide.vscode.boot.index.SpringMetamodelIndex;
import org.springframework.ide.vscode.boot.java.Annotations;
import org.springframework.ide.vscode.boot.java.annotations.AnnotationAttributeCompletionProvider;
@@ -34,7 +35,7 @@ public class ProfileCompletionProvider implements AnnotationAttributeCompletionP
}
@Override
public Map<String, String> getCompletionCandidates(IJavaProject project) {
public Map<String, String> getCompletionCandidates(IJavaProject project, ASTNode node) {
Bean[] beans = this.springIndex.getBeansOfProject(project.getElementName());

View File

@@ -16,6 +16,8 @@ import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.eclipse.jdt.core.dom.ASTNode;
import org.eclipse.jdt.core.dom.MethodDeclaration;
import org.springframework.ide.vscode.boot.index.SpringMetamodelIndex;
import org.springframework.ide.vscode.boot.java.Annotations;
import org.springframework.ide.vscode.boot.java.annotations.AnnotationAttributeCompletionProvider;
@@ -34,7 +36,7 @@ public class QualifierCompletionProvider implements AnnotationAttributeCompletio
}
@Override
public Map<String, String> getCompletionCandidates(IJavaProject project) {
public Map<String, String> getCompletionCandidates(IJavaProject project, ASTNode node) {
Bean[] beans = this.springIndex.getBeansOfProject(project.getElementName());

View File

@@ -15,6 +15,7 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.stream.Collectors;
import org.eclipse.jdt.core.dom.ASTNode;
import org.springframework.ide.vscode.boot.index.SpringMetamodelIndex;
import org.springframework.ide.vscode.boot.java.annotations.AnnotationAttributeCompletionProvider;
import org.springframework.ide.vscode.commons.java.IJavaProject;
@@ -32,7 +33,7 @@ public class ResourceCompletionProvider implements AnnotationAttributeCompletion
}
@Override
public Map<String, String> getCompletionCandidates(IJavaProject project) {
public Map<String, String> getCompletionCandidates(IJavaProject project, ASTNode node) {
Bean[] beans = this.springIndex.getBeansOfProject(project.getElementName());

View File

@@ -16,6 +16,7 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.stream.Collectors;
import org.eclipse.jdt.core.dom.ASTNode;
import org.springframework.ide.vscode.boot.java.annotations.AnnotationAttributeCompletionProvider;
import org.springframework.ide.vscode.commons.java.IClasspathUtil;
import org.springframework.ide.vscode.commons.java.IJavaProject;
@@ -42,7 +43,7 @@ public class ConditionalOnResourceCompletionProcessor implements AnnotationAttri
}
@Override
public Map<String, String> getCompletionCandidates(IJavaProject project) {
public Map<String, String> getCompletionCandidates(IJavaProject project, ASTNode node) {
return findResources(project);
}

View File

@@ -13,6 +13,7 @@ package org.springframework.ide.vscode.boot.java.cron;
import java.util.LinkedHashMap;
import java.util.Map;
import org.eclipse.jdt.core.dom.ASTNode;
import org.springframework.ide.vscode.boot.java.annotations.AnnotationAttributeCompletionProvider;
import org.springframework.ide.vscode.commons.java.IJavaProject;
@@ -49,7 +50,7 @@ public class CronExpressionCompletionProvider implements AnnotationAttributeComp
@Override
public Map<String, String> getCompletionCandidates(IJavaProject project) {
public Map<String, String> getCompletionCandidates(IJavaProject project, ASTNode node) {
return CRON_EXPRESSIONS_MAP;
}
}

View File

@@ -13,6 +13,7 @@ package org.springframework.ide.vscode.boot.java.scope;
import java.util.LinkedHashMap;
import java.util.Map;
import org.eclipse.jdt.core.dom.ASTNode;
import org.springframework.ide.vscode.boot.java.annotations.AnnotationAttributeCompletionProvider;
import org.springframework.ide.vscode.commons.java.IJavaProject;
@@ -34,7 +35,7 @@ public class ScopeCompletionProcessor implements AnnotationAttributeCompletionPr
}
@Override
public Map<String, String> getCompletionCandidates(IJavaProject project) {
public Map<String, String> getCompletionCandidates(IJavaProject project, ASTNode node) {
return SCOPE_COMPLETIONS;
}