Skip to content

Example NeoComplete settings

Jason Imison edited this page Jan 29, 2014 · 7 revisions
autocmd FileType cs setlocal omnifunc=OmniSharp#Complete
"Note: This option must set it in .vimrc(_vimrc).  NOT IN .gvimrc(_gvimrc)!
" Disable AutoComplPop.
let g:acp_enableAtStartup = 0
" Use neocomplete.
let g:neocomplete#enable_at_startup = 1
" Don't Use smartcase.
let g:neocomplete#enable_smart_case = 0
let g:neocomplete#enable_auto_close_preview = 0
" Define dictionary.
let g:neocomplete#sources#dictionary#dictionaries = {
    \ 'default' : '',
    \ 'vimshell' : $HOME.'/.vimshell_hist'
        \ }

" Plugin key-mappings.
inoremap <expr><C-g>     neocomplete#undo_completion()
inoremap <expr><C-l>     neocomplete#complete_common_string()

" Recommended key-mappings.
" <CR>: close popup and save indent.
inoremap <silent> <CR> <C-r>=<SID>my_cr_function()<CR>
function! s:my_cr_function()
  "return neocomplete#close_popup() . "\<CR>"
  " For no inserting <CR> key.
  return pumvisible() ? neocomplete#close_popup() : "\<CR>"
endfunction
" <TAB>: completion.
inoremap <expr><TAB>  pumvisible() ? "\<C-n>" : "\<TAB>"
inoremap <expr><S-TAB>  pumvisible() ? "\<C-p>" : "\<TAB>"
" <C-h>, <BS>: close popup and delete backword char.
inoremap <expr><C-h> neocomplete#smart_close_popup()."\<C-h>"
inoremap <expr><BS> neocomplete#smart_close_popup()."\<C-h>"
inoremap <expr><C-y>  neocomplete#close_popup()
inoremap <expr><C-e>  neocomplete#cancel_popup()
let g:neocomplete#enable_auto_select = 0
let g:neocomplete#disable_auto_complete = 0
inoremap <expr><TAB>  pumvisible() ? "\<Down>" : "\<C-x>\<C-u>"
" Enable heavy omni completion.
if !exists('g:neocomplete#sources#omni#input_patterns')
  let g:neocomplete#sources#omni#input_patterns = {}
endif
"let g:neocomplete#sources#omni#input_patterns.cs = '[^.[:digit:] *\t][\.<]\w*'
let g:neocomplete#sources#omni#input_patterns.cs = '.*[^;]'

if !exists('g:neocomplete#sources')
        let g:neocomplete#sources = {}
endif
let g:neocomplete#sources.cs = ['omni']
" Change default sorter.

let s:sorter = {
      \ 'name' : 'sorter_no_sort',
      \ 'description' : 'no sorting (OmniSharp does the sorting)',
      \}

function! s:sorter.filter(context) "{{{
  return a:context.candidates
endfunction"}}}

call neocomplete#define_filter(s:sorter)
call neocomplete#custom#source('_', 'sorters',
                        \ ['sorter_no_sort'])
" Change default matcher.
"call neocomplete#custom#source('_', 'matchers',
                        "\ ['sorter_no_sort'])
let g:neocomplete#enable_refresh_always = 1
let g:echodoc_enable_at_startup = 1