Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions lua/neo-tree/setup/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -222,9 +222,33 @@ M.win_enter_event = function()
log.trace("win_count: ", win_count)
if prior_exists and win_count == 1 and vim.o.filetype == "neo-tree" then
local position = vim.api.nvim_buf_get_var(0, "neo_tree_position")
local source = vim.api.nvim_buf_get_var(0, "neo_tree_source")
if position ~= "current" then
-- close_if_last_window just doesn't make sense for a split style
log.trace("last window, closing")
local state = require("neo-tree.sources.manager").get_state(source)
if state == nil then
return
end
local mod = utils.get_modified_buffers()
log.debug("close_if_last_window, modified files found: ", vim.inspect(mod))
for filename, is_modified in pairs(mod) do
if is_modified then
if vim.startswith(filename, "[No Name]#") then
bufnr = string.sub(filename, 11)
log.trace("close_if_last_window, showing unnamed modified buffer: ", filename)
vim.schedule(function()
log.warn(
"Cannot close because an unnamed buffer is modified. Please save or discard this file."
)
vim.cmd("vsplit")
vim.api.nvim_win_set_width(win_id, state.window.width or 40)
vim.cmd("b" .. bufnr)
end)
return
end
end
end
vim.cmd("q!")
return
end
Expand Down
3 changes: 3 additions & 0 deletions lua/neo-tree/utils.lua
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,9 @@ M.get_modified_buffers = function()
local modified_buffers = {}
for _, buffer in ipairs(vim.api.nvim_list_bufs()) do
local buffer_name = vim.api.nvim_buf_get_name(buffer)
if buffer_name == nil or buffer_name == "" then
buffer_name = "[No Name]#" .. buffer
end
modified_buffers[buffer_name] = vim.api.nvim_buf_get_option(buffer, "modified")
end
return modified_buffers
Expand Down