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