diff --git a/script/core/completion.lua b/script/core/completion.lua
index 843a83172b74eff95836ba0c80e037658a553e32..a2eaca4eaab9e96a654e5afedd10e37e04d5c1be 100644
--- a/script/core/completion.lua
+++ b/script/core/completion.lua
@@ -1956,7 +1956,8 @@ local function getCache(uri, offset)
         if results.enableCommon and result.kind == define.CompletionItemKind.Text then
             results[i] = results[#results]
             results[#results] = nil
-        elseif matchKey(word, match) then
+        elseif matchKey(word, match)
+        or     (result.textEdit and matchKey(word, result.textEdit.newText:match '[%w_]*')) then
             if result.textEdit then
                 result.textEdit.finish = result.textEdit.finish + ext
             end
diff --git a/test/completion/continue.lua b/test/completion/continue.lua
index 96ec4964e27925015d7948235954d319106a7643..a548859a77587a6beea35b6a01328884151bb153 100644
--- a/test/completion/continue.lua
+++ b/test/completion/continue.lua
@@ -41,4 +41,18 @@ pro$
     }
 }
 
+TEST [[
+---@param n '"abcdefg"'
+local function f(n) end
+
+f 'abc$'
+]]
+{
+    {
+        label    = "'abcdefg'",
+        kind     = define.CompletionItemKind.EnumMember,
+        textEdit = EXISTS,
+    }
+}
+
 ContinueTyping = false