From 7c7ca4a6c3d1323b3a9a71c12e348159f6fb338d Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 22 Jan 2013 17:33:46 -0800 Subject: [PATCH] Don't auto outdent if already fully outdented --- spec/app/edit-session-spec.coffee | 6 ++++++ src/app/language-mode.coffee | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/spec/app/edit-session-spec.coffee b/spec/app/edit-session-spec.coffee index e3aa8d3d9..6f72cd8bc 100644 --- a/spec/app/edit-session-spec.coffee +++ b/spec/app/edit-session-spec.coffee @@ -2014,3 +2014,9 @@ describe "EditSession", -> editSession.insertText("}") editSession.autoDecreaseIndentForRow(0) expect(editSession.lineForBufferRow(0)).toBe "}" + + it "doesn't outdent a row that is already fully outdented", -> + editSession.selectAll() + editSession.insertText("var i;\n}") + editSession.autoDecreaseIndentForRow(1) + expect(editSession.lineForBufferRow(1)).toBe "}" diff --git a/src/app/language-mode.coffee b/src/app/language-mode.coffee index 220ded37a..351dd122c 100644 --- a/src/app/language-mode.coffee +++ b/src/app/language-mode.coffee @@ -188,13 +188,14 @@ class LanguageMode return unless decreaseIndentRegex.test(line) currentIndentLevel = @editSession.indentationForBufferRow(bufferRow) + return if currentIndentLevel is 0 precedingRow = @buffer.previousNonBlankRow(bufferRow) return unless precedingRow? precedingLine = @buffer.lineForRow(precedingRow) desiredIndentLevel = @editSession.indentationForBufferRow(precedingRow) desiredIndentLevel -= 1 unless increaseIndentRegex.test(precedingLine) - if desiredIndentLevel < currentIndentLevel + if desiredIndentLevel >= 0 and desiredIndentLevel < currentIndentLevel @editSession.setIndentationForBufferRow(bufferRow, desiredIndentLevel) tokenizeLine: (line, stack, firstLine) ->