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.15k stars 173 forks source link

bug v3: Lack of automatic jump when only one result entry #409

Closed suliatis closed 2 months ago

suliatis commented 3 months ago

Did you check docs and existing issues?

Neovim version (nvim -v)

0.10.0-nightly

Operating system/version

MacOS 14.4

Describe the bug

There used to be a config parameter on main for setting auto_jump direct jump to location when only one result entry is for the given mode instead of opening the trouble window. This auto_jump was enabled for lsp_definitions mode by default.

Steps To Reproduce

Trigger Trouble lsp_definitions open on a method call for example

Expected Behavior

Jump to definition immediately if only one definition location found for the item under the cursor without opening the trouble window. Have a config parameter to enable this behaviour for other modes as well.

Related issues from the past:

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
folke commented 2 months ago

I just added this functionality to v3.

However, due the the async nature of the sources, a trouble buffer will briefly open and close again when it detects there was only one result.