From 8b4e4428b7cb4bc19119b4498cfe7e9e47788ac4 Mon Sep 17 00:00:00 2001 From: rebornix Date: Thu, 29 Jun 2017 11:32:57 -0700 Subject: [PATCH] Fix #29881. Null guard --- .../contrib/indentation/common/indentation.ts | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/vs/editor/contrib/indentation/common/indentation.ts b/src/vs/editor/contrib/indentation/common/indentation.ts index b4c77ee9196..ee7c641330d 100644 --- a/src/vs/editor/contrib/indentation/common/indentation.ts +++ b/src/vs/editor/contrib/indentation/common/indentation.ts @@ -502,23 +502,25 @@ export class AutoIndentOnPaste implements IEditorContribution { } }; let indentOfSecondLine = LanguageConfigurationRegistry.getGoodIndentForLine(virtualModel, model.getLanguageIdentifier().id, startLineNumber + 1, indentConverter); - let newSpaceCntOfSecondLine = IndentUtil.getSpaceCnt(indentOfSecondLine, tabSize); - let oldSpaceCntOfSecondLine = IndentUtil.getSpaceCnt(strings.getLeadingWhitespace(model.getLineContent(startLineNumber + 1)), tabSize); + if (indentOfSecondLine !== null) { + let newSpaceCntOfSecondLine = IndentUtil.getSpaceCnt(indentOfSecondLine, tabSize); + let oldSpaceCntOfSecondLine = IndentUtil.getSpaceCnt(strings.getLeadingWhitespace(model.getLineContent(startLineNumber + 1)), tabSize); - if (newSpaceCntOfSecondLine !== oldSpaceCntOfSecondLine) { - let spaceCntOffset = newSpaceCntOfSecondLine - oldSpaceCntOfSecondLine; - for (let i = startLineNumber + 1; i <= range.endLineNumber; i++) { - let lineContent = model.getLineContent(i); - let originalIndent = strings.getLeadingWhitespace(lineContent); - let originalSpacesCnt = IndentUtil.getSpaceCnt(originalIndent, tabSize); - let newSpacesCnt = originalSpacesCnt + spaceCntOffset; - let newIndent = IndentUtil.generateIndent(newSpacesCnt, tabSize, insertSpaces); + if (newSpaceCntOfSecondLine !== oldSpaceCntOfSecondLine) { + let spaceCntOffset = newSpaceCntOfSecondLine - oldSpaceCntOfSecondLine; + for (let i = startLineNumber + 1; i <= range.endLineNumber; i++) { + let lineContent = model.getLineContent(i); + let originalIndent = strings.getLeadingWhitespace(lineContent); + let originalSpacesCnt = IndentUtil.getSpaceCnt(originalIndent, tabSize); + let newSpacesCnt = originalSpacesCnt + spaceCntOffset; + let newIndent = IndentUtil.generateIndent(newSpacesCnt, tabSize, insertSpaces); - if (newIndent !== originalIndent) { - textEdits.push({ - range: new Range(i, 1, i, originalIndent.length + 1), - text: newIndent - }); + if (newIndent !== originalIndent) { + textEdits.push({ + range: new Range(i, 1, i, originalIndent.length + 1), + text: newIndent + }); + } } } }