From 32d840e7b167b48ccf9c5d9429746bd2fece12ac Mon Sep 17 00:00:00 2001 From: DarkWiiPlayer Date: Wed, 10 Jul 2024 22:11:06 +0200 Subject: [PATCH] Rename and refactor nvim ephemeral plugin --- vim/plugin/bufhiddendelete.lua | 17 ---------------- vim/plugin/ephemeral.lua | 36 ++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 17 deletions(-) delete mode 100644 vim/plugin/bufhiddendelete.lua create mode 100644 vim/plugin/ephemeral.lua diff --git a/vim/plugin/bufhiddendelete.lua b/vim/plugin/bufhiddendelete.lua deleted file mode 100644 index e9aee9d..0000000 --- a/vim/plugin/bufhiddendelete.lua +++ /dev/null @@ -1,17 +0,0 @@ -vim.api.nvim_create_user_command("BHD", function() - vim.bo.bufhidden = "delete" -end, {}) - -vim.api.nvim_create_user_command("BHK", function() - vim.bo.bufhidden = nil -end, {}) - -vim.g.ephemeral_buffers = false - -vim.api.nvim_create_autocmd("BufAdd", { - callback = function(args) - if vim.g.ephemeral_buffers then - vim.bo[args.buf].bufhidden = "delete" - end - end -}) diff --git a/vim/plugin/ephemeral.lua b/vim/plugin/ephemeral.lua new file mode 100644 index 0000000..e45ee62 --- /dev/null +++ b/vim/plugin/ephemeral.lua @@ -0,0 +1,36 @@ +vim.api.nvim_create_user_command("Pin", function() + vim.bo.bufhidden = "delete" +end, {}) + +vim.api.nvim_create_user_command("Drop", function() + vim.bo.bufhidden = nil +end, {}) + +vim.api.nvim_create_user_command("Ephemeral", function(params) + if params.args == "" then + print(vim.g.ephemeral_buffers + and "New buffers are ephemeral" + or "New buffers are permanent" + ) + elseif params.args == "on" then + vim.g.ephemeral_buffers = true + elseif params.args == "off" then + vim.g.ephemeral_buffers = false + else + vim.api.nvim_echo({{"Unknown option: "}, {params.args, "error"}}, false, {}) + end +end, {nargs = "?", complete = function(lead) + return vim.fn.filter({ "on", "off" }, function(_, val) + return val:find("^" .. lead) + end) +end}) + +vim.g.ephemeral_buffers = false + +vim.api.nvim_create_autocmd("BufAdd", { + callback = function(args) + if vim.g.ephemeral_buffers then + vim.bo[args.buf].bufhidden = "delete" + end + end +})