Insertion
of textDeletion
of textSelection
of textCursor
which shows the position within the text at which a user's action will occur.Keyboard Movement
ArrowLeft
: Move cursor one column to the left, or wrap to the previous line if one exists.Control Modifier
: Move cursor to the left until the text for the current word finishes, or wrap to the previous line if one exists.
ArrowDown
: Move cursor one row down.Control Modifier
: Scroll vertically down by the height of a row
ArrowUp
: Move cursor one row up.Control Modifier
: Scroll vertically up by the height of a row
ArrowRight
: Move cursor one column to the right, or wrap to the next line if one exists.Control Modifier
: Move cursor to the right until the text for the current word finishes, or wrap to the previous line if one exists..
Home
: Move cursor to the first column of the current row.Control Modifier
: Move cursor to the first row. Afterwards, perform theHome
keybind without theControl Modifier
.
End
: Move cursor to the last column of the current row.Control Modifier
: Move cursor to the last row. Afterwards, perform theEnd
keybind without theControl Modifier
.
Shift Key
Modified Keyboard Movement- If text is not already selected an anchor position will be made as the starting position of the cursor. Then the ending position will be where the cursor ends up after the movement. Should text already be selected then only the ending position modification occurs.
Mouse Movement
OnMouseDown
moveCursor
OnMouseMove
moveCursor
Mouse Selection of Text
No use of Shift Modifier
: If text is not already selected, then OnMouseDown will make an anchor at the position of the cursor after it gets moved due to the OnMouseDown event. One can then move the mouse and place an ending position. The anchor and ending positions act as goal posts in regards to mentally imagining how they work. The text between them gets selected.With use of Shift Modifier
: If text is not already selected, then OnMouseDown will make an anchor at the position of the cursor PRIOR to the OnMouseDown event. Additionally an ending position will be made at the position that the OnMouseDown event occurred. One can then move the mouse and place an ending position. The anchor and ending positions act as goal posts in regards to mentally imagining how they work. The text between them gets selected.Double Click Expand Selection
: double click on a word to select the entirety of that word.
Keyboard Scroll Position Modification Keymaps
PageUp
: Scroll vertically up by the height of the text editor.PageDown
: Scroll vertically down by the height of the text editor.- {
Control Modifier
+ArrowUp
}: Scroll vertically up by the height of a row. - {
Control Modifier
+ArrowDown
}: Scroll vertically down by the height of a row.
Virtualization
of rendered user interfaceVertical
virtualizationHorizontal
virtualizationwhen using a monospace font
.
Vim Emulator
Modes
:Normal
ModeVisual
ModeVisual Line
ModeCommand
Mode
Repeat
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- As well one can use more than one digit to go greater than 9.
Text Object
w
=>Word
e
=>End
b
=>Back
h
=>ArrowLeft
j
=>ArrowDown
k
=>ArrowUp
l
=>ArrowRight
$
=>End
0
=>Home
Verb
d
=>Delete
c
=>Change
- {
Control Modifier
+e
} =>ScrollLineDown
- {
Control Modifier
+y
} =>ScrollLineUp
Syntax Highlighting
ILexer.cs
the implementation walks the text and returns a list of what decoration byte should be applied when rendered for a given span of text.IDecorationMapper.cs
takes in a decoration byte and returns a css class.