From 5c785ab1aca0bd7e8e8aafa9e0ebdce166f6c47a Mon Sep 17 00:00:00 2001 From: Zachary Yedidia Date: Thu, 3 Aug 2017 12:42:40 -0400 Subject: [PATCH] Fix MoveLines when user has a selection Ref #767 --- cmd/micro/actions.go | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/cmd/micro/actions.go b/cmd/micro/actions.go index 69068132..ee1fa407 100644 --- a/cmd/micro/actions.go +++ b/cmd/micro/actions.go @@ -1148,12 +1148,16 @@ func (v *View) MoveLinesUp(usePlugin bool) bool { messenger.Message("Can not move further up") return true } + start := v.Cursor.CurSelection[0].Y + end := v.Cursor.CurSelection[1].Y + if start > end { + end, start = start, end + } + v.Buf.MoveLinesUp( - v.Cursor.CurSelection[0].Y, - v.Cursor.CurSelection[1].Y, + start, + end, ) - v.Cursor.UpN(1) - v.Cursor.CurSelection[0].Y -= 1 v.Cursor.CurSelection[1].Y -= 1 messenger.Message("Moved up selected line(s)") } else { @@ -1186,13 +1190,16 @@ func (v *View) MoveLinesDown(usePlugin bool) bool { messenger.Message("Can not move further down") return true } + start := v.Cursor.CurSelection[0].Y + end := v.Cursor.CurSelection[1].Y + if start > end { + end, start = start, end + } + v.Buf.MoveLinesDown( - v.Cursor.CurSelection[0].Y, - v.Cursor.CurSelection[1].Y, + start, + end, ) - v.Cursor.DownN(1) - v.Cursor.CurSelection[0].Y += 1 - v.Cursor.CurSelection[1].Y += 1 messenger.Message("Moved down selected line(s)") } else { if v.Cursor.Loc.Y >= len(v.Buf.lines)-1 {