fix: restore modified state of current buffer if actions are canceled (#6)
This commit is contained in:
parent
e58f347c67
commit
2e6d68453f
1 changed files with 6 additions and 0 deletions
|
|
@ -433,6 +433,8 @@ end
|
||||||
|
|
||||||
---@param confirm nil|boolean
|
---@param confirm nil|boolean
|
||||||
M.try_write_changes = function(confirm)
|
M.try_write_changes = function(confirm)
|
||||||
|
local current_buf = vim.api.nvim_get_current_buf()
|
||||||
|
local was_modified = vim.bo.modified
|
||||||
local buffers = view.get_all_buffers()
|
local buffers = view.get_all_buffers()
|
||||||
local all_diffs = {}
|
local all_diffs = {}
|
||||||
local all_errors = {}
|
local all_errors = {}
|
||||||
|
|
@ -454,6 +456,10 @@ M.try_write_changes = function(confirm)
|
||||||
for _, bufnr in ipairs(buffers) do
|
for _, bufnr in ipairs(buffers) do
|
||||||
pcall(vim.api.nvim_buf_set_option, bufnr, "modifiable", was_modifiable[bufnr])
|
pcall(vim.api.nvim_buf_set_option, bufnr, "modifiable", was_modifiable[bufnr])
|
||||||
end
|
end
|
||||||
|
-- The ":write" will set nomodified even if we cancel here, so we need to restore it
|
||||||
|
if was_modified then
|
||||||
|
vim.bo[current_buf].modified = true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local ns = vim.api.nvim_create_namespace("Oil")
|
local ns = vim.api.nvim_create_namespace("Oil")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue