{ pkgs,... }: { programs.nixvim = { extraPlugins = [ pkgs.vimPlugins.mini-files ]; extraFiles = { "lua/treeutils-mini.lua" = { source = ./treeutils-mini.lua; }; }; extraConfigLua = '' require('mini.files').setup({ }); function _G.mini_files_open_current_buffer() local MiniFiles = require("mini.files") local _ = MiniFiles.close() or MiniFiles.open(vim.api.nvim_buf_get_name(0), false) vim.defer_fn(function() MiniFiles.reveal_cwd() end, 30) end function _G.mini_files_toggle() local MiniFiles = require("mini.files") local _ = MiniFiles.close() or MiniFiles.open() end function _G.launch_find_files_wrapped() -- Try custom function first local handled = require('treeutils-mini').launch_find_files() if handled == "default" then -- If custom function didn't handle it, execute default behavior local default_key = vim.api.nvim_replace_termcodes('', true, true, true) vim.api.nvim_feedkeys(default_key, 'n', false) end end ''; keymaps = [ ## Go to current buffer's file in nvim-tree { mode = [ "n" ]; key = ",n"; action = "lua mini_files_open_current_buffer()"; } ## Toggle nvim-tree visibility { mode = [ "n" ]; key = ",m"; action = "lua mini_files_toggle()"; } ## Search current path { mode = [ "n" ]; key = ""; action = "lua launch_find_files_wrapped()"; options = { noremap = true; }; } { mode = [ "n" ]; key = ""; action = "lua require('treeutils-mini').launch_live_grep()"; options = { noremap = true; }; } ]; }; }