##// END OF EJS Templates
autoformat with black
Matthias Bussonnier -
Show More
@@ -87,10 +87,23 b' def create_ipython_shortcuts(shell):'
87
87
88
88
89 def newline_or_execute_outer(shell):
89 def newline_or_execute_outer(shell):
90
91 import black
90 def newline_or_execute(event):
92 def newline_or_execute(event):
91 """When the user presses return, insert a newline or execute the code."""
93 """When the user presses return, insert a newline or execute the code."""
92 b = event.current_buffer
94 b = event.current_buffer
93 d = b.document
95 d = b.document
96 def try_reformat():
97 try:
98 tbc = b.delete_before_cursor(len(d.text[:d.cursor_position]))
99 fmt= black.format_str(tbc, mode=black.FileMode())
100 if not tbc.endswith('\n') and fmt.endswith('\n'):
101 fmt = fmt[:-1]
102 b.insert_text(fmt)
103 #print(f'no eexc |{tbc[-1]}|,|{d.text[-1]}|, |{fmt[-3:-1]}|')
104 except Exception as e:
105 b.insert_text(tbc)
106
94
107
95 if b.complete_state:
108 if b.complete_state:
96 cc = b.complete_state.current_completion
109 cc = b.complete_state.current_completion
@@ -118,9 +131,11 b' def newline_or_execute_outer(shell):'
118 return
131 return
119
132
120 if (status != 'incomplete') and b.accept_handler:
133 if (status != 'incomplete') and b.accept_handler:
134 try_reformat()
121 b.validate_and_handle()
135 b.validate_and_handle()
122 else:
136 else:
123 if shell.autoindent:
137 if shell.autoindent:
138 try_reformat()
124 b.insert_text('\n' + indent)
139 b.insert_text('\n' + indent)
125 else:
140 else:
126 b.insert_text('\n')
141 b.insert_text('\n')
General Comments 0
You need to be logged in to leave comments. Login now