diff --git a/keymap/sublime.js b/keymap/sublime.js index 45936c362892e55d9597444987a0120f418eea36..2b49f1ae35fee7fe2a568dca43adf8c3d90ba746 100644 --- a/keymap/sublime.js +++ b/keymap/sublime.js @@ -409,6 +409,22 @@ map[cK + ctrl + "Backspace"] = "delLineLeft"; + cmds[map["Backspace"] = "smartBackspace"] = function(cm) { + if (cm.somethingSelected()) { + return CodeMirror.Pass; + } + + var tabSize = cm.getOption('tabSize'); + var cursor = cm.getCursor(); + var toStartOfLine = cm.getRange({line: cursor.line, ch: 0}, cursor); + var column = CodeMirror.countColumn(toStartOfLine, null, tabSize); + + if (/^\s+$/.test(toStartOfLine) && column % tabSize == 0) { + return cm.indentSelection('subtract'); + } + return CodeMirror.Pass; + }; + cmds[map[cK + ctrl + "K"] = "delLineRight"] = function(cm) { cm.operation(function() { var ranges = cm.listSelections();