[[plugins]]
repo = 'Shougo/ddu.vim'
depends = 'denops.vim'
lazy = true
on_func = 'ddu#start'
hook_add = '''
let g:launcher_config.ddu = #{
      \ char: 'd',
      \ run: { -> ddu#start(#{ sources: [#{ name: 'source' }] }) },
      \ }
nnoremap <Leader>d <Cmd>Ddu -resume<CR>
inoremap <C-x><C-e> <Cmd>call ddu#start(#{
      \ sources: [
      \   #{ name: 'emoji', options: #{ defaultAction: 'feedkeys' } },
      \ ],
      \ uiParams: #{
      \   ff: #{ replaceCol: col('.') },
      \ },
      \ })<CR>
'''
hook_source = '''
Runtime dein/settings/ddu.vim
'''

[[plugins]]
repo = 'Shougo/ddu-commands.vim'
depends = 'ddu.vim'
lazy = true
on_cmd = 'Ddu'

# UI

[[plugins]]
repo = 'Shougo/ddu-ui-ff'
[plugins.ftplugin]
ddu-ff = '''
setlocal cursorline
nnoremap <buffer> <CR>
      \ <Cmd>call ddu#ui#do_action('itemAction')<CR>
nnoremap <buffer> <Space>
      \ <Cmd>call ddu#ui#do_action('toggleSelectItem')<CR>
xnoremap <buffer><silent> <Space>
      \ :call ddu#ui#do_action('toggleSelectItem')<CR>
nnoremap <buffer> A
      \ <Cmd>call ddu#ui#do_action('toggleAllItems')<CR>
nnoremap <buffer> C
      \ <Cmd>call ddu#ui#do_action('clearSelectAllItems')<CR>
nnoremap <buffer> i
      \ <Cmd>call ddu#ui#do_action('openFilterWindow')<CR>
nnoremap <buffer> <Tab>
      \ <Cmd>call ddu#ui#do_action('chooseAction')<CR>
nnoremap <buffer> <C-l>
      \ <Cmd>call ddu#ui#do_action('refreshItems')<Bar>redraw<CR>
nnoremap <buffer> p
      \ <Cmd>call ddu#ui#do_action('preview')<CR>
nnoremap <buffer> q
      \ <Cmd>call ddu#ui#do_action('quit')<CR>
nnoremap <buffer> E
      \ <Cmd>call ddu#ui#do_action('itemAction',
      \ #{ params: eval(input('params: ', "#{}\<lt>Left>")) })<CR>
'''

ddu-ff-filter = '''
setlocal nocursorline
nnoremap <buffer> q     <Cmd>call ddu#ui#do_action('closeFilterWindow')<CR>
nnoremap <buffer> <CR>  <Cmd>call ddu#ui#do_action('closeFilterWindow')<CR>
inoremap <buffer> <CR>  <Esc><Cmd>call ddu#ui#do_action('itemAction')<CR>
inoremap <buffer> <C-c> <Esc><Cmd>call ddu#ui#do_action('closeFilterWindow')<CR>
inoremap <buffer> <C-n>
      \ <Cmd>call ddu#ui#ff#execute("call cursor(line('.')+1,0)<Bar>redraw")<CR>
inoremap <buffer> <C-p>
      \ <Cmd>call ddu#ui#ff#execute("call cursor(line('.')-1,0)<Bar>redraw")<CR>
'''

# filters

[[plugins]]
repo = 'Shougo/ddu-filter-matcher_hidden'

[[plugins]]
repo = 'Shougo/ddu-filter-matcher_relative'

[[plugins]]
repo = 'Shougo/ddu-filter-matcher_substring'

[[plugins]]
repo = 'yuki-yano/ddu-filter-fzf'

# kinds

[[plugins]]
repo = '4513echo/ddu-kind-url'
depends = 'open-browser.vim'

[[plugins]]
repo = 'Shougo/ddu-kind-file'

[[plugins]]
repo = 'Shougo/ddu-kind-word'

# sources

[[plugins]]
repo = '4513echo/ddu-source-colorscheme'

[[plugins]]
repo = '4513echo/ddu-source-emoji'

[[plugins]]
repo = '4513echo/ddu-source-ghq'

[[plugins]]
repo = '4513echo/ddu-source-source'

[[plugins]]
repo = 'kuuote/ddu-source-mr'

[[plugins]]
repo = 'Shougo/ddu-source-action'

[[plugins]]
repo = 'Shougo/ddu-source-file'

[[plugins]]
repo = 'Shougo/ddu-source-file_rec'

[[plugins]]
repo = 'Shougo/ddu-source-line'

[[plugins]]
repo = 'Shougo/ddu-source-register'

[[plugins]]
repo = 'liquidz/ddu-source-custom-list'

[[plugins]]
repo = 'matsui54/ddu-source-dein_update'

[[plugins]]
repo = 'matsui54/ddu-source-file_external'

[[plugins]]
repo = 'matsui54/ddu-source-command_history'

[[plugins]]
repo = 'matsui54/ddu-source-help'

[[plugins]]
repo = 'matsui54/ddu-source-man'

[[plugins]]
repo = 'shun/ddu-source-buffer'

[[plugins]]
repo = 'shun/ddu-source-rg'