72 lines
1.9 KiB
Nix
72 lines
1.9 KiB
Nix
{ 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; };
|
|
}
|
|
];
|
|
};
|
|
}
|