Skip to content

File list improvements#85

Closed
zachrammell wants to merge 4 commits intojorio:masterfrom
zachrammell:file-list-improvements
Closed

File list improvements#85
zachrammell wants to merge 4 commits intojorio:masterfrom
zachrammell:file-list-improvements

Conversation

@zachrammell
Copy link
Contributor

This adds some minor quality-of-life operations related to staging changes, like double-clicking to stage/unstage, and treating unstaging a rename as unstaging both the move and delete.

I also added a new path display style inspired by other software, which shows the filename first with the path after. The rendering logic changes for this are perhaps a little messy and the part I'd seek the most feedback on.
image

@jorio
Copy link
Owner

jorio commented Feb 3, 2026

This is great! Do you mind splitting these features into separate PRs so they're easier to merge individually?

Some thoughts:

  • Unstage 'R' in one go: Cool! Thanks for the test, I think this is good to go.
  • Detect renames in unstaged changes: Rename detection can be expensive, so I'd like to do some benchmarking to see how this affects large workdirs before we make this the default. But I see how people can find this useful, so perhaps this could be an option that isn't enabled by default, for now? We should also add a test to enshrine this behavior.
  • Filename first: Looking great! I realize that testing text rendering can be tricky, but we can still add a simple test for coverage of the new code paths - just to make sure future refactors don't break this. (You can run test.py --cov and you'll get a coverage report that looks like this.)
  • D-Click to stage: I actually had a prototype for this that didn't make it into v1.6. My implementation overloads the "middle click to stage" setting that already exists. I cleaned it up and pushed it as a WIP branch if you want to see my approach.

I'll take a closer look at your rendering implementation when I have some time this week. Thank you for your contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments