When completing custom functions or bind variables, the completion engine only replaces the text before the cursor, leaving the text after the cursor intact.
Example: hell() → hello()() (extra ())
Update the completion logic so that it replaces both the text in front of and behind the cursor, ensuring the entire target string is correctly replaced by the selected completion.