Skip to content

Commit

Permalink
New method BackwardDeleteBuffer as prev BackwardDeleteLine impl.
Browse files Browse the repository at this point in the history
  • Loading branch information
springcomp committed Dec 10, 2020
1 parent 5c6e89c commit 032a298
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 7 deletions.
16 changes: 14 additions & 2 deletions PSReadLine/BasicEditing.cs
Original file line number Diff line number Diff line change
Expand Up @@ -115,19 +115,31 @@ public static void ForwardDeleteLine(ConsoleKeyInfo? key = null, object arg = nu
}

/// <summary>
/// Like BackwardKillLine - deletes text from the point to the start of the line,
/// Like BackwardKillLine - deletes text from the point to the start of the buffer,
/// but does not put the deleted text in the kill ring.
public static void BackwardDeleteBuffer(ConsoleKeyInfo? key = null, object arg = null)
{
BackwardDeleteSubstring(0, BackwardDeleteBuffer);
}

/// <summary>
/// Like BackwardKillLine - deletes text from the point to the start of the logical line,
/// but does not put the deleted text in the kill ring.
/// </summary>
public static void BackwardDeleteLine(ConsoleKeyInfo? key = null, object arg = null)
{
var position = GetBeginningOfLinePos(_singleton._current);
BackwardDeleteSubstring(position, BackwardDeleteLine);
}

private static void BackwardDeleteSubstring(int position, Action<ConsoleKeyInfo?, object> instigator = null)
{
if (_singleton._current > position)
{
var count = _singleton._current - position;

_clipboard.Record(_singleton._buffer, position, count);
_singleton.SaveEditItem(EditItemDelete.Create(_clipboard, position, BackwardDeleteLine));
_singleton.SaveEditItem(EditItemDelete.Create(_clipboard, position, instigator));
_singleton._buffer.Remove(position, count);
_singleton._current = position;
_singleton.Render();
Expand Down
3 changes: 2 additions & 1 deletion PSReadLine/KeyBindings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ void SetDefaultWindowsBindings()
{ Keys.CtrlY, MakeKeyHandler(Redo, "Redo") },
{ Keys.CtrlZ, MakeKeyHandler(Undo, "Undo") },
{ Keys.CtrlBackspace, MakeKeyHandler(BackwardKillWord, "BackwardKillWord") },
{ Keys.CtrlHome, MakeKeyHandler(BackwardDeleteLine, "BackwardDeleteLine") },
{ Keys.CtrlHome, MakeKeyHandler(BackwardDeleteBuffer, "BackwardDeleteBuffer") },
{ Keys.CtrlRBracket, MakeKeyHandler(GotoBrace, "GotoBrace") },
{ Keys.CtrlAltQuestion, MakeKeyHandler(ShowKeyBindings, "ShowKeyBindings") },
{ Keys.AltPeriod, MakeKeyHandler(YankLastArg, "YankLastArg") },
Expand Down Expand Up @@ -388,6 +388,7 @@ public static KeyHandlerGroup GetDisplayGrouping(string function)
case nameof(AcceptAndGetNext):
case nameof(AcceptLine):
case nameof(AddLine):
case nameof(BackwardDeleteBuffer):
case nameof(BackwardDeleteChar):
case nameof(BackwardDeleteLine):
case nameof(BackwardDeleteWord):
Expand Down
8 changes: 4 additions & 4 deletions PSReadLine/KeyBindings.vi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ private void SetDefaultViBindings()
{ Keys.CtrlSpace, MakeKeyHandler(PossibleCompletions, "PossibleCompletions") },
{ Keys.Tab, MakeKeyHandler(ViTabCompleteNext, "ViTabCompleteNext") },
{ Keys.ShiftTab, MakeKeyHandler(ViTabCompletePrevious, "ViTabCompletePrevious") },
{ Keys.CtrlU, MakeKeyHandler(BackwardDeleteLine, "BackwardDeleteLine") },
{ Keys.CtrlU, MakeKeyHandler(BackwardDeleteBuffer, "BackwardDeleteBuffer") },
{ Keys.CtrlV, MakeKeyHandler(Paste, "Paste") },
{ Keys.CtrlC, MakeKeyHandler(CancelLine, "CancelLine") },
{ Keys.CtrlL, MakeKeyHandler(ClearScreen, "ClearScreen") },
Expand All @@ -81,7 +81,7 @@ private void SetDefaultViBindings()
{ Keys.CtrlZ, MakeKeyHandler(Undo, "Undo") },
{ Keys.CtrlBackspace, MakeKeyHandler(BackwardKillWord, "BackwardKillWord") },
{ Keys.CtrlEnd, MakeKeyHandler(ForwardDeleteLine, "ForwardDeleteLine") },
{ Keys.CtrlHome, MakeKeyHandler(BackwardDeleteLine, "BackwardDeleteLine") },
{ Keys.CtrlHome, MakeKeyHandler(BackwardDeleteBuffer, "BackwardDeleteBuffer") },
{ Keys.CtrlRBracket, MakeKeyHandler(GotoBrace, "GotoBrace") },
{ Keys.F3, MakeKeyHandler(CharacterSearch, "CharacterSearch") },
{ Keys.ShiftF3, MakeKeyHandler(CharacterSearchBackward,"CharacterSearchBackward") },
Expand Down Expand Up @@ -120,13 +120,13 @@ private void SetDefaultViBindings()
{ Keys.CtrlC, MakeKeyHandler(CancelLine, "CancelLine") },
{ Keys.CtrlL, MakeKeyHandler(ClearScreen, "ClearScreen") },
{ Keys.CtrlT, MakeKeyHandler(SwapCharacters, "SwapCharacters") },
{ Keys.CtrlU, MakeKeyHandler(BackwardDeleteLine, "BackwardDeleteLine") },
{ Keys.CtrlU, MakeKeyHandler(BackwardDeleteBuffer, "BackwardDeleteBuffer") },
{ Keys.CtrlW, MakeKeyHandler(BackwardDeleteWord, "BackwardDeleteWord") },
{ Keys.CtrlY, MakeKeyHandler(Redo, "Redo") },
{ Keys.CtrlZ, MakeKeyHandler(Undo, "Undo") },
{ Keys.CtrlBackspace, MakeKeyHandler(BackwardKillWord, "BackwardKillWord") },
{ Keys.CtrlEnd, MakeKeyHandler(ForwardDeleteLine, "ForwardDeleteLine") },
{ Keys.CtrlHome, MakeKeyHandler(BackwardDeleteLine, "BackwardDeleteLine") },
{ Keys.CtrlHome, MakeKeyHandler(BackwardDeleteBuffer, "BackwardDeleteBuffer") },
{ Keys.CtrlRBracket, MakeKeyHandler(GotoBrace, "GotoBrace") },
{ Keys.F3, MakeKeyHandler(CharacterSearch, "CharacterSearch") },
{ Keys.ShiftF3, MakeKeyHandler(CharacterSearchBackward, "CharacterSearchBackward") },
Expand Down
3 changes: 3 additions & 0 deletions PSReadLine/PSReadLineResources.resx
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,9 @@
<data name="BackwardCharDescription" xml:space="preserve">
<value>Move the cursor back one character</value>
</data>
<data name="BackwardDeleteBufferDescription" xml:space="preserve">
<value>Delete text from the cursor to the start of the input</value>
</data>
<data name="BackwardDeleteCharDescription" xml:space="preserve">
<value>Delete the character before the cursor</value>
</data>
Expand Down

0 comments on commit 032a298

Please sign in to comment.