Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

System Redesign #152

Merged
merged 1 commit into from
Dec 28, 2021
Merged

System Redesign #152

merged 1 commit into from
Dec 28, 2021

Conversation

tanvirtin
Copy link
Owner

@tanvirtin tanvirtin commented Dec 3, 2021

Due to how coupled things are in the existing system and the incorrect design decisions taken by me, the project was becoming difficult to maintain and enhance for the future, moreover it was getting much harder to implement features that Neovim users truly deserve.

It's a lot of work but, it's something this project needs to push it forward as a good Git integration plugin for Neovim.

This PR will break several existing Neovim config and I apologize for it 馃檹馃従

If you want to try these new features switch to the develop branch.

This pull request will break a bunch of things, but it's growing pains, which introduces a bunch of new enhancements and existing bug fixes.

New Features:

  • Much better user interface
  • Much more performant
  • Users can now cycle through the table view
  • Reduced bloat from project
  • Split diff view in hunk preview
  • Ability for users to perform existing commands across Project Diff Preview.
  • VGit now recognizes git files outside of the project's working directory
  • VGit will now recognize if a file has been renamed.
  • New preview called project_hunks_preview to open a quick preview of all the hunks in your entire project which looks similar to the quickfix preview, but with the VGit CodeComponent baked inside it. Allowing you to quickly see all the diffs in your project in both split and unified diff views.
  • Ton of quality life improvements

Removed Features:

  • diff base for gutter (current implementation makes the system very convoluted to use, e.g VSCode doesn't even support this)
  • telescope integration (unnecessary bloat)
  • Removed theming support (useless features makes makes codebase messy and complex)
  • Removed layout support (too much configuration makes code harder to maintain)
  • Renamed buffer_staged_diff_preview to buffer_diff_staged_preview

Closes issues:

@tanvirtin tanvirtin added bug Something isn't working documentation Improvements or additions to documentation enhancement New feature or request refactor Improve existing functionality breaking change Contains changes that will break existing functionality labels Dec 3, 2021
@tanvirtin tanvirtin force-pushed the develop branch 2 times, most recently from e5e6fbd to bfca98e Compare December 6, 2021 04:56
@tanvirtin tanvirtin closed this Dec 6, 2021
@tanvirtin tanvirtin reopened this Dec 6, 2021
@tanvirtin tanvirtin force-pushed the develop branch 2 times, most recently from ac18897 to e3b2d06 Compare December 8, 2021 04:24
@Shatur
Copy link
Contributor

Shatur commented Dec 10, 2021

Since the PR is already a breaking change, can I suggest to use a more common highlighting groups for signs?
Currently we have VGitSignAdd, VGitSignRemove and VGitSignChange which are vgit-specific. But it would be nice to use more common names such as GitSignsAdd, GitSingsDelete and GitSignsChange exactly as in gitsigns plugin. Such things makes live easier for colorscheme developers.

lua/vgit/settings/hls.lua Outdated Show resolved Hide resolved
@tanvirtin tanvirtin force-pushed the develop branch 3 times, most recently from bbd218a to 4f77471 Compare December 18, 2021 22:23
@tanvirtin tanvirtin changed the title WIP: System Redesign System Redesign Dec 22, 2021
@tanvirtin tanvirtin mentioned this pull request Dec 22, 2021
@tanvirtin tanvirtin force-pushed the develop branch 4 times, most recently from b7f22b3 to 8c4237b Compare December 25, 2021 00:34
@Shatur
Copy link
Contributor

Shatur commented Dec 25, 2021

Can we also close #157 with this?

@tanvirtin tanvirtin force-pushed the develop branch 6 times, most recently from 6432e0a to fd47723 Compare December 26, 2021 19:41
@tanvirtin
Copy link
Owner Author

With these changes paving the way for version v0.1.0, I am super hopeful to get some potential future contributors who can enhance this plugin further. Going to leave #157 for anyone to pickup and contribute, it should be fairly simple!

@tanvirtin tanvirtin force-pushed the develop branch 3 times, most recently from 3ef1416 to 45b0b8d Compare December 28, 2021 03:52
New Features:
- Much better user interface
- Much more performant
- Users can now cycle through the table view
- Reduced bloat from project
- Split diff view in hunk preview
- Ability for users to perform existing commands across Project Diff Preview.
- VGit now recognizes git files outside of the project's working directory
- VGit will now recognize if a file has been renamed.
- New preview called `project_hunks_preview` to open a quick preview of all the hunks in your entire project which looks similar to the quickfix preview, but with the VGit `CodeComponent` baked inside it. Allowing you to quickly see all the diffs in your project in both split and unified diff views.
- Ton of quality life improvements
- Optimized diff rendering

Removed Features:
- diff base for gutter (current implementation makes the system very convoluted to use, e.g VSCode doesn't even support this)
- telescope integration (unnecessary bloat)
- Removed theming support (useless features makes makes codebase messy and complex)
- Removed layout support (too much configuration makes code harder to maintain)
- Renamed `buffer_staged_diff_preview` to `buffer_diff_staged_preview`

Closes issues:
- #120
- #119
- #100
- #79
- #145
- #155
- #154
- #135
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking change Contains changes that will break existing functionality bug Something isn't working documentation Improvements or additions to documentation enhancement New feature or request refactor Improve existing functionality
Projects
None yet
2 participants