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 32a2172c0..c020c7700 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 @@ -134,7 +134,7 @@ public class AnnotationAttributeCompletionProcessor implements CompletionProvide AnnotationAttributeCompletionProvider completionProvider = this.completionProviders.get(attributeName); if (completionProvider != null) { - Map proposals = completionProvider.getCompletionCandidates(project); + Map proposals = completionProvider.getCompletionCandidates(project, node); Map filteredProposals = proposals.entrySet().stream() .filter(candidate -> candidate.getKey().toLowerCase().contains(filterPrefix.toLowerCase())) .filter(candidate -> !alreadyMentionedValues.contains(candidate.getKey())) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationAttributeCompletionProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationAttributeCompletionProvider.java index 5a0b6d331..735ed6b52 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationAttributeCompletionProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/annotations/AnnotationAttributeCompletionProvider.java @@ -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 getCompletionCandidates(IJavaProject project); + Map getCompletionCandidates(IJavaProject project, ASTNode node); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/BeanNamesCompletionProcessor.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/BeanNamesCompletionProcessor.java index c31630df8..b0d640992 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/BeanNamesCompletionProcessor.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/BeanNamesCompletionProcessor.java @@ -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 getCompletionCandidates(IJavaProject project) { + public Map getCompletionCandidates(IJavaProject project, ASTNode node) { Bean[] beans = this.springIndex.getBeansOfProject(project.getElementName()); return Arrays.stream(beans) .map(Bean::getName) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/BeanTypesCompletionProcessor.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/BeanTypesCompletionProcessor.java index 7a64a63bc..dcdc6c18f 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/BeanTypesCompletionProcessor.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/BeanTypesCompletionProcessor.java @@ -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 getCompletionCandidates(IJavaProject project) { + public Map getCompletionCandidates(IJavaProject project, ASTNode node) { Bean[] beans = this.springIndex.getBeansOfProject(project.getElementName()); return Arrays.stream(beans) .map(Bean::getType) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/DependsOnCompletionProcessor.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/DependsOnCompletionProcessor.java index 2bd3e2894..551f12865 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/DependsOnCompletionProcessor.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/DependsOnCompletionProcessor.java @@ -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 getCompletionCandidates(IJavaProject project) { + public Map getCompletionCandidates(IJavaProject project, ASTNode node) { return Arrays.stream(this.springIndex.getBeansOfProject(project.getElementName())) .map(bean -> bean.getName()) .distinct() diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/NamedCompletionProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/NamedCompletionProvider.java index b3f2a6fd5..9cee24c28 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/NamedCompletionProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/NamedCompletionProvider.java @@ -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 getCompletionCandidates(IJavaProject project) { + public Map getCompletionCandidates(IJavaProject project, ASTNode node) { Bean[] beans = this.springIndex.getBeansOfProject(project.getElementName()); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/ProfileCompletionProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/ProfileCompletionProvider.java index 37a004309..422a1236a 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/ProfileCompletionProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/ProfileCompletionProvider.java @@ -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 getCompletionCandidates(IJavaProject project) { + public Map getCompletionCandidates(IJavaProject project, ASTNode node) { Bean[] beans = this.springIndex.getBeansOfProject(project.getElementName()); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/QualifierCompletionProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/QualifierCompletionProvider.java index c51718df1..cde440eba 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/QualifierCompletionProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/QualifierCompletionProvider.java @@ -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 getCompletionCandidates(IJavaProject project) { + public Map getCompletionCandidates(IJavaProject project, ASTNode node) { Bean[] beans = this.springIndex.getBeansOfProject(project.getElementName()); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/ResourceCompletionProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/ResourceCompletionProvider.java index b8a006fe6..060574bda 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/ResourceCompletionProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/beans/ResourceCompletionProvider.java @@ -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 getCompletionCandidates(IJavaProject project) { + public Map getCompletionCandidates(IJavaProject project, ASTNode node) { Bean[] beans = this.springIndex.getBeansOfProject(project.getElementName()); diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/conditionalonresource/ConditionalOnResourceCompletionProcessor.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/conditionalonresource/ConditionalOnResourceCompletionProcessor.java index 9905ab524..bf00e9aa3 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/conditionalonresource/ConditionalOnResourceCompletionProcessor.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/conditionalonresource/ConditionalOnResourceCompletionProcessor.java @@ -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 getCompletionCandidates(IJavaProject project) { + public Map getCompletionCandidates(IJavaProject project, ASTNode node) { return findResources(project); } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/cron/CronExpressionCompletionProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/cron/CronExpressionCompletionProvider.java index 6a458562e..d8333dab2 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/cron/CronExpressionCompletionProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/cron/CronExpressionCompletionProvider.java @@ -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 getCompletionCandidates(IJavaProject project) { + public Map getCompletionCandidates(IJavaProject project, ASTNode node) { return CRON_EXPRESSIONS_MAP; } } diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/scope/ScopeCompletionProcessor.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/scope/ScopeCompletionProcessor.java index fb11a9b7a..11ba0c4ed 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/scope/ScopeCompletionProcessor.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/scope/ScopeCompletionProcessor.java @@ -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 getCompletionCandidates(IJavaProject project) { + public Map getCompletionCandidates(IJavaProject project, ASTNode node) { return SCOPE_COMPLETIONS; }