[[plugins]]
repo = 'LumaKernel/ddc-file'
hook_add = '''
call add(g:vimrc#ddc_sources, [1, 'file'])
let g:vimrc#ddc_source_options.file = {
\ 'mark': 'F',
\ 'isVolatile': v:true,
\ 'forceCompletionPattern': '\S/\S*',
\ }
'''

[[plugins]]
repo = 'Shougo/ddc-around'
hook_add = '''
call add(g:vimrc#ddc_sources, [2, 'around'])
let g:vimrc#ddc_source_options.around = {'mark': 'A'}
'''

[[plugins]]
repo = 'Shougo/ddc-matcher_head'
hook_add = '''
let g:vimrc#ddc_source_options['_'] = get(g:vimrc#ddc_source_options, '_', {})
let g:vimrc#ddc_source_options['_']['matchers'] = ['matcher_head']
'''

[[plugins]]
repo = 'Shougo/ddc-sorter_rank'
hook_add = '''
let g:vimrc#ddc_source_options['_'] = get(g:vimrc#ddc_source_options, '_', {})
let g:vimrc#ddc_source_options['_']['sorters'] = ['sorter_rank']
'''

[[plugins]]
repo = 'Shougo/ddc.vim'
hook_source = '''
let g:vimrc#ddc_sources_sorted = sort(map(g:vimrc#ddc_sources, 'v:val[1]'))
" 各sourceのhook_addでg:vimrc#ddc_sourcesへの追加を行い、ddc.vimのhook_sourceでまとめて処理する
call ddc#custom#patch_global('sources', g:vimrc#ddc_sources_sorted)
call ddc#custom#patch_global('sourceOptions', g:vimrc#ddc_source_options)
call ddc#custom#patch_global('completionMenu', 'pum.vim')
call ddc#custom#patch_global('backspaceCompletion', v:true)
autocmd VimEnter * doautocmd <nomodeline> User vimrc-ddc
autocmd VimEnter * call ddc#enable()
'''

[[plugins]]
repo = 'Shougo/neco-vim'
hook_add = '''
function! s:setup_necovim() abort
  call ddc#custom#patch_filetype(['vim'], 'sources', ['necovim'] + g:vimrc#ddc_sources_sorted)
endfunction
autocmd User vimrc-ddc call s:setup_necovim()
'''

[[plugins]]
repo = 'Shougo/pum.vim'
hook_add = '''
inoremap <Tab>   <Cmd>call pum#map#insert_relative(+1)<CR>
inoremap <S-Tab> <Cmd>call pum#map#insert_relative(-1)<CR>
inoremap <C-n>   <Cmd>call pum#map#insert_relative(+1)<CR>
inoremap <C-p>   <Cmd>call pum#map#insert_relative(-1)<CR>
inoremap <C-y>   <Cmd>call pum#map#confirm()<CR>
inoremap <C-e>   <Cmd>call pum#map#cancel()<CR>
'''

[[plugins]]
repo = 'matsui54/ddc-buffer'
hook_add = '''
call add(g:vimrc#ddc_sources, [2, 'buffer'])
let g:vimrc#ddc_source_options.buffer = {'mark': 'B'}
'''