From d8c53db3b93d18e6c145c67ca4b829a3b028b9a1 Mon Sep 17 00:00:00 2001 From: Yuan Chiu Date: Mon, 2 Jun 2025 20:28:11 +0800 Subject: [PATCH] fix nvim: try to change session manager --- .../exact_plugins/exact_components/file.lua | 86 +++++++++++++------ 1 file changed, 59 insertions(+), 27 deletions(-) diff --git a/dot_config/nvim/exact_lua/exact_plugins/exact_components/file.lua b/dot_config/nvim/exact_lua/exact_plugins/exact_components/file.lua index 9fa2c9c..d721e1a 100644 --- a/dot_config/nvim/exact_lua/exact_plugins/exact_components/file.lua +++ b/dot_config/nvim/exact_lua/exact_plugins/exact_components/file.lua @@ -38,36 +38,68 @@ return { }, { - 'rmagatti/auto-session', - -- event = 'VeryLazy', -- 或者你選擇合適的時機載入 - event = 'VimLeavePre', -- 插件只在關閉時載入以自動儲存 - cmd = { "SessionRestore", "SessionSave", "SessionDelete" }, - opts = { - log_level = 'error', - auto_session_enable = true, -- ✅ 開啟 plugin 的 session 功能 - auto_restore_enabled = false, -- ❌ 禁止自動還原 - auto_save_enabled = true, -- ✅ 啟用自動儲存 - auto_session_suppress_dirs = { '~/', '~/Downloads', '/' }, -- 可選 - }, - keys = { - { "sr", "SessionRestore", desc = "Restore Session" }, - { "ss", "SessionSave", desc = "Save Session" }, - { "sd", "SessionDelete", desc = "Delete Session" }, + 'stevearc/resession.nvim', + dependencies = { + 'romgrk/barbar.nvim', }, config = function(_, opts) - require("auto-session").setup(opts) - end, - }, - { - 'rmagatti/session-lens', - dependencies = { 'rmagatti/auto-session', 'nvim-telescope/telescope.nvim' }, - config = function() - require('session-lens').setup({ - path_display = { 'shorten' }, + local resession = require("resession") + + resession.setup({ + autosave = { + enabled = true, + interval = 60, + notify = true, + }, + extensions = { + barbar = {}, + }, + }) + + -- Resession does NOTHING automagically, so we have to set up some keymaps + vim.keymap.set("n", "ss", resession.save) + vim.keymap.set("n", "sr", resession.load) + vim.keymap.set("n", "sd", resession.delete) + + vim.api.nvim_create_autocmd("VimLeavePre", { + callback = function() + -- Always save a special session named "last" + resession.save("last") + end, }) end, - keys = { - { "sl", "Telescope session-lens search_session", desc = "Search Sessions" }, - } } + -- { + -- 'rmagatti/auto-session', + -- -- event = 'VeryLazy', -- 或者你選擇合適的時機載入 + -- event = 'VimLeavePre', -- 插件只在關閉時載入以自動儲存 + -- cmd = { "SessionRestore", "SessionSave", "SessionDelete" }, + -- opts = { + -- log_level = 'error', + -- auto_session_enable = true, -- ✅ 開啟 plugin 的 session 功能 + -- auto_restore_enabled = false, -- ❌ 禁止自動還原 + -- auto_save_enabled = true, -- ✅ 啟用自動儲存 + -- auto_session_suppress_dirs = { '~/', '~/Downloads', '/' }, -- 可選 + -- }, + -- keys = { + -- { "sr", "SessionRestore", desc = "Restore Session" }, + -- { "ss", "SessionSave", desc = "Save Session" }, + -- { "sd", "SessionDelete", desc = "Delete Session" }, + -- }, + -- config = function(_, opts) + -- require("auto-session").setup(opts) + -- end, + -- }, + -- { + -- 'rmagatti/session-lens', + -- dependencies = { 'rmagatti/auto-session', 'nvim-telescope/telescope.nvim' }, + -- config = function() + -- require('session-lens').setup({ + -- path_display = { 'shorten' }, + -- }) + -- end, + -- keys = { + -- { "sl", "Telescope session-lens search_session", desc = "Search Sessions" }, + -- } + -- } }