Storing the completion start column in Vim script

This way we don't have to recalculate it every time we call CandidatesForQuery
This commit is contained in:
Strahinja Val Markovic 2012-07-10 15:39:59 -07:00
parent 94288108d8
commit 5de395d9bb
2 changed files with 6 additions and 5 deletions

View File

@ -23,6 +23,7 @@ set cpo&vim
let s:script_folder_path = escape( expand( '<sfile>:p:h' ), '\' ) let s:script_folder_path = escape( expand( '<sfile>:p:h' ), '\' )
let s:searched_and_no_results_found = 0 let s:searched_and_no_results_found = 0
let s:should_use_clang = 0 let s:should_use_clang = 0
let s:completion_start_column = 0
let g:ycm_min_num_of_chars_for_completion = 2 let g:ycm_min_num_of_chars_for_completion = 2
" TODO: check for a non-broken version of Vim and stop executing (with an error " TODO: check for a non-broken version of Vim and stop executing (with an error
@ -207,23 +208,23 @@ function! youcompleteme#Complete( findstart, base )
if a:findstart if a:findstart
py << EOF py << EOF
start_column = ycm.CompletionStartColumn() start_column = ycm.CompletionStartColumn()
vim.command( 'let l:start_column = ' + str( start_column ) ) vim.command( 'let s:completion_start_column = ' + str( start_column ) )
vim.command( 'let s:should_use_clang = ' + vim.command( 'let s:should_use_clang = ' +
str( int( ycm.ShouldUseClang( start_column ) ) ) ) str( int( ycm.ShouldUseClang( start_column ) ) ) )
EOF EOF
if ( s:should_use_clang ) if ( s:should_use_clang )
return start_column return s:completion_start_column
else else
let l:current_column = col('.') - 1 let l:current_column = col('.') - 1
let l:query_length = current_column - start_column let l:query_length = current_column - s:completion_start_column
if ( query_length < g:ycm_min_num_of_chars_for_completion ) if ( query_length < g:ycm_min_num_of_chars_for_completion )
" for vim, -2 means not found but don't trigger an error message " for vim, -2 means not found but don't trigger an error message
" see :h complete-functions " see :h complete-functions
return -2 return -2
endif endif
return start_column return s:completion_start_column
endif endif
else else
if ( s:should_use_clang ) if ( s:should_use_clang )

View File

@ -110,7 +110,7 @@ class ClangComplete( object ):
files.append( unsaved_file ) files.append( unsaved_file )
line = int( vim.eval( "line('.')" ) ) line = int( vim.eval( "line('.')" ) )
column = CompletionStartColumn() + 1 column = int( vim.eval( "s:completion_start_column" ) ) + 1
results = self.completer.CandidatesForLocationInFile( buffer.name, results = self.completer.CandidatesForLocationInFile( buffer.name,
line, line,
column, column,