I found some edge cases with my previous PR that are fixed with this one:
Codeium does not return a row number for the first row, so we default the row to 0
The row end col always means the end of the line, but not all completions should replace the whole line, the maximum offset from the completion parts tells us where we should actually stop, so we compare that with the offset of the end and get the right end col.
I also added some comments to make clearer what achieves what
I found some edge cases with my previous PR that are fixed with this one:
I also added some comments to make clearer what achieves what