Delete modes directory
This commit is contained in:
parent
0219587289
commit
c1f526d0bc
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,90 +0,0 @@
|
|||||||
from core import statusbar, utils
|
|
||||||
import curses
|
|
||||||
|
|
||||||
|
|
||||||
def execute(screen, data, commands):
|
|
||||||
if not commands:
|
|
||||||
# Quit if there are no commands, don't check anything
|
|
||||||
return data
|
|
||||||
|
|
||||||
for command in commands:
|
|
||||||
if command == "w":
|
|
||||||
# Write to the file
|
|
||||||
pass
|
|
||||||
|
|
||||||
elif command == "q":
|
|
||||||
# Goodbye prompt
|
|
||||||
utils.goodbye(screen, data)
|
|
||||||
|
|
||||||
elif command == "t":
|
|
||||||
# Theme switcher
|
|
||||||
if data["statusbar_theme"] == "filled":
|
|
||||||
data["statusbar_theme"] = "bare"
|
|
||||||
|
|
||||||
else:
|
|
||||||
data["statusbar_theme"] = "filled"
|
|
||||||
|
|
||||||
else:
|
|
||||||
utils.error(screen, data, f"Not an editor command: '{command}'")
|
|
||||||
|
|
||||||
return data
|
|
||||||
|
|
||||||
|
|
||||||
def activate(screen, data):
|
|
||||||
# Initialise variables
|
|
||||||
commands = []
|
|
||||||
|
|
||||||
# Visibly switch to command mode
|
|
||||||
statusbar.refresh(screen, data)
|
|
||||||
screen.addstr(data["height"]-1, 0, ":")
|
|
||||||
screen.move(data["height"]-1, 1)
|
|
||||||
|
|
||||||
# Main loop
|
|
||||||
while True:
|
|
||||||
# Get a key inputted by the user
|
|
||||||
key = screen.getch()
|
|
||||||
|
|
||||||
# Handle subtracting a key (backspace)
|
|
||||||
if key == curses.KEY_BACKSPACE:
|
|
||||||
# Write whitespace over characters to refresh it
|
|
||||||
screen.addstr(data["height"]-1, 1, " " * len(commands))
|
|
||||||
|
|
||||||
if commands:
|
|
||||||
# Subtract a character
|
|
||||||
commands.pop()
|
|
||||||
else:
|
|
||||||
# Exit command mode and enter normal mode if there is nothing left
|
|
||||||
data["mode"] = "normal"
|
|
||||||
return data
|
|
||||||
|
|
||||||
elif key == 27:
|
|
||||||
# Exit command mode and enter normal mode if "esc" is pressed
|
|
||||||
data["mode"] = "normal"
|
|
||||||
return data
|
|
||||||
|
|
||||||
elif key in (curses.KEY_ENTER, ord('\n'), ord('\r'), ord(":"), ord(";")):
|
|
||||||
# Execute commands
|
|
||||||
data = execute(screen, data, commands)
|
|
||||||
|
|
||||||
# Clear the bottom bar
|
|
||||||
screen.addstr(data["height"] - 1, 0, " " * (data["width"] - 1))
|
|
||||||
|
|
||||||
# Return to normal mode after executing a command
|
|
||||||
data["mode"] = "normal"
|
|
||||||
return data
|
|
||||||
|
|
||||||
else:
|
|
||||||
# If any other key is typed, append it
|
|
||||||
# As long as the key is in the valid list
|
|
||||||
valid = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ!"
|
|
||||||
if chr(key) in valid and len(commands) < (data["width"] - 2):
|
|
||||||
commands.append(chr(key))
|
|
||||||
|
|
||||||
# Join the commands together for visibility on the screen
|
|
||||||
friendly_command = "".join(commands)
|
|
||||||
|
|
||||||
# Write the commands to the screen
|
|
||||||
screen.addstr(data["height"]-1, 1, friendly_command)
|
|
||||||
|
|
||||||
# Move the cursor the end of the commands
|
|
||||||
screen.move(data["height"]-1, len(commands)+1)
|
|
@ -1,33 +0,0 @@
|
|||||||
from core import statusbar, cursor
|
|
||||||
|
|
||||||
|
|
||||||
def execute(data, key):
|
|
||||||
return data
|
|
||||||
|
|
||||||
|
|
||||||
def activate(screen, data):
|
|
||||||
# Refresh the status bar with a different colour for insert
|
|
||||||
data["statusbar_colors"] = [8, 12, 14, 2]
|
|
||||||
statusbar.refresh(screen, data)
|
|
||||||
|
|
||||||
# Refresh the status bar
|
|
||||||
statusbar.refresh(screen, data)
|
|
||||||
|
|
||||||
# Move the cursor
|
|
||||||
cursor.move(screen, data)
|
|
||||||
|
|
||||||
# Switch to a line cursor
|
|
||||||
cursor.cursor_mode("line")
|
|
||||||
|
|
||||||
# Wait for and capture a key press from the user
|
|
||||||
key = screen.getch()
|
|
||||||
|
|
||||||
# Exit insert mode
|
|
||||||
if key == 27:
|
|
||||||
data["mode"] = "normal"
|
|
||||||
return data
|
|
||||||
|
|
||||||
# Check keybindings
|
|
||||||
data = execute(data, key)
|
|
||||||
|
|
||||||
return data
|
|
@ -1,54 +0,0 @@
|
|||||||
from core import statusbar, cursor
|
|
||||||
import curses
|
|
||||||
|
|
||||||
|
|
||||||
def execute(data, key):
|
|
||||||
if key == ord("j"):
|
|
||||||
# Move the cursor down
|
|
||||||
data["cursor_y"] += 1
|
|
||||||
|
|
||||||
elif key == ord("k"):
|
|
||||||
# Move the cursor up
|
|
||||||
data["cursor_y"] -= 1
|
|
||||||
|
|
||||||
elif key == ord("l"):
|
|
||||||
# Move the cursor right
|
|
||||||
data["cursor_x"] += 1
|
|
||||||
|
|
||||||
elif key == ord("h"):
|
|
||||||
# Move the cursor left
|
|
||||||
data["cursor_x"] -= 1
|
|
||||||
|
|
||||||
elif key == ord("i"):
|
|
||||||
# Exit normal mode and enter insert mode
|
|
||||||
data["mode"] = "insert"
|
|
||||||
|
|
||||||
elif key == ord("I"):
|
|
||||||
# Exit normal mode and enter insert mode
|
|
||||||
data["cursor_x"] += 1
|
|
||||||
data["mode"] = "insert"
|
|
||||||
|
|
||||||
elif key in (ord(":"), ord(";")):
|
|
||||||
# Exit normal mode and enter command mode
|
|
||||||
data["mode"] = "command"
|
|
||||||
|
|
||||||
return data
|
|
||||||
|
|
||||||
|
|
||||||
def activate(screen, data):
|
|
||||||
# Refresh the status bar
|
|
||||||
statusbar.refresh(screen, data)
|
|
||||||
|
|
||||||
# Move the cursor
|
|
||||||
cursor.move(screen, data)
|
|
||||||
|
|
||||||
# Switch the cursor to a block
|
|
||||||
cursor.cursor_mode("block")
|
|
||||||
|
|
||||||
# Wait for and capture a key press from the user
|
|
||||||
key = screen.getch()
|
|
||||||
|
|
||||||
# Check against the keybindings
|
|
||||||
data = execute(data, key)
|
|
||||||
|
|
||||||
return data
|
|
Loading…
Reference in New Issue
Block a user