diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/snippets/JavaSnippetBuilder.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/snippets/JavaSnippetBuilder.java index 79c1528da..7f2c9ec7b 100644 --- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/snippets/JavaSnippetBuilder.java +++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/snippets/JavaSnippetBuilder.java @@ -42,7 +42,13 @@ public class JavaSnippetBuilder{ DocumentEdits edit = new DocumentEdits(doc); String snippet = createSnippet(template); - String indentedSnippet = indentUtil.applyIndentation(snippet, indentUtil.getReferenceIndent(query.getStart(), doc)) ; + String referenceIndent = indentUtil.getReferenceIndent(query.getStart(), doc); + + if (!referenceIndent.contains("\t")) { + snippet = indentUtil.covertTabsToSpace(snippet); + } + String indentedSnippet = indentUtil.applyIndentation(snippet, referenceIndent); + edit.replace(query.getStart(), query.getEnd(), indentedSnippet); return edit; } diff --git a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/IndentUtil.java b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/IndentUtil.java index 3c9947067..64bad92eb 100644 --- a/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/IndentUtil.java +++ b/headless-services/commons/commons-language-server/src/main/java/org/springframework/ide/vscode/commons/languageserver/completion/IndentUtil.java @@ -15,8 +15,6 @@ import org.springframework.ide.vscode.commons.util.Assert; import org.springframework.ide.vscode.commons.util.text.IDocument; import org.springframework.ide.vscode.commons.util.text.IRegion; -import com.google.common.base.Strings; - /** * Helper methods to manipulate indentation levels in yaml content. * @@ -53,4 +51,8 @@ public class IndentUtil { return queryPrefix.leadingWhitespace().toString(); } + + public String covertTabsToSpace(String snippet) { + return snippet.replaceAll("\\t", " "); + } }