2014-01-13 14:08:43 -05:00
|
|
|
" Copyright (C) 2011, 2012 Google Inc.
|
2012-04-15 19:57:10 -04:00
|
|
|
"
|
|
|
|
" This file is part of YouCompleteMe.
|
|
|
|
"
|
|
|
|
" YouCompleteMe is free software: you can redistribute it and/or modify
|
|
|
|
" it under the terms of the GNU General Public License as published by
|
|
|
|
" the Free Software Foundation, either version 3 of the License, or
|
|
|
|
" (at your option) any later version.
|
|
|
|
"
|
|
|
|
" YouCompleteMe is distributed in the hope that it will be useful,
|
|
|
|
" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
" GNU General Public License for more details.
|
|
|
|
"
|
|
|
|
" You should have received a copy of the GNU General Public License
|
|
|
|
" along with YouCompleteMe. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
2013-02-06 13:30:21 -05:00
|
|
|
" This is basic vim plugin boilerplate
|
|
|
|
let s:save_cpo = &cpo
|
|
|
|
set cpo&vim
|
|
|
|
|
2014-03-08 02:52:12 -05:00
|
|
|
function! s:restore_cpo()
|
|
|
|
let &cpo = s:save_cpo
|
|
|
|
unlet s:save_cpo
|
|
|
|
endfunction
|
|
|
|
|
2012-07-28 18:27:30 -04:00
|
|
|
if exists( "g:loaded_youcompleteme" )
|
2014-03-08 02:52:12 -05:00
|
|
|
call s:restore_cpo()
|
2012-04-15 19:57:10 -04:00
|
|
|
finish
|
2015-08-31 12:51:23 -04:00
|
|
|
elseif v:version < 703 || (v:version == 703 && !has('patch598'))
|
2013-07-12 13:23:01 -04:00
|
|
|
echohl WarningMsg |
|
2015-08-31 12:51:23 -04:00
|
|
|
\ echomsg "YouCompleteMe unavailable: requires Vim 7.3.598+" |
|
2013-07-12 13:23:01 -04:00
|
|
|
\ echohl None
|
2014-03-08 02:52:12 -05:00
|
|
|
call s:restore_cpo()
|
2013-07-12 13:23:01 -04:00
|
|
|
finish
|
2016-02-28 16:54:49 -05:00
|
|
|
elseif !has( 'python' ) && !has( 'python3' )
|
2012-08-02 23:38:15 -04:00
|
|
|
echohl WarningMsg |
|
2013-10-28 15:31:31 -04:00
|
|
|
\ echomsg "YouCompleteMe unavailable: requires Vim compiled with " .
|
2016-02-28 16:54:49 -05:00
|
|
|
\ "Python (2.6+ or 3.3+) support" |
|
2012-08-02 23:38:15 -04:00
|
|
|
\ echohl None
|
2014-03-08 02:52:12 -05:00
|
|
|
call s:restore_cpo()
|
2012-08-02 23:38:15 -04:00
|
|
|
finish
|
2012-04-15 19:57:10 -04:00
|
|
|
endif
|
2012-08-02 23:38:15 -04:00
|
|
|
|
2013-01-21 20:34:49 -05:00
|
|
|
let s:script_folder_path = escape( expand( '<sfile>:p:h' ), '\' )
|
2014-05-13 17:25:53 -04:00
|
|
|
let s:python_folder_path = s:script_folder_path . '/../python/'
|
2014-05-14 18:02:51 -04:00
|
|
|
let s:ycmd_folder_path = s:script_folder_path . '/../third_party/ycmd/'
|
2013-01-21 20:34:49 -05:00
|
|
|
|
2014-05-13 17:25:53 -04:00
|
|
|
function! s:YcmLibsPresentIn( path_prefix )
|
2016-02-24 16:43:03 -05:00
|
|
|
if filereadable(a:path_prefix . 'ycm_core.so')
|
2013-01-21 20:34:49 -05:00
|
|
|
return 1
|
2016-02-24 16:43:03 -05:00
|
|
|
elseif filereadable(a:path_prefix . 'ycm_core.pyd')
|
2013-01-21 20:34:49 -05:00
|
|
|
return 1
|
2016-02-24 16:43:03 -05:00
|
|
|
elseif filereadable(a:path_prefix . 'ycm_core.dll')
|
2013-06-18 19:50:51 -04:00
|
|
|
return 1
|
2013-01-21 20:34:49 -05:00
|
|
|
endif
|
|
|
|
return 0
|
|
|
|
endfunction
|
|
|
|
|
2014-05-13 17:25:53 -04:00
|
|
|
if s:YcmLibsPresentIn( s:python_folder_path )
|
|
|
|
echohl WarningMsg |
|
2014-05-14 18:05:34 -04:00
|
|
|
\ echomsg "YCM libraries found in old YouCompleteMe/python location; " .
|
|
|
|
\ "please RECOMPILE YCM." |
|
2014-05-13 17:25:53 -04:00
|
|
|
\ echohl None
|
|
|
|
call s:restore_cpo()
|
|
|
|
finish
|
|
|
|
endif
|
|
|
|
|
2013-04-12 19:15:31 -04:00
|
|
|
let g:ycm_check_if_ycm_core_present =
|
|
|
|
\ get( g:, 'ycm_check_if_ycm_core_present', 1 )
|
|
|
|
|
2014-05-13 17:25:53 -04:00
|
|
|
if g:ycm_check_if_ycm_core_present &&
|
|
|
|
\ !s:YcmLibsPresentIn( s:ycmd_folder_path )
|
2013-01-21 20:34:49 -05:00
|
|
|
echohl WarningMsg |
|
2016-02-24 16:43:03 -05:00
|
|
|
\ echomsg "ycm_core.[so|pyd|dll] not detected; you need to compile " .
|
2013-06-18 19:50:51 -04:00
|
|
|
\ "YCM before using it. Read the docs!" |
|
2013-01-21 20:34:49 -05:00
|
|
|
\ echohl None
|
2014-03-08 02:52:12 -05:00
|
|
|
call s:restore_cpo()
|
2013-01-21 20:34:49 -05:00
|
|
|
finish
|
|
|
|
endif
|
|
|
|
|
2012-04-15 19:57:10 -04:00
|
|
|
let g:loaded_youcompleteme = 1
|
|
|
|
|
2016-02-24 16:43:03 -05:00
|
|
|
" NOTE: Most defaults are in third_party/ycmd/ycmd/default_settings.json. They
|
|
|
|
" are loaded into Vim globals with the 'ycm_' prefix if such a key does not
|
|
|
|
" already exist; thus, the user can override the defaults.
|
2013-10-04 15:23:33 -04:00
|
|
|
" The only defaults that are here are the ones that are only relevant to the YCM
|
2016-02-24 16:43:03 -05:00
|
|
|
" Vim client and not the ycmd server.
|
2012-08-02 23:32:29 -04:00
|
|
|
|
|
|
|
let g:ycm_allow_changing_updatetime =
|
2012-08-04 20:46:54 -04:00
|
|
|
\ get( g:, 'ycm_allow_changing_updatetime', 1 )
|
2012-08-02 23:32:29 -04:00
|
|
|
|
2014-01-29 13:59:15 -05:00
|
|
|
let g:ycm_open_loclist_on_ycm_diags =
|
|
|
|
\ get( g:, 'ycm_open_loclist_on_ycm_diags', 1 )
|
|
|
|
|
2012-08-05 22:55:06 -04:00
|
|
|
let g:ycm_add_preview_to_completeopt =
|
2013-01-14 23:45:55 -05:00
|
|
|
\ get( g:, 'ycm_add_preview_to_completeopt', 0 )
|
2012-08-05 22:55:06 -04:00
|
|
|
|
2012-08-07 00:29:56 -04:00
|
|
|
let g:ycm_autoclose_preview_window_after_completion =
|
|
|
|
\ get( g:, 'ycm_autoclose_preview_window_after_completion', 0 )
|
2012-07-26 16:04:49 -04:00
|
|
|
|
2013-03-15 14:43:09 -04:00
|
|
|
let g:ycm_autoclose_preview_window_after_insertion =
|
|
|
|
\ get( g:, 'ycm_autoclose_preview_window_after_insertion', 0 )
|
|
|
|
|
2013-02-08 21:29:36 -05:00
|
|
|
let g:ycm_key_list_select_completion =
|
|
|
|
\ get( g:, 'ycm_key_list_select_completion', ['<TAB>', '<Down>'] )
|
2013-01-26 21:45:27 -05:00
|
|
|
|
2013-02-08 21:29:36 -05:00
|
|
|
let g:ycm_key_list_previous_completion =
|
|
|
|
\ get( g:, 'ycm_key_list_previous_completion', ['<S-TAB>', '<Up>'] )
|
2013-01-26 21:45:27 -05:00
|
|
|
|
|
|
|
let g:ycm_key_invoke_completion =
|
|
|
|
\ get( g:, 'ycm_key_invoke_completion', '<C-Space>' )
|
|
|
|
|
2013-01-31 15:32:07 -05:00
|
|
|
let g:ycm_key_detailed_diagnostics =
|
|
|
|
\ get( g:, 'ycm_key_detailed_diagnostics', '<leader>d' )
|
|
|
|
|
2013-04-12 18:12:27 -04:00
|
|
|
let g:ycm_cache_omnifunc =
|
|
|
|
\ get( g:, 'ycm_cache_omnifunc', 1 )
|
2013-04-08 16:26:34 -04:00
|
|
|
|
2013-10-23 15:30:13 -04:00
|
|
|
let g:ycm_server_log_level =
|
|
|
|
\ get( g:, 'ycm_server_log_level', 'info' )
|
|
|
|
|
|
|
|
let g:ycm_server_keep_logfiles =
|
|
|
|
\ get( g:, 'ycm_server_keep_logfiles', 0 )
|
|
|
|
|
2013-10-26 19:22:43 -04:00
|
|
|
let g:ycm_extra_conf_vim_data =
|
|
|
|
\ get( g:, 'ycm_extra_conf_vim_data', [] )
|
|
|
|
|
2013-11-14 13:50:05 -05:00
|
|
|
let g:ycm_path_to_python_interpreter =
|
2013-11-15 08:46:10 -05:00
|
|
|
\ get( g:, 'ycm_path_to_python_interpreter', '' )
|
2013-11-14 13:50:05 -05:00
|
|
|
|
2014-01-04 17:28:27 -05:00
|
|
|
let g:ycm_show_diagnostics_ui =
|
|
|
|
\ get( g:, 'ycm_show_diagnostics_ui',
|
|
|
|
\ get( g:, 'ycm_register_as_syntastic_checker', 1 ) )
|
|
|
|
|
2014-01-08 22:43:21 -05:00
|
|
|
let g:ycm_enable_diagnostic_signs =
|
|
|
|
\ get( g:, 'ycm_enable_diagnostic_signs',
|
2014-01-08 21:43:17 -05:00
|
|
|
\ get( g:, 'syntastic_enable_signs', 1 ) )
|
|
|
|
|
2014-01-08 22:43:21 -05:00
|
|
|
let g:ycm_enable_diagnostic_highlighting =
|
|
|
|
\ get( g:, 'ycm_enable_diagnostic_highlighting',
|
2014-01-08 21:43:17 -05:00
|
|
|
\ get( g:, 'syntastic_enable_highlighting', 1 ) )
|
|
|
|
|
|
|
|
let g:ycm_echo_current_diagnostic =
|
|
|
|
\ get( g:, 'ycm_echo_current_diagnostic',
|
|
|
|
\ get( g:, 'syntastic_echo_current_error', 1 ) )
|
|
|
|
|
2014-01-08 22:43:21 -05:00
|
|
|
let g:ycm_always_populate_location_list =
|
|
|
|
\ get( g:, 'ycm_always_populate_location_list',
|
2014-01-08 22:09:40 -05:00
|
|
|
\ get( g:, 'syntastic_always_populate_loc_list', 0 ) )
|
|
|
|
|
2014-01-04 17:28:27 -05:00
|
|
|
let g:ycm_error_symbol =
|
|
|
|
\ get( g:, 'ycm_error_symbol',
|
|
|
|
\ get( g:, 'syntastic_error_symbol', '>>' ) )
|
|
|
|
|
|
|
|
let g:ycm_warning_symbol =
|
|
|
|
\ get( g:, 'ycm_warning_symbol',
|
|
|
|
\ get( g:, 'syntastic_warning_symbol', '>>' ) )
|
2013-10-23 15:30:13 -04:00
|
|
|
|
2014-02-23 08:50:51 -05:00
|
|
|
let g:ycm_goto_buffer_command =
|
2014-03-04 05:47:43 -05:00
|
|
|
\ get( g:, 'ycm_goto_buffer_command', 'same-buffer' )
|
2014-02-23 08:50:51 -05:00
|
|
|
|
2014-12-03 04:38:02 -05:00
|
|
|
let g:ycm_disable_for_files_larger_than_kb =
|
|
|
|
\ get( g:, 'ycm_disable_for_files_larger_than_kb', 1000 )
|
|
|
|
|
2012-04-15 19:57:10 -04:00
|
|
|
" On-demand loading. Let's use the autoload folder and not slow down vim's
|
|
|
|
" startup procedure.
|
|
|
|
augroup youcompletemeStart
|
|
|
|
autocmd!
|
|
|
|
autocmd VimEnter * call youcompleteme#Enable()
|
|
|
|
augroup END
|
|
|
|
|
|
|
|
" This is basic vim plugin boilerplate
|
2014-03-08 02:52:12 -05:00
|
|
|
call s:restore_cpo()
|