> [!Note]
> I built a tree-like navigation tool for viewing diff in kakoune

## Why?
- I need to quickly review pull request, we a glance of file tree, and quickly jump between them
- But I don't want to use GitHub Web UI: it was pretty slow
- thought it has improved a lot these days, I still prefer terminal tools over web UI
- [lazygit](https://github.com/jesseduffield/lazygit) is not enough
- [lumen](https://github.com/jnsahaj/lumen) wasn't there yet
## How my *diff* experience evolves over the years
- The start: [SourceTree](https://www.sourcetreeapp.com/) app (before the Atlassin aquired lol)
- VSCode Source control view, [Gitlens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens) and [GitGraph](https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph) plugin
- [Fork.app](https://git-fork.com/)
- Start using more command line: inline diff pager
- from [delta](https://github.com/dandavison/delta), [difftastic](https://github.com/Wilfred/difftastic) to [git-split-diffs](https://github.com/banga/git-split-diffs/)
- good but it's still hard to jump between files
- [After coming to kakoune:](https://yukai.dev/blog/2024/06/15/kakoune-helix-modern-editor-experiences)
- Everything is composable
- Heavily use with tmux & fzf that integrates well with kakoune
## How a about building a command palette, and even a file tree, with just fzf tmux and kakoune?
- [Source code (GitHub)](https://github.com/Yukaii/dotfiles/blob/082ee6911a14632028b60c9ad60518ee3d26b3a1/bin/.bin/kks-git-diff-files)

### The flow:
- Parse diff format, get location and file name
- Render the file list with fzf
- Bind fzf actions to send "scroll to" command to kakoune (using a [forked version kks](https://github.com/Yukaii/kks/tree/chore/improve-tmp-file-with-poll), becuase `kks cat` gets unstable results)
- Of course built with AI
## And we have a even better tool today!

It's called [lumen](https://github.com/jnsahaj/lumen)! Written in Rust, with built‑in AI integration and lazygit‑inspired ergonomics. Thank you Sahaj for building this.
And I just vibe coded two more scripts that wraps around lumen:
- [lmpr](https://github.com/Yukaii/dotfiles/blob/082ee6911a14632028b60c9ad60518ee3d26b3a1/bin/.bin/lmpr)
- [ghlmpr](https://github.com/Yukaii/dotfiles/blob/082ee6911a14632028b60c9ad60518ee3d26b3a1/bin/.bin/ghlmpr)