File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -372,7 +372,22 @@ local on_text_changed = function()
372372 cmp .core :on_change (' TextChanged' )
373373 end
374374end
375- autocmd .subscribe ({ ' TextChangedI' , ' TextChangedP' }, on_text_changed )
375+ local lp = { 0 , 0 , buf = 0 }
376+ autocmd .subscribe ({ ' TextChangedI' , ' TextChangedP' }, function (s )
377+ local pos = vim .api .nvim_win_get_cursor (0 )
378+ pos .buf = s .buf
379+ if
380+ s .buf ~= lp .buf -- same buf
381+ or not (lp [1 ] == pos [1 ] and lp [2 ] + 1 == pos [2 ]) -- same line
382+ or not (lp [1 ] + 1 == pos [1 ] and lp [2 ] == 0 ) -- beginning of next line
383+ then
384+ lp = pos
385+ return
386+ else
387+ lp = pos
388+ on_text_changed ()
389+ end
390+ end )
376391autocmd .subscribe (' CmdlineChanged' , async .debounce_next_tick (on_text_changed ))
377392
378393autocmd .subscribe (' CursorMovedI' , function ()
Original file line number Diff line number Diff line change @@ -10,15 +10,15 @@ local function create_autocmd(event)
1010 vim .api .nvim_create_autocmd (event , {
1111 desc = (' nvim-cmp: autocmd: %s' ):format (event ),
1212 group = autocmd .group ,
13- callback = function ()
14- autocmd .emit (event )
13+ callback = function (state )
14+ autocmd .emit (event , state )
1515 end ,
1616 })
1717end
1818
1919--- Subscribe autocmd
2020--- @param events string | string[]
21- --- @param callback function
21+ --- @param callback fun ( state : vim.api.keyset.create_autocmd.callback_args )
2222--- @return function
2323autocmd .subscribe = function (events , callback )
2424 events = type (events ) == ' string' and { events } or events
4545
4646--- Emit autocmd
4747--- @param event string
48- autocmd .emit = function (event )
48+ --- @param state vim.api.keyset.create_autocmd.callback_args
49+ autocmd .emit = function (event , state )
4950 debug .log (' ' )
5051 debug .log (string.format (' >>> %s' , event ))
5152 autocmd .events [event ] = autocmd .events [event ] or {}
5253 for _ , callback in ipairs (autocmd .events [event ]) do
53- callback ()
54+ callback (state )
5455 end
5556end
5657
You can’t perform that action at this time.
0 commit comments