diff --git a/src/editor.coffee b/src/editor.coffee index 4fd22c8cb..0e622b3a0 100644 --- a/src/editor.coffee +++ b/src/editor.coffee @@ -416,9 +416,10 @@ class Editor extends Model @displayBuffer.indentLevelForLine(line) # Constructs the string used for tabs. - buildIndentString: (number) -> + buildIndentString: (number, column=0) -> if @getSoftTabs() - _.multiplyString(" ", Math.floor(number * @getTabLength())) + tabStopViolation = column % @getTabLength() + _.multiplyString(" ", Math.floor(number * @getTabLength()) - tabStopViolation) else _.multiplyString("\t", Math.floor(number)) diff --git a/src/selection.coffee b/src/selection.coffee index 204786773..ab7c91006 100644 --- a/src/selection.coffee +++ b/src/selection.coffee @@ -392,7 +392,7 @@ class Selection extends Model if autoIndent and delta > 0 @insertText(@editor.buildIndentString(delta)) else - @insertText(@editor.getTabText()) + @insertText(@editor.buildIndentString(1, @cursor.getBufferColumn())) else @indentSelectedRows()