reimplement 'G' motion so that it follows new rule (cursor goes to second-last chr if last chr is a newline preceded by a non-newline, but goes to last chr otherwise)
This commit is contained in:
@@ -68,6 +68,13 @@ struct
|
||||
val bufferIdx = Int.max (0, textLength - 1)
|
||||
val bufferLine = bufferLine - 1
|
||||
|
||||
val buffer = LineGap.goToIdx (bufferIdx, buffer)
|
||||
val bufferIdx =
|
||||
if Cursor.isOnNewlineAfterChr (buffer, bufferIdx) then
|
||||
Int.max (0, bufferIdx - 1)
|
||||
else
|
||||
bufferIdx
|
||||
|
||||
val buffer = LineGap.goToIdx (bufferIdx, buffer)
|
||||
val visualScrollColumn =
|
||||
TextScroll.getScrollColumn
|
||||
@@ -248,10 +255,8 @@ struct
|
||||
val lineIdx = LineGap.lineNumberToIdx (newCursorLineNumber, buffer)
|
||||
|
||||
val lineIdx =
|
||||
if Cursor.isPrevChrStartOfLine (buffer, lineIdx) then
|
||||
lineIdx
|
||||
else
|
||||
lineIdx - 1
|
||||
if Cursor.isPrevChrStartOfLine (buffer, lineIdx) then lineIdx
|
||||
else lineIdx - 1
|
||||
val buffer = LineGap.goToIdx (lineIdx, buffer)
|
||||
val lineIdx = Cursor.vi0 (buffer, lineIdx)
|
||||
|
||||
@@ -274,10 +279,8 @@ struct
|
||||
val buffer = LineGap.goToIdx (lineIdx, buffer)
|
||||
|
||||
val lineIdx =
|
||||
if Cursor.isPrevChrStartOfLine (buffer, lineIdx) then
|
||||
lineIdx
|
||||
else
|
||||
lineIdx + 1
|
||||
if Cursor.isPrevChrStartOfLine (buffer, lineIdx) then lineIdx
|
||||
else lineIdx + 1
|
||||
|
||||
val lineIdx =
|
||||
if lineIdx >= #textLength buffer - 1 then
|
||||
|
||||
Reference in New Issue
Block a user