diff --git a/script/provider/provider.lua b/script/provider/provider.lua
index b238a9b77c5021dd5896a99b1a7b673992513c40..fdcaebb2b4a13877e172094c133f9aa44b4d466b 100644
--- a/script/provider/provider.lua
+++ b/script/provider/provider.lua
@@ -840,10 +840,9 @@ do
             local piece = hint(uri, visible.start, visible.finish)
             if piece then
                 for _, edit in ipairs(piece) do
-                    local offset = edit.where == 'left' and edit.offset - 1 or edit.offset
                     edits[#edits+1] = {
-                        newText = edit.text,
-                        range   = files.range(uri, offset, offset)
+                        text = edit.text,
+                        pos  = files.position(uri, edit.offset, edit.where),
                     }
                 end
             end