diff --git a/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/Editor.java b/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/Editor.java index fe3e73d13..7274cad87 100644 --- a/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/Editor.java +++ b/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/Editor.java @@ -417,19 +417,25 @@ public class Editor { String docText = doc.getText(); if (edit!=null) { String replaceWith = edit.getNewText(); - //Apply indentfix, this is magic vscode seems to apply to edits returned by language server. So our harness has to - // mimick that behavior. See https://github.com/Microsoft/language-server-protocol/issues/83 - int referenceLine = edit.getRange().getStart().getLine(); - int cursorOffset = edit.getRange().getStart().getCharacter(); - String referenceIndent = doc.getLineIndentString(referenceLine); - if (cursorOffset=0) { - replaceWith = replaceWith.substring(0, cursorReplaceOffset) + replaceWith.substring(cursorReplaceOffset+VS_CODE_CURSOR_MARKER.length()); + if (!Boolean.getBoolean("lsp.completions.indentation.enable")) { + //Apply indentfix, this is magic vscode seems to apply to edits returned by language server. So our harness has to + // mimick that behavior. See https://github.com/Microsoft/language-server-protocol/issues/83 + int referenceLine = edit.getRange().getStart().getLine(); + int cursorOffset = edit.getRange().getStart().getCharacter(); + String referenceIndent = doc.getLineIndentString(referenceLine); + if (cursorOffset= 0) { + replaceWith = replaceWith.substring(0, cursorReplaceOffset) + + replaceWith.substring(cursorReplaceOffset + VS_CODE_CURSOR_MARKER.length()); } else { cursorReplaceOffset = replaceWith.length(); }