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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No signcolumn refresh after nvim fixendofline adds newline #1023

Open
neilord opened this issue May 25, 2024 · 7 comments
Open

No signcolumn refresh after nvim fixendofline adds newline #1023

neilord opened this issue May 25, 2024 · 7 comments
Labels
bug Something isn't working unable to reproduce Unable to reproduce problem

Comments

@neilord
Copy link

neilord commented May 25, 2024

Description

After a newline is added by the fixendofline (new)vim option triggered by saving the file, gitsigns does not update the signcolumn to indicate that change. Only after reopening the file, gitsigns highlight the change on the last line.

Neovim version

NVIM v0.10.0-dev-3097+g064f3e42e

Operating system and version

macOS 14

Expected behavior

Gitsigns does refresh signcolumn after fixendofline adds newline.

Actual behavior

Gitsigns does NOT refresh signcolumn after fixendofline adds newline.
Also, the Gitsigns refresh and even Gitsigns detach + Gitsigns attach do not refresh the signcolumn.

Minimal config

for name, url in pairs{
  gitsigns = 'https://github.com/lewis6991/gitsigns.nvim',
} do
  local install_path = vim.fn.fnamemodify('gitsigns_issue/'..name, ':p')
  if vim.fn.isdirectory(install_path) == 0 then
    vim.fn.system { 'git', 'clone', '--depth=1', url, install_path }
  end
  vim.opt.runtimepath:append(install_path)
end

require('gitsigns').setup{
  debug_mode = true, -- You must add this to enable debug messages
}

vim.opt.fixendofline = true
vim.opt.signcolumn = "yes"

Steps to reproduce

  1. Create empty repo: $ cd && mkdir gitsigns_test && cd gitsigns_test && git init
  2. Create file with no newline in the end: $ echo -n 'test' > file
  3. Commit changes: $ git add . && git commit -m 'commit'
  4. Open file with nvim $ nvim --clean -u minimal_lua_path file
  5. Run :w in nvim and see that despite neovim adding newline (because of the fixendofline setting), gitsigns do not show any difference in the signcolumn.
  6. Reopen the file (repeat step 4) to see the signcolumn updated.

Gitsigns debug messages

No response

@neilord neilord added the bug Something isn't working label May 25, 2024
@Sidney-Tan
Copy link

Sidney-Tan commented May 27, 2024

When I reset --hard d6a3bf0, both are ok.
When I reset --hard a28bb1d, signcolumn doesn‘t refresh,and current_line_blame doesn‘t show.

@lewis6991
Copy link
Owner

I found a small bug which I fixed in c96e3cf but that shouldn't be related.

Otherwise, it seems to work for me.

Can you double check using minimal.lua?

@lewis6991 lewis6991 added unable to reproduce Unable to reproduce problem needs response labels May 28, 2024
@neilord
Copy link
Author

neilord commented May 28, 2024

@lewis6991, thanks!
Have double checked it with minimal.lua, still not working (see 30 sec below):

file.mov

@lewis6991
Copy link
Owner

What you are showing in the video is different from the reproductions steps. If the file is committed without an EOF char, then gitsigns should not show a diff upon opening the file.

Can you please update the reproduction steps with exact commands.

Vscode is not relevant here. You can create a file without EOF using:

echo -n 'hello\n'world' > file
git add file
git commit

Also double check if you have a .editorconfig file.

@neilord
Copy link
Author

neilord commented May 28, 2024

@lewis6991 Got it, thanks! I have updated the Steps to reproduce section in this issue.

@lewis6991
Copy link
Owner

Works fine for me.

Screen.Recording.2024-05-28.at.13.54.08.mov

@neilord
Copy link
Author

neilord commented May 28, 2024

@lewis6991, interesting, thanks a lot for taking your time on this one! Will investigate deeper into my setup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working unable to reproduce Unable to reproduce problem
Projects
None yet
Development

No branches or pull requests

3 participants