From 44d6868855c16f8d608ea321c907347c3d9f1936 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 3 Oct 2017 10:14:45 -0700 Subject: [PATCH] Preserve indentation when toggling comments on whitespace-only lines --- spec/tokenized-buffer-spec.js | 2 +- src/tokenized-buffer.js | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/spec/tokenized-buffer-spec.js b/spec/tokenized-buffer-spec.js index b2324d392..ba43f9ff3 100644 --- a/spec/tokenized-buffer-spec.js +++ b/spec/tokenized-buffer-spec.js @@ -807,7 +807,7 @@ describe('TokenizedBuffer', () => { buffer.setText(' ') tokenizedBuffer.toggleLineCommentsForBufferRows(0, 0) - expect(buffer.lineForRow(0)).toBe('// ') + expect(buffer.lineForRow(0)).toBe(' // ') buffer.setText(' a\n \n b') tokenizedBuffer.toggleLineCommentsForBufferRows(0, 2) diff --git a/src/tokenized-buffer.js b/src/tokenized-buffer.js index 1d52411ae..8b7569cca 100644 --- a/src/tokenized-buffer.js +++ b/src/tokenized-buffer.js @@ -222,13 +222,18 @@ class TokenizedBuffer { } } else { let minIndentLevel = null + let minBlankIndentLevel for (let row = start; row <= end; row++) { const line = this.buffer.lineForRow(row) if (NON_WHITESPACE_REGEX.test(line)) { const indentLevel = this.indentLevelForLine(line) if (minIndentLevel == null || indentLevel < minIndentLevel) minIndentLevel = indentLevel + } else if (minIndentLevel == null) { + const indentLevel = this.indentLevelForLine(line) + if (minBlankIndentLevel == null || indentLevel < minBlankIndentLevel) minBlankIndentLevel = indentLevel } } + if (minIndentLevel == null) minIndentLevel = minBlankIndentLevel if (minIndentLevel == null) minIndentLevel = 0 const tabLength = this.getTabLength()