Skip to content

File tree navigation in a side panel#63

Open
armanarutiunov wants to merge 18 commits intobanga:mainfrom
armanarutiunov:file-tree
Open

File tree navigation in a side panel#63
armanarutiunov wants to merge 18 commits intobanga:mainfrom
armanarutiunov:file-tree

Conversation

@armanarutiunov
Copy link

@armanarutiunov armanarutiunov commented Mar 11, 2026

Disclaimer: this is completely clauded, and since I don't have much experience with typescript or js I couldn't really verify the code quality. I did make sure it works nicely though through manual testing. If it's not allowed in this repository, no problem at all, happy to close the PR.

Description

This PR adds a TUI style flavour to the app. Main purpose of it was to add a side panel so it's easier to navigate in-between of the files when reviewing large diffs. Once I started implementing I realised to make it work it kind of needs to be in a TUI box as opposed to being part of the global terminal output as it was before.

Keybindings

  • Toggle file tree side panel (hide/unhide): e
  • Navigating vertically
    • either up/down arrows
    • or j/k if you're used to vim
  • Switching between side panel or main diff
    • either left/right arrows
    • or h/l if you're used to vim
    • or tab
    • side note: left/right and h/l only switches it if you're your cursor is on the file and not a folder. if focused on a folder, it will just fold/unfold that folder
  • Folding/unfolding the folder in the tree: enter or left/right or h/l
  • Jumping vertically half a page at a time: ctrl+u or ctrl+d

Screen recording

Please take a look at the video showcasing the change but I'd encourage you to checkout the branch and try and play around with it yourself.

Screen.Recording.2026-03-11.at.12.14.06.mov

Sidenote

I know it's kind of changing the high level idea behind this app a little bit. So, no problem if you don't like. I can close it and just use my fork on my own. ty

armanarutiunov and others added 18 commits February 11, 2026 18:47
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… stats

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…r nested tree

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ents

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…DER_WIDTH constants

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.

1 participant