Adding the cursor identifier on InsertLeave

This should help catch cases where the user jumps to an identifier and then
edits it in place; we want to add that new ident to the db ASAP because the user
may want to have it completed soon.

Still, we're not perfect. If the user just deletes chars with 'x' or 'd' in Vim
and therefore never even enters insert mode we are obviously not going to pick
up that identifier until the next full file sweep.
This commit is contained in:
Strahinja Val Markovic 2012-07-31 19:01:22 -07:00
parent b20a24cde9
commit 06d653c60d
2 changed files with 15 additions and 3 deletions

View File

@ -140,11 +140,9 @@ endfunction
function! s:OnInsertLeave() function! s:OnInsertLeave()
" TODO: Also, look at the current identifier under the cursor on InsertLeave
" and add it to the identifier database; this should catch the cases where the
" user slightly changes a variable name in-place
let s:omnifunc_mode = 0 let s:omnifunc_mode = 0
call s:UpdateDiagnosticNotifications() call s:UpdateDiagnosticNotifications()
py identcomp.AddIdentifierUnderCursor()
endfunction endfunction

View File

@ -82,6 +82,20 @@ class IdentifierCompleter( Completer ):
self.AddIdentifier( PreviousIdentifier() ) self.AddIdentifier( PreviousIdentifier() )
def AddIdentifierUnderCursor( self ):
cursor_identifier = vim.eval( 'expand("<cword>")' )
if not cursor_identifier:
return
stripped_cursor_identifier = ''.join( ( x for x in
cursor_identifier if
IsIdentifierChar( x ) ) )
if not stripped_cursor_identifier:
return
self.AddIdentifier( stripped_cursor_identifier )
def AddBufferIdentifiers( self ): def AddBufferIdentifiers( self ):
filetype = vim.eval( "&filetype" ) filetype = vim.eval( "&filetype" )
filepath = vim.eval( "expand('%:p')" ) filepath = vim.eval( "expand('%:p')" )