5151local function get_ctx (bufnr )
5252 bufnr = bufnr or vim .api .nvim_get_current_buf ()
5353 local ctx = copilot .context [bufnr ]
54+ logger .trace (" suggestion context" , ctx )
5455 if not ctx then
5556 ctx = {}
5657 copilot .context [bufnr ] = ctx
58+ logger .trace (" suggestion new context" , ctx )
5759 end
5860 return ctx
5961end
6062
6163--- @param ctx copilot_suggestion_context
6264local function reset_ctx (ctx )
65+ logger .trace (" suggestion reset context" , ctx )
6366 ctx .first = nil
6467 ctx .cycling = nil
6568 ctx .cycling_callbacks = nil
149152
150153local function stop_timer ()
151154 if copilot ._copilot_timer then
155+ logger .trace (" suggestion stop timer" )
152156 vim .fn .timer_stop (copilot ._copilot_timer )
153157 copilot ._copilot_timer = nil
154158 end
@@ -172,28 +176,34 @@ end
172176
173177--- @param ctx ? copilot_suggestion_context
174178local function cancel_inflight_requests (ctx )
179+ logger .trace (" suggestion cancel inflight requests" , ctx )
175180 ctx = ctx or get_ctx ()
176181
177182 with_client (function (client )
178183 if ctx .first then
179184 client .cancel_request (ctx .first )
180185 ctx .first = nil
186+ logger .trace (" suggestion cancel first request" )
181187 end
182188 if ctx .cycling then
183189 client .cancel_request (ctx .cycling )
184190 ctx .cycling = nil
191+ logger .trace (" suggestion cancel cycling request" )
185192 end
186193 end )
187194end
188195
189196local function clear_preview ()
197+ logger .trace (" suggestion clear preview" )
190198 vim .api .nvim_buf_del_extmark (0 , copilot .ns_id , copilot .extmark_id )
191199end
192200
193201--- @param ctx ? copilot_suggestion_context
194202--- @return copilot_get_completions_data_completion | nil
195203local function get_current_suggestion (ctx )
204+ logger .trace (" suggestion get current suggestion" , ctx )
196205 ctx = ctx or get_ctx ()
206+ logger .trace (" suggestion current suggestion" , ctx )
197207
198208 local ok , choice = pcall (function ()
199209 if
229239--- @param ctx ? copilot_suggestion_context
230240local function update_preview (ctx )
231241 ctx = ctx or get_ctx ()
242+ logger .trace (" suggestion update preview" , ctx )
232243
233244 local suggestion = get_current_suggestion (ctx )
234245 local displayLines = suggestion and vim .split (suggestion .displayText , " \n " , { plain = true }) or {}
286297
287298--- @param ctx ? copilot_suggestion_context
288299local function clear (ctx )
300+ logger .trace (" suggestion clear" , ctx )
289301 ctx = ctx or get_ctx ()
290302 stop_timer ()
291303 cancel_inflight_requests (ctx )
295307
296308--- @param callback fun ( err : any | nil , data : copilot_get_completions_data ): nil
297309local function complete (callback )
310+ logger .trace (" suggestion complete" )
298311 stop_timer ()
299312
300313 local ctx = get_ctx ()
@@ -314,6 +327,7 @@ local function handle_trigger_request(err, data)
314327 if err then
315328 logger .error (err )
316329 end
330+ logger .trace (" suggestion handle trigger request" , data )
317331 local ctx = get_ctx ()
318332 ctx .suggestions = data and data .completions or {}
319333 ctx .choice = 1
@@ -322,10 +336,12 @@ local function handle_trigger_request(err, data)
322336end
323337
324338local function trigger (bufnr , timer )
339+ logger .trace (" suggestion trigger" , bufnr )
325340 local _timer = copilot ._copilot_timer
326341 copilot ._copilot_timer = nil
327342
328343 if bufnr ~= vim .api .nvim_get_current_buf () or (_timer ~= nil and timer ~= _timer ) or vim .fn .mode () ~= " i" then
344+ logger .trace (" suggestion trigger, not in insert mode" )
329345 return
330346 end
331347
334350
335351--- @param ctx copilot_suggestion_context
336352local function get_suggestions_cycling_callback (ctx , err , data )
353+ logger .trace (" suggestion get suggestions cycling callback" , data )
337354 local callbacks = ctx .cycling_callbacks or {}
338355 ctx .cycling_callbacks = nil
339356
367384--- @param callback fun ( ctx : copilot_suggestion_context ): nil
368385--- @param ctx copilot_suggestion_context
369386local function get_suggestions_cycling (callback , ctx )
387+ logger .trace (" suggestion get suggestions cycling" , ctx )
388+
370389 if ctx .cycling_callbacks then
371390 table.insert (ctx .cycling_callbacks , callback )
372391 return
@@ -407,19 +426,23 @@ local function schedule(ctx)
407426 clear ()
408427 return
409428 end
429+ logger .trace (" suggestion schedule" , ctx )
410430
411431 update_preview (ctx )
412432 local bufnr = vim .api .nvim_get_current_buf ()
413433 copilot ._copilot_timer = vim .fn .timer_start (copilot .debounce , function (timer )
434+ logger .trace (" suggestion schedule timer" , bufnr )
414435 trigger (bufnr , timer )
415436 end )
416437end
417438
418439function mod .next ()
419440 local ctx = get_ctx ()
441+ logger .trace (" suggestion next" , ctx )
420442
421443 -- no suggestion request yet
422444 if not ctx .first then
445+ logger .trace (" suggestion next, no first request" )
423446 schedule (ctx )
424447 return
425448 end
431454
432455function mod .prev ()
433456 local ctx = get_ctx ()
457+ logger .trace (" suggestion prev" , ctx )
434458
435459 -- no suggestion request yet
436460 if not ctx .first then
461+ logger .trace (" suggestion prev, no first request" , ctx )
437462 schedule (ctx )
438463 return
439464 end
446471--- @param modifier ? (fun ( suggestion : copilot_get_completions_data_completion ): copilot_get_completions_data_completion )
447472function mod .accept (modifier )
448473 local ctx = get_ctx ()
474+ logger .trace (" suggestion accept" , ctx )
449475
450476 -- no suggestion request yet
451477 if not ctx .first then
478+ logger .trace (" suggestion accept, not first request" , ctx )
452479 schedule (ctx )
453480 return
454481 end
@@ -466,7 +493,7 @@ function mod.accept(modifier)
466493 end
467494
468495 with_client (function (client )
469- local ok , err = pcall (function ()
496+ local ok , _ = pcall (function ()
470497 api .notify_accepted (
471498 client ,
472499 { uuid = suggestion .uuid , acceptedLength = util .strutf16len (suggestion .text ) },
568595
569596local function on_insert_enter ()
570597 if should_auto_trigger () then
598+ logger .trace (" suggestion on insert enter" )
571599 schedule ()
572600 end
573601end
@@ -581,13 +609,15 @@ end
581609local function on_cursor_moved_i ()
582610 local ctx = get_ctx ()
583611 if copilot ._copilot_timer or ctx .params or should_auto_trigger () then
612+ logger .trace (" suggestion on cursor moved insert" )
584613 schedule (ctx )
585614 end
586615end
587616
588617local function on_text_changed_p ()
589618 local ctx = get_ctx ()
590619 if not copilot .hide_during_completion and (copilot ._copilot_timer or ctx .params or should_auto_trigger ()) then
620+ logger .trace (" suggestion on text changed pum" )
591621 schedule (ctx )
592622 end
593623end
0 commit comments