SIGN IN SIGN UP

Simplify BufferStore's local vs remote state (#21180)

This is a pure refactor, motivated by wanting to introduce to the
BufferStore new logic for opening staged and committed changes.

I found the `BufferStoreImpl` trait a little bit confusing, particularly
how the different implementors of the trait held a handle back to the
owning buffer store. I was able to reduce the amount of code
considerably (-78 lines) by using a two-variant enum instead, similar to
what we do for `LspStore`, `WorktreeStore` and `Worktree`.

Release Notes:

- N/A
M
Max Brunsfeld committed
91a565f5faa396cb9f31d4a939c597b0ea11b794
Parent: a02684b
Committed by GitHub <noreply@github.com> on 11/25/2024, 8:53:23 PM