-
-
Notifications
You must be signed in to change notification settings - Fork 635
Closed
Labels
upstream: neovimneovim issueneovim issue
Description
Description
I am a maintainer for barbar.nvim, and we have a feature that allows users to adjust the offset of the tabline when a sidebar (such as nvim-tree) is open.
This works well most of the time, however, recently a user reported that this does not work when using the Open At Startup snippets from the wiki. Upon investigation, it appears that this is because nvim-tree does not emit a BufWinEnter event in this case. It is worth noting that when doing :NvimTreeToggle afterward, it does.
Neovim version
NVIM v0.9.0
Build type: Release
LuaJIT 2.1.0-beta3
Operating system and version
6.2.10-arch1-1
nvim-tree version
Minimal config
vim.api.nvim_create_autocmd(
{'BufWinEnter', 'FileType', 'WinNew', 'WinResized', 'WinScrolled'},
{callback = function(event) vim.print(event) end}
)
vim.opt.rtp:append(vim.fn.stdpath('data') .. '/lazy/nvim-tree.lua')
require'nvim-tree'.setup {}
-- auto open nvim-tree when open neovim
local function open_nvim_tree(data)
-- buffer is a real file on the disk
local real_file = vim.fn.filereadable(data.file) == 1
-- buffer is a [No Name]
local no_name = data.file == '' and vim.bo[data.buf].buftype == ''
-- only files please
if not real_file and not no_name then
return
end
-- open the tree but dont focus it
require('nvim-tree.api').tree.toggle({ focus = false })
end
vim.api.nvim_create_autocmd({'VimEnter'}, { callback = open_nvim_tree })It also happens with tree.open
Steps to reproduce
nvim --clean -u minimal.lua- Observe that a
BufWinEnterevent is not printed on startup for theNvimTreebuffer.
Expected behavior
It follows the event sequence that happens when executing :NvimTreeToggle after startup concludes:
{
buf = 2,
event = "FileType",
file = "NvimTree_1",
id = 14,
match = "NvimTree"
}
{
buf = 1,
event = "WinNew",
file = "",
id = 14,
match = ""
}
{
buf = 2,
event = "BufWinEnter",
file = "/home/iron-e/NvimTree_1",
id = 14,
match = "/home/iron-e/NvimTree_1"
}You can verify the above by using this snippet:
vim.opt.rtp:append(vim.fn.stdpath('data') .. '/lazy/nvim-tree.lua')
require'nvim-tree'.setup {}
-- start listening to autocmds AFTER vim enter; reduces noise
vim.api.nvim_create_autocmd('VimEnter', {callback = function()
vim.api.nvim_create_autocmd(
{'BufWinEnter', 'FileType', 'WinNew', 'WinResized', 'WinScrolled'},
{callback = function(event) vim.print(event) end}
)
end})Then manually typing :NvimTreeToggle.
Actual behavior
{
buf = 1,
event = "BufWinEnter",
file = "",
id = 3,
match = ""
}
{
buf = 2,
event = "FileType",
file = "NvimTree_1",
id = 3,
match = "NvimTree"
}
-- no ButWinEnter for `buf = 2`Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
upstream: neovimneovim issueneovim issue