Files

29 lines
833 B
Plaintext
Raw Permalink Normal View History

2024-03-08 18:32:25 -08:00
import os
def __is_prompt_start() -> str:
return "\001" + "\x1b]6973;PS\x07"
def __is_prompt_end() -> str:
return "\001" + "\x1b]6973;PE\x07" + "\002"
def __is_escape_value(value: str) -> str:
byte_list = [bytes([byte]).decode("utf-8") for byte in list(value.encode("utf-8"))]
return "".join(
[
"\\x3b" if byte == ";" else "\\\\" if byte == "\\" else byte
for byte in byte_list
]
)
def __is_update_cwd() -> str:
return f"\x1b]6973;CWD;{__is_escape_value(os.getcwd())}\x07" + "\002"
$PROMPT_FIELDS['__is_prompt_start'] = __is_prompt_start
$PROMPT_FIELDS['__is_prompt_end'] = __is_prompt_end
$PROMPT_FIELDS['__is_update_cwd'] = __is_update_cwd
if $ISTERM_TESTING:
$PROMPT = "> "
$PROMPT = "{__is_prompt_start}{__is_update_cwd}" + $PROMPT + "{__is_prompt_end}"