Skip to content

Commit c85a1e6

Browse files
committed
Adds support for C-d delete
Fixes tonerdo#40
1 parent e6dda7a commit c85a1e6

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ It is cross platform and runs anywhere .NET is supported, targeting `netstandard
2929
| `Ctrl`+`U` | Cut text to the start of line |
3030
| `Ctrl`+`W` | Cut previous word |
3131
| `Backspace` | Delete previous character |
32-
| `Delete` | Delete succeeding character |
32+
| `Ctrl` + `D` / `Delete` | Delete succeeding character |
3333

3434

3535
## Installation

src/ReadLine/KeyHandler.cs

+1
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ public KeyHandler(IConsole console, List<string> history, IAutoCompleteHandler a
238238
_keyActions["ControlE"] = MoveCursorEnd;
239239
_keyActions["Backspace"] = Backspace;
240240
_keyActions["Delete"] = Delete;
241+
_keyActions["ControlD"] = Delete;
241242
_keyActions["ControlH"] = Backspace;
242243
_keyActions["ControlL"] = ClearLine;
243244
_keyActions["Escape"] = ClearLine;

test/ReadLine.Tests/KeyHandlerTests.cs

+15
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,21 @@ public void TestRightArrow()
201201
Assert.Equal("Hello!", _keyHandler.Text);
202202
}
203203

204+
[Fact]
205+
public void TestControlD()
206+
{
207+
for (var i = 0; i < 4; i++)
208+
{
209+
_keyInfo = new ConsoleKeyInfo('\0', ConsoleKey.LeftArrow, false, false, false);
210+
_keyHandler.Handle(_keyInfo);
211+
}
212+
213+
_keyInfo = new ConsoleKeyInfo('\u0004', ConsoleKey.D, false, false, true);
214+
_keyHandler.Handle(_keyInfo);
215+
216+
Assert.Equal("Hllo", _keyHandler.Text);
217+
}
218+
204219
[Fact]
205220
public void TestControlF()
206221
{

0 commit comments

Comments
 (0)