{ ... }: {
programs.neovim = {
extraLuaConfig = /*lua*/ ''
do
function get_buffer_dir()
local file = vim.api.nvim_buf_get_name(0)
return file ~= "" and vim.fs.dirname(file) or nil
end
-- f
vim.keymap.set('n', "<space>f", function() Snacks.picker.files({ cwd = get_buffer_dir() }) end)
vim.keymap.set('n', "<space>F", function() Snacks.picker.files() end)
vim.keymap.set('n', "<space>b", function() Snacks.picker.buffers() end)
-- s
vim.keymap.set('n', "<space>g", function() Snacks.picker.grep({ cwd = get_buffer_dir() }) end)
vim.keymap.set('n', "<space>G", function() Snacks.picker.grep() end)
vim.keymap.set('n', "<space>h", function() Snacks.picker.help() end)
vim.keymap.set('n', '<space>c', function() Snacks.picker.command_history() end)
vim.keymap.set('n', '<space>C', function() Snacks.picker.commands() end)
vim.keymap.set('n', '<space>S', function() Snacks.picker.git_status() end)
vim.keymap.set('n', '<space>p', function() Snacks.picker.pickers() end)
end
'';
};
}