From 86f9cb921ce716d52031450af9d3c3b58d98cee6 Mon Sep 17 00:00:00 2001 From: Daniil Tsivinsky Date: Wed, 23 Feb 2022 11:58:33 +0300 Subject: [PATCH] don't close tab if there is unsaved buffer in it --- config/nvim/lua/user/tabs.lua | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/config/nvim/lua/user/tabs.lua b/config/nvim/lua/user/tabs.lua index 949a924..e545ea1 100644 --- a/config/nvim/lua/user/tabs.lua +++ b/config/nvim/lua/user/tabs.lua @@ -3,6 +3,19 @@ local M = { } M.close_tab = function() + local wins = vim.api.nvim_tabpage_list_wins(0) + + for _, win in ipairs(wins) do + local bufnr = vim.api.nvim_win_get_buf(win) + local is_modified = vim.api.nvim_buf_get_option(bufnr, "modified") + + if is_modified then + local bufname = vim.fn.bufname(bufnr) + print(bufname .. " is not saved") + return + end + end + table.insert(M.history, vim.fn.bufnr("%")) vim.cmd("tabclose") end