From eb6349e63c8ff79bfb8ebe34bc9ab15d9b720f7e Mon Sep 17 00:00:00 2001 From: Rakshit Sinha Date: Wed, 27 Nov 2024 19:41:15 -0800 Subject: [PATCH] Added code to update nvim-tree active file when changing open buffer * nvim-tree will move to the current active buffer when changing files * Updated git-blame highlight group to "Question" instead of the default "Comment" --- lua/rakshit/plugins/git-blame.lua | 1 + lua/rakshit/plugins/nvim-tree.lua | 44 ++++++++++++++++++++----------- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/lua/rakshit/plugins/git-blame.lua b/lua/rakshit/plugins/git-blame.lua index 6ebb3a22..8f41353f 100644 --- a/lua/rakshit/plugins/git-blame.lua +++ b/lua/rakshit/plugins/git-blame.lua @@ -15,5 +15,6 @@ return { virtual_text_column = 80, -- virtual text start column, check Start virtual text at column section for more options message_when_not_committed = "Not committed yet", display_virtual_text = 1, + highlight_group = "Question", }, } diff --git a/lua/rakshit/plugins/nvim-tree.lua b/lua/rakshit/plugins/nvim-tree.lua index fe970c1e..73adfb23 100644 --- a/lua/rakshit/plugins/nvim-tree.lua +++ b/lua/rakshit/plugins/nvim-tree.lua @@ -1,8 +1,8 @@ return { - 'nvim-tree/nvim-tree.lua', - dependencies = 'nvim-tree/nvim-web-devicons', + "nvim-tree/nvim-tree.lua", + dependencies = "nvim-tree/nvim-web-devicons", config = function() - local nvimtree = require('nvim-tree') + local nvimtree = require("nvim-tree") -- recommended settings from nvim-tree documentation vim.g.loaded_netrw = 1 @@ -24,8 +24,8 @@ return { icons = { glyphs = { folder = { - arrow_closed = '', -- arrow when folder is closed - arrow_open = '', -- arrow when folder is open + arrow_closed = "", -- arrow when folder is closed + arrow_open = "", -- arrow when folder is open }, }, }, @@ -41,26 +41,40 @@ return { }, }, filters = { - custom = { '.DS_Store' }, + custom = { ".DS_Store" }, }, git = { ignore = false, }, }) + -- Sync nvim-tree with current file when file changes (BufEnter) + local function sync_nvim_tree() + local api = require("nvim-tree.api") + + -- Check if nvim-tree is open + local is_open = api.tree.is_visible() + if is_open then + api.tree.find_file(vim.fn.expand("%"), true) + end + end + + -- Trigger sync_nvim_tree when buffer is entered + vim.api.nvim_create_autocmd("BufEnter", { + pattern = "*", + callback = function() + sync_nvim_tree() + end, + }) + -- set keymaps local keymap = vim.keymap -- for conciseness - keymap.set('n', 'ee', 'NvimTreeToggle', { desc = 'Toggle file explorer' }) -- toggle file explorer - keymap.set( - 'n', - 'ef', - 'NvimTreeFindFileToggle', - { desc = 'Toggle file explorer on current file' } - ) -- toggle file explorer on current file + keymap.set("n", "ee", "NvimTreeToggle", { desc = "Toggle file explorer" }) -- toggle file explorer + keymap.set("n", "ef", "NvimTreeFindFileToggle", { desc = "Toggle file explorer on current file" }) -- toggle file explorer on current file -- keymap.set('n', ')', 'NvimTreeFindFileToggle', { desc = 'Toggle file explorer on current file' }) -- toggle file explorer on current file - keymap.set('n', 'ec', 'NvimTreeCollapse', { desc = 'Collapse file explorer' }) -- collapse file explorer - keymap.set('n', 'er', 'NvimTreeRefresh', { desc = 'Refresh file explorer' }) -- refresh file explorer + keymap.set("n", "ec", "NvimTreeCollapse", { desc = "Collapse file explorer" }) -- collapse file explorer + keymap.set("n", "er", "NvimTreeRefresh", { desc = "Refresh file explorer" }) -- refresh file explorer -- New ones I'm adding just for testing and hopefully that works -- keymap.set('n', 'h', 'NvimTreeCollapse', { desc = 'Collapse file explorer' }) -- collapse file explorer