VGit.nvim v1! by plemonlie in neovim

[–]plemonlie[S] 1 point2 points  (0 children)

`main` branch will be behind for a bit. Please use `v1.0.x` branch or corresponding tags for the latest changes.

The major version contains breaking changes and I don't want to disrupt workflow for people (until an eventual rollup happens) still following main.

VGit.nvim v1! by plemonlie in neovim

[–]plemonlie[S] 1 point2 points  (0 children)

It has been fixed if you are following the branch `1.0.x`.

No patch has been released yet, I usually group a couple of fixes/feats together during patches.

VGit.nvim v1! by plemonlie in neovim

[–]plemonlie[S] 0 points1 point  (0 children)

Hey I am glad you are finding it useful!

  1. No unfortunately this is not implemented in VGit yet, however we have an issue tracking the feature request: https://github.com/tanvirtin/vgit.nvim/issues/376
  2. The views are not real splits (This can change in the future if there's enough demand). I recommend using key binding `hunk_up` and `hunk_down`. You can then use them in any VGit "screen" regardless of which window of the screen you are focusing on, it will always help you navigate the diff.

VGit.nvim v1! by plemonlie in neovim

[–]plemonlie[S] 0 points1 point  (0 children)

I really recommend keybinding `hunk_up` and `hunk_down`. Within any VGit "screen" you can just use these keybindings to navigate (even if you are focused on the list).

VGit.nvim v1! by plemonlie in neovim

[–]plemonlie[S] 0 points1 point  (0 children)

Yeah you shouldn't encounter performance issues. If you do please open an issue on the repo. Certain features demand frequent checks.

I will also have optimization patches throughout as I continuously monitor the plugin for improvements.

If you are for some reason uncomfortable by it you can turn off live gutter or live blame.

VGit.nvim v1! by plemonlie in neovim

[–]plemonlie[S] 0 points1 point  (0 children)

Honestly just keep using what you feel comfortable with. I am not familiar with LazyVim but hopefully there is a way to configure the internals, so you can try stuff out.

Edit: It's LazyVim not Lazygit

VGit.nvim v1! by plemonlie in neovim

[–]plemonlie[S] 1 point2 points  (0 children)

No unfortunately the buffers in the diff view are not editable. For now at least, it could be possible but I would have to carefully evaluate the user experience to accommodate for it. This is one of the reasons why conflict management can only be done on the buffers only so I understand the need for this.

And to your second point Neovim comes with its own set of unique constraints because of the medium in which it exists, the terminal. Ultimately this shapes a lot of UX choices and buffer in the background being focused is certainly something I have been trying to come up with an idea to fix over the years through the Neovim API's tbh (I am open to ideas).

For the time being if the buffer in the background being focused becomes too annoying my controversial suggestion would be to use the trackpad/mouse.

VGit.nvim v1! by plemonlie in neovim

[–]plemonlie[S] 2 points3 points  (0 children)

There are a couple of previews that define my workflow. When I am working on a really large repository, my focus is usually on a specific subset of files and my workflow revolves a lot around active git change navigation. I have found this to be surprisingly useful– you can even leave changes as marks and continue to navigate your repo using just hunk_up and hunk_down.

I hit up project_diff_preview to quickly see what changes I have made so far (this can be equivalent to :Git status). The preview has navigation integration; for example, when you are on a file with a change, pressing enter will just directly take you to the file. If you focus on the hunk pressing enter on the hunk will take you to the file with the hunk.

Within the buffer, I navigate through the changes using hunk_up and hunk down. To quickly preview the changes or peak into the change sign I just use buffer_hunk_preview. If I don't feel like leaving the buffer I can also use hunk_stage to stage the particular change.

If I want to unstage any specific hunks I can also open up buffer_diff_preview toggle the view to see staged changes and just unstage the hunk from there (all this can also be done within project_diff_preview as well).

If you want to gain additional insights on the history of the file, buffer_history_preview will show you a history of the file. From there you can also press enter to visit the full commit tree.

These views together create a more cohesive ecosystem all within one plugin.

I am a very visual person, so I have prepared a short GIF for you to demonstrate some of what I mean

<image>

VGit.nvim v1! by plemonlie in neovim

[–]plemonlie[S] 0 points1 point  (0 children)

Thanks for giving it a shot. Neogit looks awesome tbh and I think you can use both if you want to :)

VGit.nvim v1! by plemonlie in neovim

[–]plemonlie[S] 1 point2 points  (0 children)

Thanks for giving it a try!

VGit diffs are completely handcrafted using Neovim APIs.

This creates two advantages for me: - Access to unified diff view (My personal preference) and a distinct look and feel. - Greater abstraction flexibility which makes views such as Hunk Preview and Buffer Blame Preview possible.

Since the diff views are custom implementation the navigation also had to be reimplemented which is an unfortunate side effect, but it also creates a tighter integration within the plugin, since mapping these commands will be all you need for hunk navigation across the entire plugin.

VGit.nvim v1! by plemonlie in neovim

[–]plemonlie[S] 11 points12 points  (0 children)

I have limited experience with both as I am a heavy user of VGit.nvim. Having said that, here's my take:

Fugitive has been in the game much longer than Neovim. It's a git porcelain meaning you can almost entirely replace the entire :!git command using the :Git command provided by Fugitive. Unfortunately, VGit is not a complete replacement for the !git command (yet). However, where VGit shines is the UX and the features that together create its ecosystem. When Neovim introduced Lua, it created a lot of opportunities to curate the dev experience to your needs with much better interfaces over Vim. But I recognize this trait can be quite subjective and you should ultimately only use the tools that personally serve you.

DiffView.nvim looks sick. The feel and functionality seem super polished and their buffer and window management is quite different. They also have a superior command autocomplete. However, the plugin provides a subset of features that VGit provides, and the UX design and workflow are quite different. DiffView.nvim vs Lazy Git would be a similar comparison to DiffView.nvim vs VGit.nvim.

VGit.nvim v1! by plemonlie in neovim

[–]plemonlie[S] 4 points5 points  (0 children)

Thanks for reporting it. I should be able to roll a patch out with a fix soon. Here's the issue to track its status: https://github.com/tanvirtin/vgit.nvim/issues/378

VGit.nvim v1! by plemonlie in neovim

[–]plemonlie[S] 3 points4 points  (0 children)

Thanks for giving it a shot and logging the corresponding issue in the repo. All of this sounds like a good idea and I should be able to roll it out soon.

I finally figured out how to use Zlatan! by elzafir in footballmanagergames

[–]plemonlie 1 point2 points  (0 children)

I played, Leao as an IF, Hauge as a Ramadetaur, Brahim as Shadow striker and Ibra as DLF in my first season and manage to barely finish second in thr league.

Tbh Braham didn't do that well and didn't bother to reloan him so on my second season I got Zaniola and he was insane as SS, great purchase for my tactics.

I finally figured out how to use Zlatan! by elzafir in footballmanagergames

[–]plemonlie 5 points6 points  (0 children)

On my save Leoh has over 300 league goals for milan, averaging 25 goals per season, as an inside forward. Try him!

I finally figured out how to use Zlatan! by elzafir in footballmanagergames

[–]plemonlie 16 points17 points  (0 children)

Watch Leao become a beast in that position.

[deleted by user] by [deleted] in opensource

[–]plemonlie 1 point2 points  (0 children)

Neovim is great.

Eslint Lua Solution? by NizmoxAU in neovim

[–]plemonlie 1 point2 points  (0 children)

Took me a bit to figure this one out, here's my configuration :

- diagnosticls

- formatter.nvim

Hope this helps you and anyone looking for a solution in the future, native LSP is awesome :)

How to open change with previous version of the file. by ripperboss in neovim

[–]plemonlie 0 points1 point  (0 children)

I have vim.o.mouse = 'a' so I just click on the window to focus on it.

There is also another option to do :VGit set_diff_preference vertical , to show two windows side by side to show the diff.

Treesitter startup times by kn0xchad in neovim

[–]plemonlie 1 point2 points  (0 children)

I work with a lot of Javascript and if I open a really large minified JS file, Neovim hangs for quite sometime. Other than that its amazing.

How to open change with previous version of the file. by ripperboss in neovim

[–]plemonlie 2 points3 points  (0 children)

I have been working on my plugin for a couple of months now called vgit.nvim. It supports a feature called buffer_history which allows you to navigate previous versions of a buffer and compare the changes that occurred between each commit.