local ffUiParams = { ff = { split = 'horizontal', splitDirection = 'belowright', filterSplitDirection = 'floating', filterFloatingPosition = 'bottom', startFilter = false, winHeight = 10, }, } local function dduAction(action) return function() vim.fn['ddu#ui#do_action'](action) end end return { setup = function() vim.keymap.set('n', '(ddu-buffers)', function() vim.fn['ddu#start'] { ui = 'ff', uiParams = ffUiParams, sources = { { name = 'buffer', params = { orderby = 'asc', }, }, }, sourceOptions = { buffer = { defaultAction = 'open', matchers = { 'matcher_fzf', }, }, }, } end) vim.api.nvim_create_autocmd('FileType', { group = 'VimRc', pattern = 'ddu-ff', desc = 'Setup keymaps of ddu-ff', callback = function(ctx) vim.keymap.set_table { mode = 'n', opts = { buffer = ctx.buf, }, maps = { { '', dduAction 'itemAction' }, { 'i', dduAction 'openFilterWindow' }, { 'q', dduAction 'quit' }, }, } end, }) vim.api.nvim_create_autocmd('FileType', { group = 'VimRc', pattern = 'ddu-ff-filter', desc = 'Setup keymaps of ddu-ui-ff', callback = function(ctx) vim.keymap.set('i', '', function() vim.cmd.stopinsert() vim.fn['ddu#ui#do_action'] 'closeFilterWindow' end, { buffer = ctx.buf }) vim.keymap.set('n', '', dduAction 'closeFilterWindow', { buffer = ctx.buf }) vim.keymap.set('n', 'q', dduAction 'quit', { buffer = ctx.buf }) end, }) end, }