diff --git a/src/services/htmlFormatter.ts b/src/services/htmlFormatter.ts index 46f32ea..b5cec75 100644 --- a/src/services/htmlFormatter.ts +++ b/src/services/htmlFormatter.ts @@ -42,6 +42,18 @@ export function format(document: TextDocument, range: Range | undefined, options } range = Range.create(document.positionAt(startOffset), document.positionAt(endOffset)); + //Do not modify if substring in inside an element + let firstHalf = value.substring(0, startOffset); + let secondHalf = value.substring(endOffset, value.length); + if(new RegExp(/.*[<][^>]*$/).test(firstHalf) && new RegExp(/^[^<]*[>].*/).test(secondHalf) ){ + //return without modification + value = value.substring(startOffset, endOffset); + return [{ + range: range, + newText: value + }]; + } + includesEnd = endOffset === value.length; value = value.substring(startOffset, endOffset); diff --git a/src/test/formatter.test.ts b/src/test/formatter.test.ts index 16bcf3b..688664a 100644 --- a/src/test/formatter.test.ts +++ b/src/test/formatter.test.ts @@ -193,4 +193,17 @@ suite('JSON Formatter', () => { format(content, expected); }); -}); \ No newline at end of file + + test('bug 58693', () => { + var content = [ + '' + ].join('\n'); + + var expected = [ + '' + ].join('\n'); + + format(content, expected); + }); + +});