Skip to content

Commit 6840d5d

Browse files
committed
Don't include lines hanging at the end of the selection when indenting
1 parent f3af799 commit 6840d5d

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

lib/codemirror.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -943,12 +943,17 @@ var CodeMirror = (function() {
943943
indentLine(sel.from.line, options.enterMode == "keep" ? "prev" : "smart");
944944
}
945945
function handleTab(shift) {
946+
function indentSelected(mode) {
947+
if (posEq(sel.from, sel.to)) return indentLine(sel.from.line, mode);
948+
var e = sel.to.line - (sel.to.ch ? 1 : 0);
949+
for (var i = sel.from.line; i < e; ++i) indentLine(i, mode);
950+
}
946951
shiftSelecting = null;
947952
switch (options.tabMode) {
948953
case "default":
949954
return false;
950955
case "indent":
951-
for (var i = sel.from.line, e = sel.to.line; i <= e; ++i) indentLine(i, "smart");
956+
indentSelected("smart");
952957
break;
953958
case "classic":
954959
if (posEq(sel.from, sel.to)) {
@@ -957,7 +962,7 @@ var CodeMirror = (function() {
957962
break;
958963
}
959964
case "shift":
960-
for (var i = sel.from.line, e = sel.to.line; i <= e; ++i) indentLine(i, shift ? "subtract" : "add");
965+
indentSelected(shift ? "subtract" : "add");
961966
break;
962967
}
963968
return true;

0 commit comments

Comments
 (0)