2022-04-17 13:33:16 +01:00
|
|
|
import curses
|
|
|
|
|
2022-04-17 13:32:35 +01:00
|
|
|
from core import cursors, modes
|
2022-03-19 15:13:28 +00:00
|
|
|
|
|
|
|
|
|
|
|
def execute(instance, key):
|
2022-04-17 12:54:37 +01:00
|
|
|
if key == 27: # Escape
|
2022-03-19 15:13:28 +00:00
|
|
|
# Switch to normal mode
|
2022-03-19 15:41:40 +00:00
|
|
|
modes.activate(instance, "normal")
|
2022-03-19 15:13:28 +00:00
|
|
|
|
2022-04-17 13:32:35 +01:00
|
|
|
elif key in (curses.KEY_BACKSPACE, 127, '\b'): # Backspace
|
2022-04-17 12:54:37 +01:00
|
|
|
if instance.cursor[1] > 0:
|
|
|
|
# Delete the character before the cursor
|
|
|
|
instance.buffer.remove_char(instance)
|
|
|
|
|
|
|
|
# Move the cursor one to the left
|
|
|
|
cursors.push(instance, 3)
|
|
|
|
|
|
|
|
else:
|
|
|
|
# Insert the character
|
|
|
|
instance.buffer.insert_char(instance, chr(key))
|
|
|
|
|
|
|
|
# Move the cursor one to the right
|
|
|
|
cursors.push(instance, 1)
|
|
|
|
|
2022-03-19 15:13:28 +00:00
|
|
|
|
2022-03-19 15:57:38 +00:00
|
|
|
def activate():
|
2022-03-19 15:13:28 +00:00
|
|
|
# Switch the cursor to a line
|
2022-03-19 19:19:25 +00:00
|
|
|
cursors.mode("line")
|