"============================================================================= " FILE: autoload/incsearch/config.vim " AUTHOR: haya14busa " License: MIT license "============================================================================= scriptencoding utf-8 let s:save_cpo = &cpo set cpo&vim let s:TRUE = !0 let s:FALSE = 0 lockvar s:TRUE s:FALSE let s:U = incsearch#util#import() "" incsearch config " TODO: more detail documentation " @command is equivalent with base_key TODO: fix this inconsistence " @count default: v:count secret " @mode default: mode(1) secret let s:config = { \ 'command': '/', \ 'is_stay': s:FALSE, \ 'is_expr': s:FALSE, \ 'pattern': '', \ 'mode': 'n', \ 'count': 0, \ 'prompt': '', \ 'modules': [], \ 'converters': [], \ 'keymap': {} \ } " @return config for lazy value function! s:lazy_config() abort let m = mode(1) return { \ 'count': v:count, \ 'mode': m, \ 'is_expr': (m is# 'no'), \ 'keymap': s:keymap() \ } endfunction " @return config with default value function! incsearch#config#make(additional) abort let default = extend(deepcopy(s:config), s:lazy_config()) let c = s:U.deepextend(default, a:additional) if c.prompt is# '' let c.prompt = c.command endif return c endfunction let s:default_keymappings = { \ "\" : { \ 'key' : '(incsearch-next)', \ 'noremap' : 1, \ }, \ "\" : { \ 'key' : '(incsearch-prev)', \ 'noremap' : 1, \ }, \ "\" : { \ 'key' : '(incsearch-scroll-f)', \ 'noremap' : 1, \ }, \ "\" : { \ 'key' : '(incsearch-scroll-b)', \ 'noremap' : 1, \ }, \ "\" : { \ 'key' : '(buffer-complete)', \ 'noremap' : 1, \ }, \ "\" : { \ 'key': "\", \ 'noremap': 1 \ }, \ } " https://github.com/haya14busa/incsearch.vim/issues/35 if has('mac') call extend(s:default_keymappings, { \ '"+gP' : { \ 'key': "\+", \ 'noremap': 1 \ }, \ }) endif function! s:keymap() abort return extend(copy(s:default_keymappings), g:incsearch_cli_key_mappings) endfunction let &cpo = s:save_cpo unlet s:save_cpo " __END__ " vim: expandtab softtabstop=2 shiftwidth=2 foldmethod=marker