folke / trouble.nvim

🚦 A pretty diagnostics, references, telescope results, quickfix and location list to help you solve all the trouble your code is causing.
Apache License 2.0
5.44k stars 177 forks source link

bug: trouble.nvim (main branch) uses `vim.islist()`, which is not compatible with Neovim < 0.10.0 #438

Closed titaniumtraveler closed 4 months ago

titaniumtraveler commented 4 months ago

Did you check docs and existing issues?

Neovim version (nvim -v)

0.9.5

Operating system/version

arch linux

Describe the bug

The commit 5aa79935 replaces vim.tbl_islist(args) vim.islist(), which doesn't exist in versions lower than 0.10.0 and therefore breaks the declared compatibility with Neovim >= 0.7.2.

Steps To Reproduce

  1. Use any Neovim < 0.10.0 (for example NVIM v0.9.5)
  2. Install trouble.nvim
  3. Run require "trouble".setup()

Expected Behavior

Either not break compatibility by reverting the change (while being deprecated vim.tbl_islist() still exists), or explicitly declare the new dependency on Neovim >= 0.10.0 in the readme. (+ change the version check in require "trouble".setup().)

Repro

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")

-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", lazypath, })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  "folke/trouble.nvim",
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here