diff --git a/vscode-extensions/vscode-boot-java/pom.xml b/vscode-extensions/vscode-boot-java/pom.xml
index af357ead1..90e2573db 100644
--- a/vscode-extensions/vscode-boot-java/pom.xml
+++ b/vscode-extensions/vscode-boot-java/pom.xml
@@ -52,6 +52,19 @@
test
+
+
+ org.eclipse.jdt
+ org.eclipse.jdt.core
+ 3.12.2
+
+
+
+ commons-io
+ commons-io
+ 2.4
+
+
diff --git a/vscode-extensions/vscode-boot-java/src/main/java/org/springframework/ide/vscode/boot/java/completions/BootJavaCompletionEngine.java b/vscode-extensions/vscode-boot-java/src/main/java/org/springframework/ide/vscode/boot/java/completions/BootJavaCompletionEngine.java
index 95f3775fc..77d71387a 100644
--- a/vscode-extensions/vscode-boot-java/src/main/java/org/springframework/ide/vscode/boot/java/completions/BootJavaCompletionEngine.java
+++ b/vscode-extensions/vscode-boot-java/src/main/java/org/springframework/ide/vscode/boot/java/completions/BootJavaCompletionEngine.java
@@ -14,13 +14,16 @@ package org.springframework.ide.vscode.boot.java.completions;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import java.util.Map;
-import org.eclipse.lsp4j.CompletionItemKind;
-import org.springframework.ide.vscode.commons.languageserver.completion.DocumentEdits;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.dom.AST;
+import org.eclipse.jdt.core.dom.ASTNode;
+import org.eclipse.jdt.core.dom.ASTParser;
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jdt.core.dom.NodeFinder;
import org.springframework.ide.vscode.commons.languageserver.completion.ICompletionEngine;
import org.springframework.ide.vscode.commons.languageserver.completion.ICompletionProposal;
-import org.springframework.ide.vscode.commons.util.Renderable;
-import org.springframework.ide.vscode.commons.util.Renderables;
import org.springframework.ide.vscode.commons.util.text.IDocument;
public class BootJavaCompletionEngine implements ICompletionEngine {
@@ -28,45 +31,31 @@ public class BootJavaCompletionEngine implements ICompletionEngine {
@Override
public Collection getCompletions(IDocument document, int offset) throws Exception {
List completions = new ArrayList<>();
-
- ICompletionProposal proposal = new ICompletionProposal() {
-
- @Override
- public DocumentEdits getTextEdit() {
- DocumentEdits edits = new DocumentEdits(document);
- edits.insert(0, "my noew java code from spring boot completions!!!");
-
- return edits;
- }
-
- @Override
- public String getLabel() {
- return "Do a great Spring Boot Java Code completion";
- }
-
- @Override
- public CompletionItemKind getKind() {
- return CompletionItemKind.Text;
- }
-
- @Override
- public Renderable getDocumentation() {
- return Renderables.text("this describes the Boot Java completion in more detail");
- }
-
- @Override
- public String getDetail() {
- return "and here are the details";
- }
-
- @Override
- public ICompletionProposal deemphasize() {
- return null;
- }
- };
-
- completions.add(proposal);
-
+
+ System.out.println("create parser");
+
+ ASTParser parser = ASTParser.newParser(AST.JLS8);
+ Map options = JavaCore.getOptions();
+ JavaCore.setComplianceOptions(JavaCore.VERSION_1_8, options);
+ parser.setCompilerOptions(options);
+ parser.setKind(ASTParser.K_COMPILATION_UNIT);
+ parser.setStatementsRecovery(true);
+ parser.setBindingsRecovery(true);
+
+ System.out.println("set source");
+
+ parser.setSource(document.get(0, document.getLength()).toCharArray());
+
+ System.out.println("start parse");
+
+ CompilationUnit cu = (CompilationUnit) parser.createAST(null);
+
+ System.out.println("end parse");
+
+ ASTNode node = NodeFinder.perform(cu, offset, 0);
+
+ System.out.println("AST node found: " + node.getClass().getName());
+
return completions;
}