From 64dfda572dd3db46ff841db9659f413a5f9b3b21 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Wed, 17 Jun 2015 12:07:42 -0700 Subject: [PATCH] Use raw buffer text (w/o invisibles) when testing decreaseIndentRegex --- spec/language-mode-spec.coffee | 12 ++++++++++++ src/language-mode.coffee | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/spec/language-mode-spec.coffee b/spec/language-mode-spec.coffee index 9c4fc2c1e..7ea4a1ae9 100644 --- a/spec/language-mode-spec.coffee +++ b/spec/language-mode-spec.coffee @@ -101,6 +101,18 @@ describe "LanguageMode", -> expect(languageMode.suggestedIndentForBufferRow(0)).toBe 0 expect(languageMode.suggestedIndentForBufferRow(1)).toBe 1 expect(languageMode.suggestedIndentForBufferRow(2)).toBe 2 + expect(languageMode.suggestedIndentForBufferRow(5)).toBe 3 + expect(languageMode.suggestedIndentForBufferRow(7)).toBe 2 + expect(languageMode.suggestedIndentForBufferRow(9)).toBe 1 + expect(languageMode.suggestedIndentForBufferRow(11)).toBe 1 + + it "does not take invisibles into account", -> + atom.config.set('editor.showInvisibles', true) + expect(languageMode.suggestedIndentForBufferRow(0)).toBe 0 + expect(languageMode.suggestedIndentForBufferRow(1)).toBe 1 + expect(languageMode.suggestedIndentForBufferRow(2)).toBe 2 + expect(languageMode.suggestedIndentForBufferRow(5)).toBe 3 + expect(languageMode.suggestedIndentForBufferRow(7)).toBe 2 expect(languageMode.suggestedIndentForBufferRow(9)).toBe 1 expect(languageMode.suggestedIndentForBufferRow(11)).toBe 1 diff --git a/src/language-mode.coffee b/src/language-mode.coffee index bf1e0e101..d99e69477 100644 --- a/src/language-mode.coffee +++ b/src/language-mode.coffee @@ -261,7 +261,8 @@ class LanguageMode desiredIndentLevel += 1 if increaseIndentRegex.testSync(precedingLine) and not @editor.isBufferRowCommented(precedingRow) return desiredIndentLevel unless decreaseIndentRegex = @decreaseIndentRegexForScopeDescriptor(scopeDescriptor) - desiredIndentLevel -= 1 if decreaseIndentRegex.testSync(tokenizedLine.text) + line = @buffer.lineForRow(bufferRow) + desiredIndentLevel -= 1 if decreaseIndentRegex.testSync(line) Math.max(desiredIndentLevel, 0)