Module lib.shell.editor_config
Editor configuration, contains shortcuts, tab size, scrolling and others
Expand source code
# Distributed under Pycameresp License
# Copyright (c) 2023 Remi BERTHOLET
""" Editor configuration, contains shortcuts, tab size, scrolling and others """
TABSIZE = 4 # Tabulation size
HORIZONTAL_MOVE=8 # Scrolling minimal deplacement
ESCAPE = "\x1b"
# For the same action several shortcuts can be used
# Move shortcuts
UP = ["\x1b[A"]
DOWN = ["\x1b[B"]
RIGHT = ["\x1b[C"]
LEFT = ["\x1b[D"]
HOME = ["\x1b[1;3D", "\x1b[H", "\x1b\x1b[D", "\x1b[1~", "\x1bb"]
END = ["\x1b[1;3C", "\x1b[F", "\x1b\x1b[C", "\x1b[4~", "\x1bf"]
PAGE_UP = ["\x1b[1;3A", "\x1b[A", "\x1b\x1b[A", "\x1b[5~"]
PAGE_DOWN = ["\x1b[1;3B", "\x1b[B", "\x1b\x1b[B", "\x1b[6~"]
TOP = ["\x1b[1;5H"]
BOTTOM = ["\x1b[1;5F"]
NEXT_WORD = ["\x1b[1;5C"]
PREVIOUS_WORD = ["\x1b[1;5D"]
# Selection shortcuts
SELECT_UP = ["\x1b[1;2A"]
SELECT_DOWN = ["\x1b[1;2B"]
SELECT_RIGHT = ["\x1b[1;2C"]
SELECT_LEFT = ["\x1b[1;2D"]
SELECT_PAGE_UP = ["\x1b[1;10A","\x1b[1;4A","\x1b[5;2~"]
SELECT_PAGE_DOWN = ["\x1b[1;10B","\x1b[1;4B","\x1b[6;2~"]
SELECT_HOME = ["\x1b[1;2H","\x1b[1;10D"]
SELECT_END = ["\x1b[1;2F","\x1b[1;10C"]
SELECT_TOP = ["\x1b[1;6H"]
SELECT_BOTTOM = ["\x1b[1;6F"]
SELECT_NEXT_WORD = ["\x1b[1;6C","\x1b[1;4C"]
SELECT_PREV_WORD = ["\x1b[1;6D","\x1b[1;4D"]
SELECT_ALL = ["\x01"] # Select All
# Ctrl-B unused
COPY = ["\x03","\x1bc"] # Copy
# Ctrl-D unused
EXECUTE = ["\x05", "\x1b[15~"] # Execute script
FIND = ["\x06", "\x1BOQ"] # Find
GOTO = ["\x07"] # Goto line
BACKSPACE = ["\x08","\x7F"] # Backspace
INDENT = ["\x09"] # Indent
# Line feed reserved
# Ctrl-K unused
DELETE_LINE = ["\x0C"] # Delete line
NEW_LINE = ["\x0D", "\0x0A"] # New line pressed
FIND_NEXT = ["\x0E", "\x1bOR"] # Find next
# Ctrl-O unused
FIND_PREVIOUS = ["\x10", "\x1b[1;2R"] # Find previous
COMMENT = ["\x11"] # Comment block
REPLACE = ["\x12"] # Replace
SAVE = ["\x13", "\x1bs"] # Save
TOGGLE_MODE = ["\x14"] # Toggle replace/insert mode
CHANGE_CASE = ["\x15"] # Change case
PASTE = ["\x16","\x1bv"] # Paste
# Ctrl-W unused
CUT = ["\x18","\x1bx"] # Cut
# Ctrl-Y unused
# Ctrl-Z unused
EXIT = [ESCAPE] # Exit
DELETE = ["\x1b[3~"] # Delete pressed
UNINDENT = ["\x1b[Z"] # Unindent
SELECTION_START = b"\x1B[7m"
SELECTION_END = b"\x1B[m"