From b24359b71220d22dadac62677e50320d8ec43344 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thea=20Sch=C3=B6bl?= Date: Mon, 10 Jun 2024 18:09:01 +0200 Subject: [PATCH] fix: nvim tree auto save --- .../home-manager/programs/nixvim/default.nix | 1 - .../programs/nixvim/presets/auto-save.nix | 30 ++++++++++++------- .../programs/nixvim/presets/base/tree.nix | 17 ++++++----- 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/modules/home-manager/programs/nixvim/default.nix b/modules/home-manager/programs/nixvim/default.nix index f38d182..6c38fd1 100644 --- a/modules/home-manager/programs/nixvim/default.nix +++ b/modules/home-manager/programs/nixvim/default.nix @@ -39,7 +39,6 @@ trouble.enable = true; base = { completion.enable = true; - diagnostics.enable = true; find.enable = true; formatting = { diff --git a/modules/home-manager/programs/nixvim/presets/auto-save.nix b/modules/home-manager/programs/nixvim/presets/auto-save.nix index e4c7d72..e52b933 100644 --- a/modules/home-manager/programs/nixvim/presets/auto-save.nix +++ b/modules/home-manager/programs/nixvim/presets/auto-save.nix @@ -23,20 +23,24 @@ in }; config = lib.mkIf cfg.enable { + extraConfigLua = '' + function AutoSave() + if not vim.b.${cfg.varName} and not vim.g.${cfg.varName} then + local bufnr = vim.api.nvim_get_current_buf() + local modified = vim.api.nvim_buf_get_option(bufnr, 'modified') + if modified then + vim.cmd('silent! w') + print("Auto save at " .. os.date("%H:%M:%S")) + end + end + end + ''; + autoCmd = [ { event = cfg.event; pattern = [ "*" ]; - callback = { - __raw = '' - function() - if not vim.b.${cfg.varName} and not vim.g.${cfg.varName} then - vim.cmd('silent! w') - print("Auto save at " .. os.date("%H:%M:%S")) - end - end - ''; - }; + command = "lua AutoSave()"; } ]; @@ -79,6 +83,12 @@ in }; }; + neo-tree.eventHandlers.window_before_open = '' + function() + AutoSave() + end + ''; + lualine.sections.lualine_x = lib.mkOrder 700 [ "(vim.g.${cfg.varName} or vim.b.${cfg.varName}) and '󱙃' or nil" ]; diff --git a/modules/home-manager/programs/nixvim/presets/base/tree.nix b/modules/home-manager/programs/nixvim/presets/base/tree.nix index e14b840..31bea6d 100644 --- a/modules/home-manager/programs/nixvim/presets/base/tree.nix +++ b/modules/home-manager/programs/nixvim/presets/base/tree.nix @@ -17,14 +17,17 @@ in plugins = { neo-tree = { enable = true; - filesystem.filteredItems.visible = true; - eventHandlers = { - file_opened = '' - function() - require('neo-tree').close_all() - end - ''; + filesystem = { + useLibuvFileWatcher = true; + followCurrentFile.enabled = true; + filteredItems.visible = true; }; + popupBorderStyle = "rounded"; + eventHandlers.file_opened = '' + function() + require('neo-tree').close_all() + end + ''; }; which-key.registrations."f".t = "Tree"; };