# language: Fix bracket \`not_in\` scopes being ignored at end of buffer \(\#64840\) · gitcafe/zed

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

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

Visibility: public

Requested revision: 8e7fbcc131ec0f41cc4e78fbc8c50ef41f47b382

Requested commit: 8e7fbcc131ec0f41cc4e78fbc8c50ef41f47b382

Commit: 8e7fbcc131ec0f41cc4e78fbc8c50ef41f47b382

Tree: 4d0ed1c14b9ab34248d2fa2b928f73c5f429a823

Author: rn23thakur

Committer: GitHub

## Message

```
language: Fix bracket `not_in` scopes being ignored at end of buffer (#64840)

## Summary

"Closes #64820"

Bracket `not_in` rules (like "don't auto-close `'` inside a comment")
were ignored when the cursor was at the very end of the file. For
example, in a C file containing only `// it ''`, typing `'` at EOF would
still auto-insert a closing `'`, even though C disables that pair inside
comments.

The cause was in `language_scope_at` in `buffer.rs`. It walks down the
syntax tree using `Range::contains`, which excludes the end of the
range. At EOF, the cursor offset equals the end of the root node, so
every layer got skipped. The function then fell back to a scope with no
`override_id`, and all `not_in` rules were lost.

The fix lets the tree walk accept the end of a node's range, but only
when the cursor is at the end of the buffer. Behavior everywhere else in
the file is unchanged. Huge thanks to @arixsnow who reported this in
#64820 with clear repro steps and tracked the root cause. This PR
implements the fix they pointed to.


https://github.com/user-attachments/assets/dc3680c0-46f1-4fc1-b80a-973f18398139


## Testing

Ran `cargo test -p language`, all passed. 
The issue #64820 includes directions to reproduce it clearly I used the
same to test the fix.

## Self-review

- [x] I've reviewed my diff for quality, security, reliability, and
performance.
- [x] UI changes follow the
[checklist](https://zed.dev/docs/development/ui-checklist).
- [x] Tests cover the new or changed behavior.

Release Notes:

- Fixed auto-closing brackets being inserted inside comments or strings
at the end of a file.

---------

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
```

## Parents

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

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