1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
#
# coding=utf-8
"""Constants and definitions"""
import re
from colorama import Fore, Back
# Used for command parsing, output redirection, tab completion and word
# breaks. Do not change.
QUOTES = ['"', "'"]
REDIRECTION_PIPE = '|'
REDIRECTION_OUTPUT = '>'
REDIRECTION_APPEND = '>>'
REDIRECTION_CHARS = [REDIRECTION_PIPE, REDIRECTION_OUTPUT]
REDIRECTION_TOKENS = [REDIRECTION_PIPE, REDIRECTION_OUTPUT, REDIRECTION_APPEND]
COMMENT_CHAR = '#'
MULTILINE_TERMINATOR = ';'
# Regular expression to match ANSI escape codes
ANSI_ESCAPE_RE = re.compile(r'\x1b[^m]*m')
LINE_FEED = '\n'
# Values for colors setting
COLORS_NEVER = 'Never'
COLORS_TERMINAL = 'Terminal'
COLORS_ALWAYS = 'Always'
# Foreground color presets.
FG_COLORS = {
'black': Fore.BLACK,
'red': Fore.RED,
'green': Fore.GREEN,
'yellow': Fore.YELLOW,
'blue': Fore.BLUE,
'magenta': Fore.MAGENTA,
'cyan': Fore.CYAN,
'white': Fore.WHITE,
'gray': Fore.LIGHTBLACK_EX,
'lightred': Fore.LIGHTRED_EX,
'lightblue': Fore.LIGHTBLUE_EX,
'lightgreen': Fore.LIGHTGREEN_EX,
'lightyellow': Fore.LIGHTYELLOW_EX,
'lightmagenta': Fore.LIGHTMAGENTA_EX,
'lightcyan': Fore.LIGHTCYAN_EX,
'lightwhite': Fore.LIGHTWHITE_EX,
'reset': Fore.RESET,
}
# Background color presets.
BG_COLORS = {
'black': Back.BLACK,
'red': Back.RED,
'green': Back.GREEN,
'yellow': Back.YELLOW,
'blue': Back.BLUE,
'magenta': Back.MAGENTA,
'cyan': Back.CYAN,
'white': Back.WHITE,
'gray': Back.LIGHTBLACK_EX,
'lightred': Back.LIGHTRED_EX,
'lightblue': Back.LIGHTBLUE_EX,
'lightgreen': Back.LIGHTGREEN_EX,
'lightyellow': Back.LIGHTYELLOW_EX,
'lightmagenta': Back.LIGHTMAGENTA_EX,
'lightcyan': Back.LIGHTCYAN_EX,
'lightwhite': Back.LIGHTWHITE_EX,
'reset': Back.RESET,
}
DEFAULT_SHORTCUTS = {'?': 'help', '!': 'shell', '@': 'run_script', '@@': '_relative_run_script'}
|