a bit of refactoring
This commit is contained in:
@@ -256,90 +256,9 @@ struct
|
||||
| #"E" =>
|
||||
NormalYank.yankWhenMovingForward (app, Cursor.endOfWORDForDelete, count)
|
||||
| #"$" => NormalYank.yankWhenMovingForward (app, Cursor.viDlr, 1)
|
||||
| #"^" =>
|
||||
let
|
||||
open DrawMsg
|
||||
open MailboxType
|
||||
|
||||
val {buffer, cursorIdx, ...} = app
|
||||
|
||||
val buffer = LineGap.goToIdx (cursorIdx, buffer)
|
||||
val otherIdx = Cursor.vi0 (buffer, cursorIdx)
|
||||
|
||||
val buffer = LineGap.goToIdx (otherIdx, buffer)
|
||||
val otherIdx = Cursor.firstNonSpaceChr (buffer, otherIdx)
|
||||
in
|
||||
if cursorIdx > otherIdx then
|
||||
(* yanking backwards from cursorIdx *)
|
||||
let
|
||||
val () = print "272\n"
|
||||
val length = cursorIdx - otherIdx + 1
|
||||
val buffer = LineGap.goToIdx (otherIdx, buffer)
|
||||
|
||||
val str = LineGap.substring (otherIdx, length, buffer)
|
||||
val msg = YANK str
|
||||
val mode = NORMAL_MODE ""
|
||||
in
|
||||
NormalModeWith.modeAndBuffer (app, buffer, mode, [DRAW msg])
|
||||
end
|
||||
else if cursorIdx < otherIdx then
|
||||
(* yanking forward from cursorIdx *)
|
||||
let
|
||||
val length = otherIdx - cursorIdx
|
||||
val str = LineGap.substring (cursorIdx, length, buffer)
|
||||
val msg = YANK str
|
||||
val mode = NORMAL_MODE ""
|
||||
in
|
||||
NormalModeWith.modeAndBuffer (app, buffer, mode, [DRAW msg])
|
||||
end
|
||||
else
|
||||
NormalFinish.clearMode app
|
||||
end
|
||||
| #"G" =>
|
||||
let
|
||||
open DrawMsg
|
||||
open MailboxType
|
||||
|
||||
val {buffer, cursorIdx, ...} = app
|
||||
|
||||
val buffer = LineGap.goToEnd buffer
|
||||
val {rightStrings, idx, ...} = buffer
|
||||
val finishIdx = Int.max (0, idx - 1)
|
||||
|
||||
val length = finishIdx - cursorIdx
|
||||
val str = LineGap.substring (cursorIdx, length, buffer)
|
||||
|
||||
val msg = YANK str
|
||||
val mode = NORMAL_MODE ""
|
||||
in
|
||||
NormalModeWith.modeAndBuffer (app, buffer, mode, [DRAW msg])
|
||||
end
|
||||
| #"%" =>
|
||||
let
|
||||
open DrawMsg
|
||||
open MailboxType
|
||||
|
||||
val {buffer, cursorIdx, ...} = app
|
||||
|
||||
val otherIdx = Cursor.matchPair (buffer, cursorIdx)
|
||||
in
|
||||
if cursorIdx = otherIdx then
|
||||
NormalFinish.clearMode app
|
||||
else
|
||||
let
|
||||
val low = Int.min (cursorIdx, otherIdx)
|
||||
val high = Int.max (cursorIdx, otherIdx)
|
||||
val length = high - low + 1
|
||||
|
||||
val buffer = LineGap.goToIdx (high, buffer)
|
||||
val str = LineGap.substring (low, length, buffer)
|
||||
|
||||
val msg = YANK str
|
||||
val mode = NORMAL_MODE ""
|
||||
in
|
||||
NormalModeWith.modeAndBuffer (app, buffer, mode, [DRAW msg])
|
||||
end
|
||||
end
|
||||
| #"^" => NormalYank.yankToFirstNonSpaceChr app
|
||||
| #"G" => NormalYank.yankToEndOfText app
|
||||
| #"%" => NormalYank.yankToMatchingPair app
|
||||
| #"n" =>
|
||||
let
|
||||
open DrawMsg
|
||||
|
||||
Reference in New Issue
Block a user