From 82a1c14a1ebdc7a29bb16ec9a760aa1468573f22 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Wed, 22 Oct 2025 12:03:14 -0400 Subject: [PATCH] refactor(nvim): streamline Neovim configuration and plugin management --- lua/polish.lua | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/lua/polish.lua b/lua/polish.lua index c4dbba6..2fac67a 100644 --- a/lua/polish.lua +++ b/lua/polish.lua @@ -4,6 +4,38 @@ -- Remove h mapping (conflicts with Telescope) vim.api.nvim_del_keymap("n", "h") +-- Screen session integration: Handle suspend/resume gracefully +local screen_augroup = vim.api.nvim_create_augroup("ScreenIntegration", { clear = true }) + +-- Before suspension (Screen detach), save all buffers +vim.api.nvim_create_autocmd("VimSuspend", { + group = screen_augroup, + callback = function() + -- Save all modified buffers before suspension + vim.cmd "silent! wa" + -- Save session if in a Screen session + if vim.env.STY ~= nil and vim.env.STY ~= "" then + local session_name = vim.env.STY:match "[^%.]+%.(.+)" + vim.notify("Suspending from Screen session: " .. (session_name or vim.env.STY), vim.log.levels.INFO) + end + end, + desc = "Save all buffers before Screen detach/suspension", +}) + +-- After resume from suspension (Screen reattach) +vim.api.nvim_create_autocmd("VimResume", { + group = screen_augroup, + callback = function() + -- Check for external file changes after resuming + vim.cmd "checktime" + if vim.env.STY ~= nil and vim.env.STY ~= "" then + local session_name = vim.env.STY:match "[^%.]+%.(.+)" + vim.notify("Resumed in Screen session: " .. (session_name or vim.env.STY), vim.log.levels.INFO) + end + end, + desc = "Check for file changes after Screen reattach/resume", +}) + -- Overseer setup and template (optional) local ok_overseer, overseer = pcall(require, "overseer") if ok_overseer then