Skip to content

nvim-tree not respecting diagnostics update_in_insert value set by neovim #2745

Open
@shreyas-a-s

Description

@shreyas-a-s

Description

By default neovim sets diagnostics update_in_insert = false and other plugins (for example lualine) respects it. But somehow, nvim-tree doesn't.

Neovim version

NVIM v0.9.5
Build type: Release
LuaJIT 2.1.1710088188

Operating system and version

Debian 12 Stable (Linux 6.1.0-18-amd64)

Windows variant

No response

nvim-tree version

707b24a

Clean room replication

vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1

vim.cmd [[set runtimepath=$VIMRUNTIME]]
vim.cmd [[set packpath=/tmp/nvt-min/site]]
local package_root = "/tmp/nvt-min/site/pack"
local install_path = package_root .. "/packer/start/packer.nvim"
local function load_plugins()
  require("packer").startup {
    {
      "wbthomason/packer.nvim",
      "nvim-tree/nvim-tree.lua",
      "nvim-tree/nvim-web-devicons",
      -- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
    },
    config = {
      package_root = package_root,
      compile_path = install_path .. "/plugin/packer_compiled.lua",
      display = { non_interactive = true },
    },
  }
end
if vim.fn.isdirectory(install_path) == 0 then
  print "Installing nvim-tree and dependencies."
  vim.fn.system { "git", "clone", "--depth=1", "https://github.com/wbthomason/packer.nvim", install_path }
end
load_plugins()
require("packer").sync()
vim.cmd [[autocmd User PackerComplete ++once echo "Ready!" | lua setup()]]
vim.opt.termguicolors = true
vim.opt.cursorline = true

-- MODIFY NVIM-TREE SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
_G.setup = function()
  require("nvim-tree").setup {
    diagnostics = {
      enable = true,
    },
  }
end

-- UNCOMMENT this block for diagnostics issues, substituting pattern and cmd as appropriate.
-- Requires diagnostics.enable = true in setup.

vim.api.nvim_create_autocmd("FileType", {
  pattern = "lua",
  callback = function()
    vim.lsp.start { cmd = { "lua-language-server" } }
  end,
})

Steps to reproduce

  1. Make sure lua-language-server is in $PATH.
  2. Copy the above clean room replication into nvt-min.lua.
  3. Launch neovim using nvim -nu nvt-min.lua.
  4. Open nvim-tree using :NvimTreeToggle.
  5. Open nvt-min.lua or any other lua file while keeping nvim-tree open.
  6. Go to insert mode.
  7. Create a diagnostic event (error, warning, etc.) by deleting some characters while in insert mode.
  8. See that nvim-tree is updated (showing diagnostic icons) while in insert mode even though the default for neovim is update_in_insert = false.

Expected behavior

Nvim-tree respects the value of update_in_insert set by neovim.

Actual behavior

nvim-tree-update_in_insert.mp4

As you can see, when I am creating an error in insert mode, lualine don't update the status but nvim-tree does.

I have checked the docs, issues and discussions and couldn't find anything related to it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions