@@ -1971,7 +1971,7 @@ fn extend_line_impl(cx: &mut Context, extend: Extend) {
19711971 let (start_line, end_line) = range.line_range(text.slice(..));
19721972
19731973 let start = text.line_to_char(match extend {
1974− Extend::Above => start_line.saturating_sub(count),
1974+ Extend::Above => start_line.saturating_sub(count - 1),
19751975 Extend::Below => start_line,
19761976 });
19771977 let end = text.line_to_char(
@@ -1985,7 +1985,7 @@ fn extend_line_impl(cx: &mut Context, extend: Extend) {
19851985 // extend to previous/next line if current line is selected
19861986 let (anchor, head) = if range.from() == start && range.to() == end {
19871987 match extend {
1988− Extend::Above => (end, text.line_to_char(start_line.saturating_sub(count + 1))),
1988+ Extend::Above => (end, text.line_to_char(start_line.saturating_sub(count))),
19891989 Extend::Below => (
19901990 start,
19911991 text.line_to_char((end_line + count + 1).min(text.len_lines())),