diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index 58e3ed1b35..0388ba42b3 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -866,13 +866,23 @@ namespace ts.formatting { } else { let tokenStart = sourceFile.getLineAndCharacterOfPosition(pos); - if (indentation !== tokenStart.character) { - let startLinePosition = getStartPositionOfLine(tokenStart.line, sourceFile); + let startLinePosition = getStartPositionOfLine(tokenStart.line, sourceFile); + if (indentation !== tokenStart.character || indentationIsDifferent(indentationString, startLinePosition)) { recordReplace(startLinePosition, tokenStart.character, indentationString); } } } + function indentationIsDifferent(indentationString: string, startLinePosition: number): boolean { + let size = indentationString.length; + for (let i = 0; i < size; i++) { + if (indentationString.charCodeAt(i) !== sourceFile.text.charCodeAt(startLinePosition + i)) { + return true; + } + } + return false; + } + function indentMultilineComment(commentRange: TextRange, indentation: number, firstLineIsIndented: boolean) { // split comment in lines let startLine = sourceFile.getLineAndCharacterOfPosition(commentRange.pos).line; @@ -1152,4 +1162,4 @@ namespace ts.formatting { return s; } } -} \ No newline at end of file +}