GH-1375: added ast node to signature of annotation completion providers to prepare for deeper analysis features
This commit is contained in:
@@ -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()))
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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());
|
||||
|
||||
|
||||
@@ -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());
|
||||
|
||||
|
||||
@@ -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());
|
||||
|
||||
|
||||
@@ -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());
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user