@normalmode Instead of `TextChangedI`, I think `CompleteDone` would also work and would be the semantically more appropriate one.
I do this in an incomplete plugin of mine: https://github.com/AndrewRadev/strftime.vim/blob/443a8e4ad0a7d54575d63a2b7922cbc06e39595c/plugin/strftime.vim#L11-L21