diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/PropertyNameCompletionProposalProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/PropertyNameCompletionProposalProvider.java index d0d5787e7..126fad39b 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/PropertyNameCompletionProposalProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/PropertyNameCompletionProposalProvider.java @@ -23,6 +23,8 @@ import org.eclipse.lsp4j.CompletionItemKind; import org.eclipse.lsp4xml.dom.DOMAttr; import org.eclipse.lsp4xml.dom.DOMNode; import org.eclipse.lsp4xml.dom.parser.Scanner; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.ide.vscode.boot.xml.XMLCompletionProvider; import org.springframework.ide.vscode.commons.java.IJavaProject; import org.springframework.ide.vscode.commons.java.IMethod; @@ -37,6 +39,8 @@ import org.springframework.ide.vscode.commons.util.text.TextDocument; * @author Martin Lippert */ public class PropertyNameCompletionProposalProvider implements XMLCompletionProvider { + + private static final Logger log = LoggerFactory.getLogger(PropertyNameCompletionProposalProvider.class); private final JavaProjectFinder projectFinder; @@ -51,18 +55,27 @@ public class PropertyNameCompletionProposalProvider implements XMLCompletionProv int tokenOffset = scanner.getTokenOffset(); int tokenEnd = scanner.getTokenEnd(); String tokenText = scanner.getTokenText(); + + log.info("Stating calculating completions for {} at offset {}.", doc.getId().getUri(), offset); + Optional foundProject = this.projectFinder.find(doc.getId()); if (foundProject.isPresent()) { IJavaProject project = foundProject.get(); + log.info("Project found is {}", project.getElementName()); String prefix = tokenText.substring(0, offset - tokenOffset); if (prefix.startsWith("\"")) { prefix = prefix.substring(1); } + log.info("Prefix is '{}'", prefix); + String beanClass = identifyBeanClass(node); if (beanClass != null && beanClass.length() > 0) { + + log.info("Bean class '{}'", beanClass); + final String searchPrefix = prefix; return propertyNameCandidateMethods(project, beanClass) .filter(method -> getPropertyName(method).startsWith(searchPrefix)) diff --git a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/TypeCompletionProposalProvider.java b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/TypeCompletionProposalProvider.java index 8629e499b..82a300b78 100644 --- a/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/TypeCompletionProposalProvider.java +++ b/headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/xml/completions/TypeCompletionProposalProvider.java @@ -65,9 +65,14 @@ public class TypeCompletionProposalProvider implements XMLCompletionProvider { int tokenOffset = scanner.getTokenOffset(); int tokenEnd = scanner.getTokenEnd(); String tokenText = scanner.getTokenText(); + + log.info("Stating calculating completions for {} at offset {}.", doc.getId().getUri(), offset); + log.info("Allowed proposals packagesAllowed={} classesAllowed={} interfacesAllowed={} enumsAllowed={}", packagesAllowed, classesAllowed, interfacesAllowed, enumsAllowed); Optional foundProject = this.projectFinder.find(doc.getId()); if (foundProject.isPresent()) { + log.info("Project found is {}", foundProject.get().getElementName()); + IJavaProject project = foundProject.get(); String prefix = tokenText.substring(0, offset - tokenOffset); @@ -78,6 +83,8 @@ public class TypeCompletionProposalProvider implements XMLCompletionProvider { // Flux> types = project.getIndex().fuzzySearchTypes(prefix, true, true); // Flux> types = project.getIndex().camelcaseSearchTypes(prefix, true, true); + log.info("Prefix is '{}'", prefix); + JavaCodeCompleteParams params = new JavaCodeCompleteParams(project.getLocationUri().toString(), prefix, true, true); CompletableFuture> completions = server.getClient().javaCodeComplete(params);