ZIm/crates
Sarah Price 54df43e06f
Fix cursor movement in protected files on backspace/delete (#36753)
## Summary

Fixes cursor movement behavior in protected files (like Default
Settings) when pressing backspace or delete keys.

Previously, these keys would cause unwanted cursor movement instead of
being ignored as expected in read-only files.

## Changes

- Added read-only checks to `backspace()` and `delete()` methods in the
editor
- Consistent with existing pattern used by other editing methods
(`indent()`, `outdent()`, `undo()`, etc.)

## Test Plan

1. Open Default Settings in Zed
2. Place cursor at arbitrary position (not at start/end of file)  
3. Press backspace - cursor should remain in place (no movement)
4. Press delete - cursor should remain in place (no movement)

Fixes #36302

Release Notes:

- Fixed backspace and delete keys moving caret in protected files

Co-authored-by: Claude <noreply@anthropic.com>
2025-08-22 13:18:46 +00:00
..
acp_thread acp: Fix panic with edit file tool (#36732) 2025-08-22 03:48:47 -04:00
action_log Enforce style lints which do not have violations (#36580) 2025-08-20 14:07:37 +02:00
activity_indicator Enforce style lints which do not have violations (#36580) 2025-08-20 14:07:37 +02:00
agent ai: Auto select user model when there's no default (#36722) 2025-08-22 01:12:12 -04:00
agent2 acp: Support calling tools provided by MCP servers (#36752) 2025-08-22 13:16:42 +00:00
agent_servers thread view: Add more UI improvements (#36750) 2025-08-22 09:52:44 -03:00
agent_settings lints: A bunch of extra style lint fixes (#36568) 2025-08-20 12:05:58 +02:00
agent_ui thread view: Add more UI improvements (#36750) 2025-08-22 09:52:44 -03:00
ai_onboarding Fix clippy::len_zero lint style violations (#36589) 2025-08-20 14:35:59 +00:00
anthropic Add Claude Opus 4.1 (#35653) 2025-08-05 18:16:47 +00:00
askpass Fix a bunch of other low-hanging style lints (#36498) 2025-08-19 21:26:17 +02:00
assets Use IBM Plex Sans / Lilex (#36084) 2025-08-13 13:25:52 -06:00
assistant_context Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
assistant_slash_command lints: A bunch of extra style lint fixes (#36568) 2025-08-20 12:05:58 +02:00
assistant_slash_commands Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
assistant_tool Another batch of lint fixes (#36521) 2025-08-19 20:33:44 +00:00
assistant_tools Fix clippy::len_zero lint style violations (#36589) 2025-08-20 14:35:59 +00:00
audio Add Rodio audio pipeline as alternative to current LiveKit pipeline (#36607) 2025-08-21 15:56:16 +02:00
auto_update Fix unnecessary-mut-passed lint (#36490) 2025-08-19 14:20:01 +00:00
auto_update_helper lints: A bunch of extra style lint fixes (#36568) 2025-08-20 12:05:58 +02:00
auto_update_ui Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
aws_http_client bedrock: Fix remaining streaming delays (#33931) 2025-07-22 11:55:24 -04:00
bedrock Fix a bunch of other low-hanging style lints (#36498) 2025-08-19 21:26:17 +02:00
breadcrumbs Auto-fix clippy::collapsible_if violations (#36428) 2025-08-19 13:27:24 +00:00
buffer_diff acp: Fix panic with edit file tool (#36732) 2025-08-22 03:48:47 -04:00
call Fix a bunch of other low-hanging style lints (#36498) 2025-08-19 21:26:17 +02:00
channel Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
cli Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
client Add GPU info to Sentry crashes (#36624) 2025-08-21 19:59:42 -04:00
clock Add the ability to follow the agent as it makes edits (#29839) 2025-05-04 08:28:39 +00:00
cloud_api_client Use Tokio::spawn instead of getting an executor handle (#36701) 2025-08-21 17:19:57 +00:00
cloud_api_types Establish WebSocket connection to Cloud (#35734) 2025-08-07 01:28:41 +00:00
cloud_llm_client agent2: Add now, grep, and web search tools (#35974) 2025-08-11 15:34:34 +02:00
collab collab: Add Orb subscription status and period to billing_subscriptions table (#36682) 2025-08-21 13:59:18 +00:00
collab_ui collab_ui: Fix channel text bleeding through buttons on hover (#36710) 2025-08-21 18:50:06 +00:00
collections
command_palette Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
command_palette_hooks
component Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
context_server acp: Support calling tools provided by MCP servers (#36752) 2025-08-22 13:16:42 +00:00
copilot Enforce style lints which do not have violations (#36580) 2025-08-20 14:07:37 +02:00
crashes Add GPU info to Sentry crashes (#36624) 2025-08-21 19:59:42 -04:00
credentials_provider Fix a bunch of other low-hanging style lints (#36498) 2025-08-19 21:26:17 +02:00
dap lints: A bunch of extra style lint fixes (#36568) 2025-08-20 12:05:58 +02:00
dap_adapters Another batch of lint fixes (#36521) 2025-08-19 20:33:44 +00:00
db Silence a bucketload of logs (#36534) 2025-08-19 20:26:56 -06:00
debug_adapter_extension Allow remote loading for DAP-only extensions (#33981) 2025-07-06 14:52:16 +02:00
debugger_tools Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
debugger_ui remote: Fetch shell on ssh remote to use for preparing commands (#36690) 2025-08-21 19:08:26 +02:00
deepseek language_models: Emit UsageUpdate events for token usage in DeepSeek and OpenAI (#33242) 2025-06-25 09:42:30 +02:00
diagnostics Fix clippy::len_zero lint style violations (#36589) 2025-08-20 14:35:59 +00:00
docs_preprocessor docs: Add table of all actions (#36642) 2025-08-20 23:41:06 +00:00
edit_prediction Enforce style lints which do not have violations (#36580) 2025-08-20 14:07:37 +02:00
edit_prediction_button Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
editor Fix cursor movement in protected files on backspace/delete (#36753) 2025-08-22 13:18:46 +00:00
eval Fix clippy::println_empty_string, clippy::while_let_on_iterator, clippy::while_let_on_iterator lint style violations (#36613) 2025-08-20 20:14:30 +02:00
explorer_command_injector Just Zed instead of Zed Editor (#34146) 2025-07-10 21:08:43 +02:00
extension Another batch of lint fixes (#36521) 2025-08-19 20:33:44 +00:00
extension_api lints: A bunch of extra style lint fixes (#36568) 2025-08-20 12:05:58 +02:00
extension_cli Remove /docs slash command (#36325) 2025-08-16 19:00:31 +00:00
extension_host Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
extensions_ui Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
feature_flags Rename acp flag (#36541) 2025-08-20 02:11:17 +00:00
feedback Add GPU info to Sentry crashes (#36624) 2025-08-21 19:59:42 -04:00
file_finder Fix clippy::manual_map lint violations (#36584) 2025-08-20 15:17:28 +02:00
file_icons Fix a bunch of other low-hanging style lints (#36498) 2025-08-19 21:26:17 +02:00
fs Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
fsevent Auto-fix clippy::collapsible_if violations (#36428) 2025-08-19 13:27:24 +00:00
fuzzy Prevent out of bounds access in recursive_score_match (#35630) 2025-08-06 10:53:20 +02:00
git Fix clippy::println_empty_string, clippy::while_let_on_iterator, clippy::while_let_on_iterator lint style violations (#36613) 2025-08-20 20:14:30 +02:00
git_hosting_providers Auto-fix clippy::collapsible_if violations (#36428) 2025-08-19 13:27:24 +00:00
git_ui ai: Auto select user model when there's no default (#36722) 2025-08-22 01:12:12 -04:00
go_to_line Enforce style lints which do not have violations (#36580) 2025-08-20 14:07:37 +02:00
google_ai Fix a bunch of other low-hanging style lints (#36498) 2025-08-19 21:26:17 +02:00
gpui Add GPU info to Sentry crashes (#36624) 2025-08-21 19:59:42 -04:00
gpui_macros clippy: println_empty_string & non_minimal_cfg (#36614) 2025-08-20 18:45:40 +00:00
gpui_tokio Use Tokio::spawn instead of getting an executor handle (#36701) 2025-08-21 17:19:57 +00:00
html_to_markdown Auto-fix clippy::collapsible_if violations (#36428) 2025-08-19 13:27:24 +00:00
http_client Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
http_client_tls
icons thread view: Add more UI improvements (#36750) 2025-08-22 09:52:44 -03:00
image_viewer Option to auto-close deleted files with no unsaved edits (#31920) 2025-06-03 13:18:29 +02:00
inspector_ui Some clippy fixes (#36544) 2025-08-20 03:40:39 +00:00
install_cli Fix clippy::needless_borrow lint violations (#36444) 2025-08-18 21:54:35 +00:00
jj Another batch of lint fixes (#36521) 2025-08-19 20:33:44 +00:00
jj_ui editor: Improve code completion filtering to provide fewer and more accurate suggestions (#32928) 2025-06-18 16:01:28 +05:30
journal Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
language lsp: Add basic test for server tree toolchain use (#36692) 2025-08-21 17:52:17 +02:00
language_extension Fix clippy::needless_borrow lint violations (#36444) 2025-08-18 21:54:35 +00:00
language_model ai: Auto select user model when there's no default (#36722) 2025-08-22 01:12:12 -04:00
language_models ai: Auto select user model when there's no default (#36722) 2025-08-22 01:12:12 -04:00
language_selector Auto-fix clippy::collapsible_if violations (#36428) 2025-08-19 13:27:24 +00:00
language_tools Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
languages Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
livekit_api Use anyhow more idiomatically (#31052) 2025-05-20 23:06:07 +00:00
livekit_client Add Rodio audio pipeline as alternative to current LiveKit pipeline (#36607) 2025-08-21 15:56:16 +02:00
lmstudio lmstudio: Propagate actual error message from server (#34538) 2025-07-25 09:36:43 -04:00
lsp Stop waiting for part of LSP responses on remote Collab clients' part (#36557) 2025-08-21 09:24:34 +03:00
markdown thread view: Add small refinements to tool call UI (#36723) 2025-08-21 20:51:36 -03:00
markdown_preview Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
media Use anyhow more idiomatically (#31052) 2025-05-20 23:06:07 +00:00
menu gpui: Store action documentation (#33809) 2025-07-02 21:14:33 -04:00
migrator Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
mistral language_models: Add thinking to Mistral Provider (#32476) 2025-08-09 15:25:47 -04:00
multi_buffer Fix typo in Excerpt::contains (#36621) 2025-08-20 19:30:11 +00:00
nc Claude experiment (#34577) 2025-07-17 14:25:55 +00:00
net windows: Add support for SSH (#29145) 2025-07-08 14:34:57 +00:00
node_runtime Another batch of lint fixes (#36521) 2025-08-19 20:33:44 +00:00
notifications Auto-fix clippy::collapsible_if violations (#36428) 2025-08-19 13:27:24 +00:00
ollama ollama: Add support for gpt-oss (#35648) 2025-08-06 10:44:15 -04:00
onboarding Enforce style lints which do not have violations (#36580) 2025-08-20 14:07:37 +02:00
open_ai Fix a bunch of other low-hanging style lints (#36498) 2025-08-19 21:26:17 +02:00
open_router Fix a bunch of other low-hanging style lints (#36498) 2025-08-19 21:26:17 +02:00
outline Remove into SelectionEffects from .change_selections (#33554) 2025-06-27 14:31:31 -06:00
outline_panel Fix more improper uses of the buffer_id field of Anchor (#36636) 2025-08-21 09:24:34 -04:00
panel Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
paths lints: A bunch of extra style lint fixes (#36568) 2025-08-20 12:05:58 +02:00
picker Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
prettier Fix a bunch of other low-hanging style lints (#36498) 2025-08-19 21:26:17 +02:00
project remote: Fetch shell on ssh remote to use for preparing commands (#36690) 2025-08-21 19:08:26 +02:00
project_panel Fix clippy::manual_map lint violations (#36584) 2025-08-20 15:17:28 +02:00
project_symbols Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
prompt_store Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
proto Stop waiting for part of LSP responses on remote Collab clients' part (#36557) 2025-08-21 09:24:34 +03:00
recent_projects Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
refineable Auto-fix clippy::collapsible_if violations (#36428) 2025-08-19 13:27:24 +00:00
release_channel Use shortened SHA when displaying version to install (#31281) 2025-05-23 14:53:53 +00:00
remote remote: Fetch shell on ssh remote to use for preparing commands (#36690) 2025-08-21 19:08:26 +02:00
remote_server remote: Fix toolchain RPC messages not being handled because of the entity getting dropped (#36665) 2025-08-21 09:37:45 +00:00
repl Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
reqwest_client lints: A bunch of extra style lint fixes (#36568) 2025-08-20 12:05:58 +02:00
rich_text Auto-fix clippy::collapsible_if violations (#36428) 2025-08-19 13:27:24 +00:00
rope Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
rpc Fix overlooked Clippy lints (#36659) 2025-08-21 06:48:04 +00:00
rules_library Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
schema_generator
search Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
semantic_index Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
semantic_version Use anyhow more idiomatically (#31052) 2025-05-20 23:06:07 +00:00
session Auto-fix clippy::collapsible_if violations (#36428) 2025-08-19 13:27:24 +00:00
settings Add Rodio audio pipeline as alternative to current LiveKit pipeline (#36607) 2025-08-21 15:56:16 +02:00
settings_profile_selector Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
settings_ui keymap_ui: Improve conflict resolution for semantically equal contexts (#36204) 2025-08-22 00:18:25 +00:00
snippet Fix a bunch of other low-hanging style lints (#36498) 2025-08-19 21:26:17 +02:00
snippet_provider Fix a bunch of other low-hanging style lints (#36498) 2025-08-19 21:26:17 +02:00
snippets_ui Auto-fix clippy::collapsible_if violations (#36428) 2025-08-19 13:27:24 +00:00
sqlez Auto-fix clippy::collapsible_if violations (#36428) 2025-08-19 13:27:24 +00:00
sqlez_macros
story Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
storybook Another batch of lint fixes (#36521) 2025-08-19 20:33:44 +00:00
streaming_diff Fix clippy::needless_borrow lint violations (#36444) 2025-08-18 21:54:35 +00:00
sum_tree Fix a bunch of other low-hanging style lints (#36498) 2025-08-19 21:26:17 +02:00
supermaven Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
supermaven_api Fix a bunch of other low-hanging style lints (#36498) 2025-08-19 21:26:17 +02:00
svg_preview Another batch of lint fixes (#36521) 2025-08-19 20:33:44 +00:00
system_specs Add GPU info to Sentry crashes (#36624) 2025-08-21 19:59:42 -04:00
tab_switcher Make tab switcher show preview of selected tab (#36718) 2025-08-22 00:21:36 +02:00
task remote: Fetch shell on ssh remote to use for preparing commands (#36690) 2025-08-21 19:08:26 +02:00
tasks_ui Fix clippy::len_zero lint style violations (#36589) 2025-08-20 14:35:59 +00:00
telemetry Fix a bunch of other low-hanging style lints (#36498) 2025-08-19 21:26:17 +02:00
telemetry_events Remove old telemetry events and transformation layer (#36263) 2025-08-15 15:37:52 -04:00
terminal Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
terminal_view Move APCA contrast from terminal_view to ui utils (#36731) 2025-08-22 10:17:37 +05:30
text Fix a bunch of other low-hanging style lints (#36498) 2025-08-19 21:26:17 +02:00
theme Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
theme_extension
theme_importer Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
theme_selector Redesign and clean up all icons across Zed (#35856) 2025-08-08 15:34:36 -03:00
time_format agent: Add date separators to Thread History (#29961) 2025-05-06 10:18:48 +00:00
title_bar Enforce style lints which do not have violations (#36580) 2025-08-20 14:07:37 +02:00
toolchain_selector remote: Fix toolchain RPC messages not being handled because of the entity getting dropped (#36665) 2025-08-21 09:37:45 +00:00
ui Move APCA contrast from terminal_view to ui utils (#36731) 2025-08-22 10:17:37 +05:30
ui_input Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
ui_macros Update syn crate from 1.0.109 to 2.0.101 (#31301) 2025-05-23 19:31:25 +00:00
ui_prompt ui_prompt: Fix prompt dialog is hard to see on large screen (#35348) 2025-07-30 23:03:53 +05:30
util remote: Fetch shell on ssh remote to use for preparing commands (#36690) 2025-08-21 19:08:26 +02:00
util_macros Remove separator! macro and make path! handle relative paths (#32527) 2025-06-13 06:32:29 +00:00
vercel openai: Don't send prompt_cache_key for OpenAI-compatible models (#36231) 2025-08-15 13:54:24 +03:00
vim vim: Fix cursor jumping past empty lines with inlay hints in visual mode (#35757) 2025-08-21 21:20:22 -06:00
vim_mode_setting vim: Fix escape key switching back to default mode instead of normal mode (#31843) 2025-06-18 21:26:12 +00:00
watch Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
web_search Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
web_search_providers Another batch of lint fixes (#36521) 2025-08-19 20:33:44 +00:00
workspace telemetry: Add panel button clicked event (#36735) 2025-08-22 05:54:25 +00:00
worktree Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
x_ai lints: A bunch of extra style lint fixes (#36568) 2025-08-20 12:05:58 +02:00
zed Add GPU info to Sentry crashes (#36624) 2025-08-21 19:59:42 -04:00
zed_actions Allow editing Agent2 messages (#36155) 2025-08-14 13:39:33 +00:00
zeta Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
zeta_cli Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
zlog Fix clippy::redundant_clone lint violations (#36558) 2025-08-20 12:20:13 +02:00
zlog_settings VSCode Settings import (#29018) 2025-04-23 20:54:09 +00:00