fix: hijack all directory buffers at setup, not just current (#11)
Problem: when neovim is opened with multiple directory arguments (e.g. nvim dir1/ dir2/), only the first directory gets handled by oil. The BufAdd autocmd that renames directory buffers to oil:// URLs is registered inside setup(), but neovim creates all argument buffers before setup() runs. The initial hijack block only processes nvim_get_current_buf(), so additional directory buffers are never renamed and remain as plain empty buffers. Solution: iterate all existing buffers at setup time instead of only the current one. Each directory buffer gets renamed to an oil:// URL so that BufReadCmd fires when the user switches to it. Closes: stevearc/oil.nvim#670
This commit is contained in:
parent
01b860ed5c
commit
70861e5896
1 changed files with 4 additions and 3 deletions
|
|
@ -1447,11 +1447,12 @@ M.setup = function(opts)
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
local bufnr = vim.api.nvim_get_current_buf()
|
for _, bufnr in ipairs(vim.api.nvim_list_bufs()) do
|
||||||
if maybe_hijack_directory_buffer(bufnr) and vim.v.vim_did_enter == 1 then
|
if maybe_hijack_directory_buffer(bufnr) and vim.v.vim_did_enter == 1 then
|
||||||
M.load_oil_buffer(bufnr)
|
M.load_oil_buffer(bufnr)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue