| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 39911ac commit ef69e4e
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -235,111 +235,5 @@ def combined_events(event_provider, paste_threshold=3): | |||
| 235 | 235 | return g | |
| 236 | 236 | ||
| 237 | 237 | ||
| 238 | - def mainloop(config, locals_, banner, interp=None, paste=None, | ||
| 239 | - interactive=True): | ||
| 240 | - with curtsies.input.Input(keynames='curtsies', | ||
| 241 | - sigint_event=True, | ||
| 242 | - paste_threshold=None) as input_generator: | ||
| 243 | - with curtsies.window.CursorAwareWindow( | ||
| 244 | - sys.stdout, | ||
| 245 | - sys.stdin, | ||
| 246 | - keep_last_line=True, | ||
| 247 | - hide_cursor=False, | ||
| 248 | - extra_bytes_callback=input_generator.unget_bytes) as window: | ||
| 249 | - | ||
| 250 | - request_refresh = input_generator.event_trigger( | ||
| 251 | - bpythonevents.RefreshRequestEvent) | ||
| 252 | - schedule_refresh = input_generator.scheduled_event_trigger( | ||
| 253 | - bpythonevents.ScheduledRefreshRequestEvent) | ||
| 254 | - request_reload = input_generator.threadsafe_event_trigger( | ||
| 255 | - bpythonevents.ReloadEvent) | ||
| 256 | - interrupting_refresh = input_generator.threadsafe_event_trigger( | ||
| 257 | - lambda: None) | ||
| 258 | - request_undo = input_generator.event_trigger( | ||
| 259 | - bpythonevents.UndoEvent) | ||
| 260 | - | ||
| 261 | - def on_suspend(): | ||
| 262 | - window.__exit__(None, None, None) | ||
| 263 | - input_generator.__exit__(None, None, None) | ||
| 264 | - | ||
| 265 | - def after_suspend(): | ||
| 266 | - input_generator.__enter__() | ||
| 267 | - window.__enter__() | ||
| 268 | - interrupting_refresh() | ||
| 269 | - | ||
| 270 | - def get_top_usable_line(): | ||
| 271 | - return window.top_usable_row | ||
| 272 | - | ||
| 273 | - # global for easy introspection `from bpython.curtsies import repl` | ||
| 274 | - global repl | ||
| 275 | - with Repl(config=config, | ||
| 276 | - locals_=locals_, | ||
| 277 | - request_refresh=request_refresh, | ||
| 278 | - schedule_refresh=schedule_refresh, | ||
| 279 | - request_reload=request_reload, | ||
| 280 | - request_undo=request_undo, | ||
| 281 | - get_term_hw=window.get_term_hw, | ||
| 282 | - get_cursor_vertical_diff=window.get_cursor_vertical_diff, | ||
| 283 | - banner=banner, | ||
| 284 | - interp=interp, | ||
| 285 | - interactive=interactive, | ||
| 286 | - orig_tcattrs=input_generator.original_stty, | ||
| 287 | - on_suspend=on_suspend, | ||
| 288 | - after_suspend=after_suspend, | ||
| 289 | - get_top_usable_line=get_top_usable_line) as repl: | ||
| 290 | - repl.height, repl.width = window.t.height, window.t.width | ||
| 291 | - | ||
| 292 | - repl.request_paint_to_pad_bottom = 6 | ||
| 293 | - | ||
| 294 | - def process_event(e): | ||
| 295 | - """If None is passed in, just paint the screen""" | ||
| 296 | - try: | ||
| 297 | - if e is not None: | ||
| 298 | - repl.process_event(e) | ||
| 299 | - except (SystemExitFromCodeGreenlet, SystemExit) as err: | ||
| 300 | - array, cursor_pos = repl.paint( | ||
| 301 | - about_to_exit=True, | ||
| 302 | - user_quit=isinstance(err, | ||
| 303 | - SystemExitFromCodeGreenlet)) | ||
| 304 | - scrolled = window.render_to_terminal(array, cursor_pos) | ||
| 305 | - repl.scroll_offset += scrolled | ||
| 306 | - raise | ||
| 307 | - else: | ||
| 308 | - array, cursor_pos = repl.paint() | ||
| 309 | - scrolled = window.render_to_terminal(array, cursor_pos) | ||
| 310 | - repl.scroll_offset += scrolled | ||
| 311 | - | ||
| 312 | - if interactive: | ||
| 313 | - # Add custom help command | ||
| 314 | - # TODO: add methods to run the code | ||
| 315 | - repl.coderunner.interp.locals['_repl'] = repl | ||
| 316 | - | ||
| 317 | - repl.coderunner.interp.runsource( | ||
| 318 | - 'from bpython.curtsiesfrontend._internal ' | ||
| 319 | - 'import _Helper') | ||
| 320 | - repl.coderunner.interp.runsource('help = _Helper(_repl)\n') | ||
| 321 | - | ||
| 322 | - del repl.coderunner.interp.locals['_repl'] | ||
| 323 | - del repl.coderunner.interp.locals['_Helper'] | ||
| 324 | - | ||
| 325 | - # run startup file | ||
| 326 | - process_event(bpythonevents.RunStartupFileEvent()) | ||
| 327 | - | ||
| 328 | - # handle paste | ||
| 329 | - if paste: | ||
| 330 | - process_event(paste) | ||
| 331 | - | ||
| 332 | - # do a display before waiting for first event | ||
| 333 | - process_event(None) | ||
| 334 | - inputs = combined_events(input_generator) | ||
| 335 | - for unused in find_iterator: | ||
| 336 | - e = inputs.send(0) | ||
| 337 | - if e is not None: | ||
| 338 | - process_event(e) | ||
| 339 | - | ||
| 340 | - for e in inputs: | ||
| 341 | - process_event(e) | ||
| 342 | - | ||
| 343 | - | ||
| 344 | 238 | if __name__ == '__main__': | |
| 345 | 239 | sys.exit(main()) | |
| Back | FazBrowse Home | New Git URL |
0 commit comments