First of all I really appreciate the effort everyone has put into this.
I was so relieved all bugs finally went away. So I was thinking - why not introduce new once? (😂)
Here's my idea. Neogit has a nice surface-level integration with Diffview, and seeing them together just hits my sweet spot. So much so I started wondering how to get them play nicely. I landed on: Neogit's graph view + Diffview's layouts = 🔥
For example, here are two Neovims side by side. On the left is Diffview's DiffviewFileHistory; on the right is :Neogit log (Kitty terminal).
Considerations
I think this belongs in diffview-plus itself rather than tying the two plugins closer together. Diffview's state is straightforward, and most of the selection logic already exists in the file-history view.
- cmd name?
:DiffviewLog was my first choice but seeing it already exists. (debug log) we either add new command or a flag on it. Something like :DiffviewLogPretty is really a mouthful, no sure about it. For now lets leave it at :DiffviewGraph
- Where the panel lives?
The graph itself pinned either to the left, bottom (and or right, right?).
Diffview already supports placing panels in any of those.
- Selecting multiple commits: I'd want to select a range and have them highlight together; most of that already exists in the file-history panel.
- No hard dependency on Neogit: the graph drawing would be included in diffview-plus directly, so users wouldn't need Neogit installed.
Architecture
- Saving/restoring the view across sessions - right now a "graph" view can't be stored, as its own type. So we need to add it as one.
- How the commit list maps to diffs - Diffview is built around "the files a commit changed" whereas a graph is about how commits connect. So the graph display would need to sit on top of Diffview's existing model rather than replace it.
What do you think? Love to hear your thoughts.
First of all I really appreciate the effort everyone has put into this.
I was so relieved all bugs finally went away. So I was thinking - why not introduce new once? (😂)
Here's my idea. Neogit has a nice surface-level integration with Diffview, and seeing them together just hits my sweet spot. So much so I started wondering how to get them play nicely. I landed on: Neogit's graph view + Diffview's layouts = 🔥
For example, here are two Neovims side by side. On the left is Diffview's DiffviewFileHistory; on the right is :Neogit log (Kitty terminal).
Considerations
I think this belongs in diffview-plus itself rather than tying the two plugins closer together. Diffview's state is straightforward, and most of the selection logic already exists in the file-history view.
:DiffviewLogwas my first choice but seeing it already exists. (debug log) we either add new command or a flag on it. Something like :DiffviewLogPretty is really a mouthful, no sure about it. For now lets leave it at :DiffviewGraphThe graph itself pinned either to the left, bottom (and or right, right?).
Diffview already supports placing panels in any of those.
Architecture
What do you think? Love to hear your thoughts.