mirror of
https://github.com/kovidgoyal/kitty.git
synced 2026-06-30 04:42:59 +00:00
erase_last_command selected the region to erase via find_cmd_output(..., -1), which anchors on OUTPUT_START (OSC, 133;C). Commands that produce no output (an empty Enter, a comment, cd, export, etc. -- never emit 133;C, so they were skipped and an older command-with-output was erased instead. "Erase the last command" therefore did not erase the last command whenever the most recent ones has no output. Select the region by prompt marks instead: erase the prompt block immediately above the current (live) prompt, whatever it contains. Every submittd command is now one unit, removed newest-first, one prompt block per invocation. This also fixes two latent defects in the previous implementation: * The on-screen deletion was anchored at `cursor->y - count`, which assumes the region ends exactly one row above the cursor. Multi-line prompts and skipped rows broke that assumption and left residual lines. Anchor at the top of the region instead. * When part of the erased region was in the scrollback, the lines were removed from the history buffer but no redraw was signalled, so the deletion of the off-screen lines only became visible after the next scroll event recomputed the history viewport. Clamp scrolled_by to the new history length and call dirty_scroll() after shrinking the buffer. include_prompt is retained for API compatibility but is now a no-op: the unit erased is always the whole prompt block. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| atexit.py | ||
| CascadiaCode-Regular.otf | ||
| check_build.py | ||
| clipboard.py | ||
| ComfyCode-Regular.ttf | ||
| command_palette.py | ||
| completion.py | ||
| crypto.py | ||
| datatypes.py | ||
| dnd.py | ||
| dnd_kitten.py | ||
| file_transmission.py | ||
| FiraCode-Medium.otf | ||
| fonts.py | ||
| glfw.py | ||
| gr.py | ||
| GraphemeBreakTest.json | ||
| graphics.py | ||
| iosevka-regular.ttf | ||
| keys.py | ||
| layout.py | ||
| LiberationMono-Regular.ttf | ||
| main.py | ||
| mouse.py | ||
| multicell.py | ||
| notifications.py | ||
| open_actions.py | ||
| options.py | ||
| panels.py | ||
| parser.py | ||
| screen.py | ||
| search_query_parser.py | ||
| shell_integration.py | ||
| shm.py | ||
| ssh.py | ||
| tab_bar.py | ||
| tui.py | ||
| twemoji_smiley-cff2_colr_1.otf | ||
| utmp.py | ||