|
1 |
| -# import sys |
| 1 | +import sys |
2 | 2 |
|
3 |
| -# original_ps1 = ">>> " |
| 3 | +original_ps1 = ">>> " |
4 | 4 |
|
5 | 5 |
|
6 |
| -# class repl_hooks: |
7 |
| -# def __init__(self): |
8 |
| -# self.global_exit = None |
9 |
| -# self.failure_flag = False |
10 |
| -# self.original_excepthook = sys.excepthook |
11 |
| -# self.original_displayhook = sys.displayhook |
12 |
| -# sys.excepthook = self.my_excepthook |
13 |
| -# sys.displayhook = self.my_displayhook |
| 6 | +class repl_hooks: |
| 7 | + def __init__(self): |
| 8 | + self.global_exit = None |
| 9 | + self.failure_flag = False |
| 10 | + self.original_excepthook = sys.excepthook |
| 11 | + self.original_displayhook = sys.displayhook |
| 12 | + sys.excepthook = self.my_excepthook |
| 13 | + sys.displayhook = self.my_displayhook |
14 | 14 |
|
15 |
| -# def my_displayhook(self, value): |
16 |
| -# if value is None: |
17 |
| -# self.failure_flag = False |
| 15 | + def my_displayhook(self, value): |
| 16 | + if value is None: |
| 17 | + self.failure_flag = False |
18 | 18 |
|
19 |
| -# self.original_displayhook(value) |
| 19 | + self.original_displayhook(value) |
20 | 20 |
|
21 |
| -# def my_excepthook(self, type, value, traceback): |
22 |
| -# self.global_exit = value |
23 |
| -# self.failure_flag = True |
| 21 | + def my_excepthook(self, type, value, traceback): |
| 22 | + self.global_exit = value |
| 23 | + self.failure_flag = True |
24 | 24 |
|
25 |
| -# self.original_excepthook(type, value, traceback) |
| 25 | + self.original_excepthook(type, value, traceback) |
26 | 26 |
|
27 | 27 |
|
28 |
| -# class ps1: |
29 |
| -# hooks = repl_hooks() |
30 |
| -# sys.excepthook = hooks.my_excepthook |
31 |
| -# sys.displayhook = hooks.my_displayhook |
| 28 | +class ps1: |
| 29 | + hooks = repl_hooks() |
| 30 | + sys.excepthook = hooks.my_excepthook |
| 31 | + sys.displayhook = hooks.my_displayhook |
32 | 32 |
|
33 |
| -# # str will get called for every prompt with exit code to show success/failure |
34 |
| -# def __str__(self): |
35 |
| -# exit_code = 0 |
36 |
| -# if self.hooks.failure_flag: |
37 |
| -# exit_code = 1 |
38 |
| -# else: |
39 |
| -# exit_code = 0 |
| 33 | + # str will get called for every prompt with exit code to show success/failure |
| 34 | + def __str__(self): |
| 35 | + exit_code = 0 |
| 36 | + if self.hooks.failure_flag: |
| 37 | + exit_code = 1 |
| 38 | + else: |
| 39 | + exit_code = 0 |
40 | 40 |
|
41 |
| -# # Guide following official VS Code doc for shell integration sequence: |
42 |
| -# # result = "{command_finished}{prompt_started}{prompt}{command_start}{command_executed}".format( |
43 |
| -# # command_finished="\x1b]633;D;" + str(exit_code) + "\x07", |
44 |
| -# # prompt_started="\x1b]633;A\x07", |
45 |
| -# # prompt=original_ps1, |
46 |
| -# # command_start="\x1b]633;B\x07", |
47 |
| -# # command_executed="\x1b]633;C\x07", |
48 |
| -# # ) |
49 |
| -# result = f"{chr(27)}]633;D;{exit_code}{chr(7)}{chr(27)}]633;A{chr(7)}{original_ps1}{chr(27)}]633;B{chr(7)}{chr(27)}]633;C{chr(7)}" |
| 41 | + # Guide following official VS Code doc for shell integration sequence: |
| 42 | + # result = "{command_finished}{prompt_started}{prompt}{command_start}{command_executed}".format( |
| 43 | + # command_finished="\x1b]633;D;" + str(exit_code) + "\x07", |
| 44 | + # prompt_started="\x1b]633;A\x07", |
| 45 | + # prompt=original_ps1, |
| 46 | + # command_start="\x1b]633;B\x07", |
| 47 | + # command_executed="\x1b]633;C\x07", |
| 48 | + # ) |
| 49 | + result = f"{chr(27)}]633;D;{exit_code}{chr(7)}{chr(27)}]633;A{chr(7)}{original_ps1}{chr(27)}]633;B{chr(7)}{chr(27)}]633;C{chr(7)}" |
50 | 50 |
|
51 |
| -# return result |
| 51 | + return result |
52 | 52 |
|
53 | 53 |
|
54 |
| -# if sys.platform != "win32": |
55 |
| -# sys.ps1 = ps1() |
| 54 | +if sys.platform != "win32": |
| 55 | + sys.ps1 = ps1() |
0 commit comments