diff --git a/keymap/sublime.js b/keymap/sublime.js index c5d2906bc0fa6e83a0d56433a37085a32a4ab88e..3d112ab961b8d99d2b07176dbdf6f633bbb732bb 100644 --- a/keymap/sublime.js +++ b/keymap/sublime.js @@ -310,7 +310,8 @@ if (range.empty()) continue; var from = range.from().line, to = range.to().line; while (i < ranges.length - 1 && ranges[i + 1].from().line == to) - to = range[++i].to().line; + to = ranges[++i].to().line; + if (!ranges[i].to().ch) to--; toSort.push(from, to); } if (toSort.length) selected = true; @@ -331,7 +332,7 @@ return a < b ? -1 : a == b ? 0 : 1; }); cm.replaceRange(lines, start, end); - if (selected) ranges.push({anchor: start, head: end}); + if (selected) ranges.push({anchor: start, head: Pos(to + 1, 0)}); } if (selected) cm.setSelections(ranges, 0); }); diff --git a/test/sublime_test.js b/test/sublime_test.js index c5c19c0a23a030b128d9988e3f9f453b9c00eda5..57f16485e13e584d1313e1b5e1b99b03a254cdfc 100644 --- a/test/sublime_test.js +++ b/test/sublime_test.js @@ -249,11 +249,11 @@ "undo", setSel(0, 0, 2, 0, 3, 0, 5, 0), - "sortLines", val("a\nb\nc\nA\nB\nC"), - hasSel(0, 0, 2, 1, - 3, 0, 5, 1), + "sortLines", val("b\nc\na\nB\nC\nA"), + hasSel(0, 0, 2, 0, + 3, 0, 5, 0), "undo", - setSel(1, 0, 4, 0), "sortLinesInsensitive", val("c\na\nB\nb\nC\nA")); + setSel(1, 0, 5, 0), "sortLinesInsensitive", val("c\na\nB\nb\nC\nA")); stTest("bookmarks", "abc\ndef\nghi\njkl", Pos(0, 1), "toggleBookmark",