# editor: Fix panic when showing pending input in a read-only buffer \(\#64730\) · gitcafe/zed

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

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

Visibility: public

Requested revision: 5becf8b5910fd538ccc5489e8edd3fde32917fad

Requested commit: 5becf8b5910fd538ccc5489e8edd3fde32917fad

Commit: 5becf8b5910fd538ccc5489e8edd3fde32917fad

Tree: 11f8429de8535cbea3ae1427382e976d3d18040d

Author: Agus Zubiaga

Committer: GitHub

## Message

```
editor: Fix panic when showing pending input in a read-only buffer (#64730)

# Objective

Fixes ZED-BTA, ZED-8MC, ZED-875 and ZED-80K. Fixes FR-489.

When you have a binding like `j k`, Zed shows the `j` underlined while
it waits for the next key. We figured out where that `j` went by
assuming it was always inserted. In a read-only buffer it isn't, so with
the cursor at the end of the file we ended up pointing one character
past the end and crashed.

## Solution

We now take anchors at each cursor before inserting and read the
positions back from them afterwards, so we only highlight text that
actually made it into the buffer. This also covers other cases where the
insert gets dropped, like a read-only file inside project search. Also
removed the editor's own read-only check there, since it's no longer
needed.

## Testing

- `test_jk_pending_input_at_end_of_read_only_buffer` covers this and
panics without the fix.
- To reproduce on `main`: bind `"j k": "editor::Cancel"` in the `Editor`
context, put the cursor at the end of a file, run *workspace: toggle
read only file*, and press `j`.

## Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Release Notes:

- Fixed a crash when typing the start of a multi-key binding at the end
of a read-only file.
```

## Parents

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

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