dotfiles/vim/plugins/deoplete.nvim/autoload/deoplete/custom.vim

45 lines
1.3 KiB
VimL
Raw Normal View History

2018-04-05 13:06:54 +02:00
"=============================================================================
" FILE: custom.vim
" AUTHOR: Shougo Matsushita <Shougo.Matsu at gmail.com>
" License: MIT license
"=============================================================================
function! deoplete#custom#init() abort
let s:custom = {}
let s:custom.source = {}
let s:custom.source._ = {}
endfunction
function! deoplete#custom#get() abort
if !exists('s:custom')
call deoplete#custom#init()
endif
return s:custom
endfunction
function! deoplete#custom#get_source_var(source_name) abort
let custom = deoplete#custom#get().source
if !has_key(custom, a:source_name)
let custom[a:source_name] = {}
endif
return custom[a:source_name]
endfunction
function! deoplete#custom#set(source_name, option_name, value) abort
return deoplete#custom#source(a:source_name, a:option_name, a:value)
endfunction
function! deoplete#custom#source(source_name, option_name, value) abort
let value = index([
\ 'filetypes', 'disabled_syntaxes',
\ 'matchers', 'sorters', 'converters'
\ ], a:option_name) < 0 ? a:value :
\ deoplete#util#convert2list(a:value)
for key in split(a:source_name, '\s*,\s*')
let custom_source = deoplete#custom#get_source_var(key)
let custom_source[a:option_name] = value
endfor
endfunction