11let s: tn_job = v: null
22let s: ctx = v: null
33let s: opt = v: null
4- let s: name = ' '
4+ let s: tn_name = ' tn '
55let s: tn_init_ready = v: false
66" TabNine 第一次匹配需要大量算法运算,比较耗时,完成第一次之后速度比较快
77let b: module_building = v: false
@@ -20,7 +20,7 @@ let s:force_complete = 0
2020function ! easycomplete#sources#tn#constructor (opt , ctx)
2121 let s: opt = a: opt
2222 let name = get (a: opt , " name" , " " )
23- let s: name = name
23+ let s: tn_name = name
2424 if ! easycomplete#installer#LspServerInstalled (name)
2525 return v: true
2626 endif
@@ -41,7 +41,7 @@ function! easycomplete#sources#tn#available()
4141endfunction
4242
4343function ! s: flush ()
44- let global_opt = get (g: easycomplete_source , s: name , {})
44+ let global_opt = get (g: easycomplete_source , s: tn_name , {})
4545 let global_opt.complete_result = []
4646 let s: force_complete = 0
4747 if s: tn_render_timer > 0
@@ -57,15 +57,15 @@ endfunction
5757" 只更新 g:easycomplete_sources['tn'].complete_result
5858" refresh(v:true), 强制给出匹配菜单
5959function ! easycomplete#sources#tn#refresh (... )
60+ if ! easycomplete#ok (' g:easycomplete_tabnine_enable' )
61+ return
62+ endif
6063 if exists (" a:1" ) && a: 1 == v: true
6164 let s: force_complete = 1
6265 call timer_start (100 , { - > s: ResetForceCompleteFlag ()})
6366 else
6467 let s: force_complete = 0
6568 endif
66- if ! easycomplete#ok (' g:easycomplete_tabnine_enable' )
67- return
68- endif
6969 call easycomplete#sources#tn#completor (s: opt , easycomplete#context ())
7070endfunction
7171
@@ -107,11 +107,16 @@ function! easycomplete#sources#tn#VimColonTyping(typed)
107107endfunction
108108
109109function ! easycomplete#sources#tn#GetGlobalSourceItems ()
110- return g: easycomplete_source [s: name ].complete_result
110+ return g: easycomplete_source [s: tn_name ].complete_result
111111endfunction
112112
113113function ! easycomplete#sources#tn#SetGlobalSourceItems (items )
114- let g: easycomplete_source [s: name ].complete_result = a: items
114+ if ! has_key (g: easycomplete_source , s: tn_name )
115+ let g: easycomplete_source [s: tn_name ] = {
116+ \ " complete_result" : []
117+ \ }
118+ endif
119+ let g: easycomplete_source [s: tn_name ].complete_result = a: items
115120endfunction
116121
117122function ! easycomplete#sources#tn#completor (opt , ctx) abort
@@ -178,7 +183,7 @@ endfunction
178183
179184function ! easycomplete#sources#tn#GetTabNineVersion ()
180185 if empty (s: version )
181- let l: tabnine_cmd = easycomplete#installer#GetCommand (s: name )
186+ let l: tabnine_cmd = easycomplete#installer#GetCommand (s: tn_name )
182187 let l: tabnine_dir = fnameescape (fnamemodify (l: tabnine_cmd , ' :p:h' ))
183188 let l: version_file = l: tabnine_dir . ' /version'
184189
@@ -297,10 +302,10 @@ function! s:DD(dir) abort
297302endfunction
298303
299304function ! s: StartTabNine ()
300- if empty (s: name )
305+ if empty (s: tn_name )
301306 return
302307 endif
303- let name = s: name
308+ let name = s: tn_name
304309 let l: tabnine_path = easycomplete#installer#GetCommand (name)
305310 let l: tabnine_root_path = fnameescape (fnamemodify (l: tabnine_path , ' :p:h' ))
306311 call s: DeleteAllDirsExceptTow (l: tabnine_root_path . " /binaries" )
@@ -354,7 +359,7 @@ function! s:TabnineJobCallback(job_id, data, event)
354359 call easycomplete#tabnine#LoadingStop ()
355360 let l: ctx = easycomplete#context ()
356361 if a: event != ' stdout'
357- call easycomplete#complete (s: name , s: ctx , s: ctx [' startcol' ], [])
362+ call easycomplete#complete (s: tn_name , s: ctx , s: ctx [' startcol' ], [])
358363 return
359364 endif
360365 if ! exists (' b:module_building' ) | let b: module_building = v: false | endif
@@ -439,10 +444,10 @@ function! s:CompleteHandler(res)
439444 if len (easycomplete#GetStuntMenuItems ()) == 0 && g: easycomplete_first_complete_hit == 0
440445 " First Complete
441446 if s: tn_render_timer == 0
442- call easycomplete#complete (s: name , s: ctx , s: ctx [' startcol' ], [])
447+ call easycomplete#complete (s: tn_name , s: ctx , s: ctx [' startcol' ], [])
443448 " tn 的返回已经超时了,为了防止pum抖动,结果直接丢弃
444449 else
445- call easycomplete#complete (s: name , s: ctx , s: ctx [' startcol' ], result)
450+ call easycomplete#complete (s: tn_name , s: ctx , s: ctx [' startcol' ], result)
446451 let s: tn_render_timer = 0
447452 endif
448453 else
@@ -467,15 +472,15 @@ function! s:CompleteHandler(res)
467472 catch
468473 call s: log (" [TabNine Error]:" , " CompleteHandler" , v: exception )
469474 let l: ctx = easycomplete#context ()
470- call easycomplete#complete (s: name , l: ctx , l: ctx [' startcol' ], [])
475+ call easycomplete#complete (s: tn_name , l: ctx , l: ctx [' startcol' ], [])
471476 endtry
472477endfunction
473478
474479function ! s: UpdateRendering (result)
475480 if easycomplete#sources#directory#pum ()
476481 return
477482 endif
478- call easycomplete#StoreCompleteSourceItems (s: name , a: result )
483+ call easycomplete#StoreCompleteSourceItems (s: tn_name , a: result )
479484 call easycomplete#TabNineCompleteRendering ()
480485endfunction
481486
0 commit comments