# debugger: Fix correctly determine replace range for debug console completions \(\#33959\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/833bc6979aaecaf091dcd834874d9f329856ce5a)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: 833bc6979aaecaf091dcd834874d9f329856ce5a

Requested commit: 833bc6979aaecaf091dcd834874d9f329856ce5a

Commit: 833bc6979aaecaf091dcd834874d9f329856ce5a

Tree: d62411ef80ec030c070d075f6581bbad02a86b43

Author: Remco Smits

Committer: GitHub

## Message

```
debugger: Fix correctly determine replace range for debug console completions (#33959)

Follow-up #33868

This PR fixes a few issues with determining the completion range for
client‑ and variable‑list completions.

1. Non‑word completions
We previously supported only word characters and _, using their combined
length to compute the start offset. In PHP, however, an expression can
contain `$`, `-`, `>`, `[`, `]`, `(`, and `)`. Because these characters
weren’t treated as word characters, the start offset stopped at them,
even when the preceding character was part of a word.

2. Trailing characters inside the search text
When autocompletion occurred in the middle of the search text, we didn’t
account for trailing characters. As a result, the start offset was off
by the number of characters after the cursor. For example, replacing res
with result in print(res) produced `print(rresult)` because the trailing
`)` wasn’t subtracted from the start offset.

The following completions are correctly covered now:

- **Before** `$aut` -> `$aut$author` **After** `$aut` -> `$author`
- **Before** `$author->na` -> `$author->na$author->name` **After**
`$author->na` -> `$author->name`
- **Before** `$author->books[` -> `$author->books[$author->books[0]`
**After** `$author->books[` -> `$author->books[0]`
- **Before** `print(res)` -> `print(rresult)` **After** `print(res)` ->
`print(result)`

**Before**


https://github.com/user-attachments/assets/b530cf31-8d4d-45e6-9650-18574f14314c


https://github.com/user-attachments/assets/52475b7b-2bf2-4749-98ec-0dc933fcc364

**After**


https://github.com/user-attachments/assets/c065701b-31c9-4e0a-b584-d1daffe3a38c


https://github.com/user-attachments/assets/455ebb3e-632e-4a57-aea8-d214d2992c06

Release Notes:

- Debugger: Fixed autocompletion not always replacing the correct search
text
```

## Parents

- [a8cc92730363691c624f3a4671654c1e17f4f9ed](https://git.cafe/gitcafe/zed/commit/a8cc92730363691c624f3a4671654c1e17f4f9ed?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/833bc6979aaecaf091dcd834874d9f329856ce5a?format=markdown)
