nvim-tree / nvim-tree/nvim-tree.lua

CursorLine Artifacts

Open
#3,230 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Lua
Stars
8.6k
Forks
639
Avg merge
1d 14h
Merged PRs (30d)
2

Description

Description

Cursorline artifacts are sometimes being drawn in the sign column and the left of the tree content.

Neovim version
NVIM v0.11.5
Build type: RelWithDebInfo
LuaJIT 2.1.1765228720
NVIM v0.12.0-dev-1714+ga950e8ea9d
Build type: Debug
LuaJIT 2.1.1764270282
Operating system and version

Linux 6.18.1-arch1-2

Windows variant

No response

nvim-tree version

b8b44b6a2494d086a9177251a119f9daec6cace8

occurs all the way back to nvim-tree-v1.0.0 d35a8d5

Clean room replication

Default:

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({})
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 {
      name = "my-luals",
      cmd = { "lua-language-server" },
      root_dir = vim.loop.cwd(),
    }
  end,
})
]]
Steps to reproduce
  1. nvim -nu /tmp/nvt-min.lua
  2. :NvimTreeOpen
  3. Open brave-browser.desktop
  4. Scroll down with j

Does not occur after setting &nocursorline in the editor window

Occurs on alacritty and xterm (all defaults)

Expected behavior

tree window does not change

Actual behavior
Image

It looks like it is occurring on lines after lines containing unusual characters, appearing immediately after scrolling to that line.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the supplied clean-room configuration with nvim -nu /tmp/nvt-min.lua, then reproduce the artifact in nvim-tree by opening brave-browser.desktop and scrolling with j. Trace the cursorline behavior involved in the tree window; done means the tree window remains unchanged while scrolling with cursorline enabled, while the issue remains absent with &nocursorline.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua
Domain
cli, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.