nixvim-config/plugins/mini-files.nix

73 lines
1.9 KiB
Nix
Raw Permalink Normal View History

{ 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('<c-f>', 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 = "<cmd>lua mini_files_open_current_buffer()<CR>";
}
## Toggle nvim-tree visibility
{
mode = [ "n" ];
key = ",m";
action = "<cmd>lua mini_files_toggle()<CR>";
}
## Search current path
{
mode = [ "n" ];
key = "<c-f>";
action = "<cmd>lua launch_find_files_wrapped()<CR>";
options = { noremap = true; };
}
{
mode = [ "n" ];
key = "<c-g>";
action = "<cmd>lua require('treeutils-mini').launch_live_grep()<CR>";
options = { noremap = true; };
}
];
};
}