ZIm/crates
Galen Elias 1a4f9b2891
Fix minimum gutter line number spacing (#18021)
I was inspecting how Zed did the layout in the editor, specifically for
the gutter, and noticed that `em_width * X` is being used as the 'width
of X consecutive characters'. Howevever, that math didn't work for me,
because em_width doesn't account for the space between characters, so
you can't just multiply it by a character count.

One place this is actually noticeable is in the logic for
`min_width_for_number_on_gutter`, where we try to reserve 4 characters
of line number space. However, once you actually hit 4 characters, the
actual width is bigger, causing things to resize. This seems clearly
counter to the intent of the code.

It seems the more correct logic is to use `em_advance` which accounts
for the space between the characters. I am leaving the rest of the uses
of `em_width` for generic padding. It is also possible that
`column_pixels()` would be the more correct fix here, but it wasn't
straightforward to use that due to it residing EditorElement source
file.

On my MacBook this increases the width of the gutter by 6 pixels when
there are <999 lines in the file, otherwise it's identical.

It might be worth doing some more general audit of some of the other
uses of em_width as a concept. (e.g. `git_blame_entries_width`)


https://github.com/user-attachments/assets/f2a28cd5-9bb6-4109-bf41-1838e56a75f9

Release Notes:

- Fix a slight gutter flicker when going over 999 lines
2024-09-26 16:30:06 +03:00
..
activity_indicator lsp: Remove reinstall, update config (#18318) 2024-09-25 10:45:56 -07:00
anthropic Allow Anthropic custom models to override temperature (#18160) 2024-09-20 14:59:12 -06:00
assets add ui::Vector and separate images from icons (#17815) 2024-09-13 17:44:16 -04:00
assistant assistant: Enable assistant panel/inline assists in ssh remote projects (#18367) 2024-09-25 22:55:36 +02:00
assistant_slash_command Introduce a new /delta command (#17903) 2024-09-17 08:47:08 -06:00
assistant_tool assistant: Add basic tool invocation (#17368) 2024-09-04 14:32:20 -04:00
audio Update Rust crate rodio to 0.19.0 (#17389) 2024-09-16 21:55:32 -06:00
auto_update Bump release_notes to v2 endpoint (#18108) 2024-09-19 19:43:32 -04:00
breadcrumbs chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
call Fix renames over language server for SSH remoting (#17897) 2024-09-16 16:20:17 -06:00
channel Add the ability to propose changes to a set of buffers (#18170) 2024-09-20 18:28:50 -04:00
cli zed: Use CLI env for lang servers, tasks, terminal (#17075) 2024-08-29 18:09:06 +02:00
client client: Remove unused fs dependency (#18324) 2024-09-25 10:02:35 +02:00
clock Add the ability to propose changes to a set of buffers (#18170) 2024-09-20 18:28:50 -04:00
collab Expand git diffs when clicking the gutter strip, display their controls in a block above (#18313) 2024-09-25 12:50:38 -07:00
collab_ui Fix renames over language server for SSH remoting (#17897) 2024-09-16 16:20:17 -06:00
collections gpui: Add SVG rendering to img element and generic asset cache (#9931) 2024-03-29 17:09:49 -07:00
command_palette chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
command_palette_hooks chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
context_servers context_servers: Remove context_type from ResourceContent (#18097) 2024-09-19 15:51:48 -04:00
copilot Allow using system node (#18172) 2024-09-23 15:28:04 -06:00
db Add system_id (#18040) 2024-09-19 07:20:27 -04:00
dev_server_projects chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
diagnostics Remove replica_id from MultiBuffers (#18141) 2024-09-20 10:48:27 -04:00
docs_preprocessor Don't rely on relative path for docs preprocessor (#16883) 2024-08-26 11:43:13 -04:00
editor Fix minimum gutter line number spacing (#18021) 2024-09-26 16:30:06 +03:00
evals Allow using system node (#18172) 2024-09-23 15:28:04 -06:00
extension lsp: Remove reinstall, update config (#18318) 2024-09-25 10:45:56 -07:00
extension_api zed_extension_api: Use v0.2.0 WIT types (#17802) 2024-09-13 14:49:50 -04:00
extension_cli remote_server: Remove dependency on libssl and libcrypto (#15446) 2024-09-18 23:29:34 +02:00
extensions_ui Revert "settings: Remove auxiliary Content types where possible (#16744)" (#17768) 2024-09-12 14:46:08 -04:00
feature_flags /auto (#16696) 2024-09-13 13:17:49 -04:00
feedback ssh remoting: Fix cmd-o (#18308) 2024-09-24 16:23:08 -06:00
file_finder Avoid unwrap in file finder (#18374) 2024-09-26 10:31:17 +03:00
file_icons chore: Clean up allocs around project panel (#15422) 2024-07-29 14:21:41 +02:00
fs /auto (#16696) 2024-09-13 13:17:49 -04:00
fsevent Retain run loop (#11241) 2024-04-30 23:31:59 -06:00
fuzzy Improve slash commands (#16195) 2024-08-13 23:06:07 -07:00
git git: Do not rescan .git on fsmonitor events (#18326) 2024-09-25 11:34:27 +02:00
git_hosting_providers Add '?plain=1' to Permalinks on GitLab/GitHub for md files (#18241) 2024-09-23 15:45:00 -04:00
go_to_line Revert "settings: Remove auxiliary Content types where possible (#16744)" (#17768) 2024-09-12 14:46:08 -04:00
google_ai assistant: Add display_name for OpenAI and Gemini (#17508) 2024-09-10 13:41:06 -04:00
gpui Fix file descriptors leak in evals (#18351) 2024-09-25 15:21:00 -04:00
gpui_macros add ui::Vector and separate images from icons (#17815) 2024-09-13 17:44:16 -04:00
headless Allow using system node (#18172) 2024-09-23 15:28:04 -06:00
html_to_markdown chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
http_client Allow using system node (#18172) 2024-09-23 15:28:04 -06:00
image_viewer chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
indexed_docs chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
inline_completion_button chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
install_cli Fix flickering (#9012) 2024-03-11 10:45:57 +01:00
isahc_http_client Clean up after isahc_http_client introduction (#18045) 2024-09-18 19:39:15 -04:00
journal chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
language Fix use_on_type_format setting being unused per language (#18387) 2024-09-26 12:27:08 +02:00
language_model Allow Anthropic custom models to override temperature (#18160) 2024-09-20 14:59:12 -06:00
language_selector use ssh lsp store (#17655) 2024-09-10 15:51:01 -04:00
language_tools ssh remoting: Fix cmd-o (#18308) 2024-09-24 16:23:08 -06:00
languages Move adapters to remote (#18359) 2024-09-25 15:29:04 -07:00
live_kit_client chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
live_kit_server live_kit_server: Re-remove protocol submodule (#15317) 2024-07-26 21:10:56 -04:00
lsp lsp: Remove reinstall, update config (#18318) 2024-09-25 10:45:56 -07:00
markdown Allow using system node (#18172) 2024-09-23 15:28:04 -06:00
markdown_preview Upgrade tree sitter and all grammars (#17734) 2024-09-16 17:10:57 -07:00
media Update Rust crate bindgen to 0.70.0 (#17024) 2024-08-28 22:12:49 -07:00
menu open picker (#14524) 2024-07-15 17:04:15 -06:00
multi_buffer project search: Fix search results not being highlighted (#18273) 2024-09-24 15:03:22 +02:00
node_runtime Make python run local worktree LSPs (#18353) 2024-09-25 12:45:41 -07:00
notifications Replace Default trait bound with a zero function on Summary/Dimension (#17975) 2024-09-17 19:43:59 -06:00
ollama Ollama llama3.2 default context size (#18366) 2024-09-25 18:01:12 -04:00
open_ai OpenAI o1-preview and o1-mini support (#17796) 2024-09-13 16:23:55 -04:00
outline Upgrade tree sitter and all grammars (#17734) 2024-09-16 17:10:57 -07:00
outline_panel ssh remoting: Fix cmd-o (#18308) 2024-09-24 16:23:08 -06:00
paths macos: Use ~/Library/Caches/Zed instead of ~/.cache/zed (#17949) 2024-09-17 13:51:11 -04:00
picker Update typos-cli to v1.24.6. Add scripts/check-spelling. Fix typos (#17961) 2024-09-17 15:08:14 -04:00
prettier Allow using system node (#18172) 2024-09-23 15:28:04 -06:00
project lsp: Do not notify all language servers on file save (#17756) 2024-09-26 13:18:50 +02:00
project_panel ssh remoting: Fix cmd-o (#18308) 2024-09-24 16:23:08 -06:00
project_symbols Fix renames over language server for SSH remoting (#17897) 2024-09-16 16:20:17 -06:00
proto Move adapters to remote (#18359) 2024-09-25 15:29:04 -07:00
quick_action_bar Derive icon paths (#17816) 2024-09-13 21:12:29 -04:00
recent_projects ssh remoting: Expand tilde on host side (#18333) 2024-09-25 13:41:18 +02:00
refineable Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
release_channel chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
remote ssh remoting: Kill SSH master process when dropping client (#18331) 2024-09-25 12:45:53 +02:00
remote_server Move adapters to remote (#18359) 2024-09-25 15:29:04 -07:00
repl Styling option for separating terminal view background from background color (#17611) 2024-09-17 12:51:31 -04:00
rich_text Disable definition lists in Markdown (#17648) 2024-09-10 11:16:27 -04:00
rope Replace Default trait bound with a zero function on Summary/Dimension (#17975) 2024-09-17 19:43:59 -06:00
rpc ssh remoting: Fix SSH connection not being closed (#18329) 2024-09-25 12:03:24 +02:00
search Reuse buffer search queries on tab switch (#18281) 2024-09-24 18:21:26 +03:00
semantic_index Add a slash command for automatically retrieving relevant context (#17972) 2024-09-20 18:09:18 -04:00
semantic_version Extract SemanticVersion into its own crate (#9956) 2024-03-29 12:11:57 -04:00
session chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
settings settings: Show notification when user/project settings fail to parse (#18122) 2024-09-20 10:53:06 +02:00
settings_ui chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
snippet Correct escaping in snippets (#14912) 2024-07-22 00:57:34 +02:00
snippet_provider Fix file descriptors leak in evals (#18351) 2024-09-25 15:21:00 -04:00
sqlez Workspace persistence for SSH projects (#17996) 2024-09-19 17:51:28 +02:00
sqlez_macros Replace lazy_static with std::sync::LazyLock (#16066) 2024-08-20 14:27:33 -04:00
story chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
storybook add ui::Vector and separate images from icons (#17815) 2024-09-13 17:44:16 -04:00
sum_tree chore: Fix violations of elided_named_lifetimes (#18330) 2024-09-25 12:27:57 +02:00
supermaven Implement grapheme support for supermaven completions (#18279) 2024-09-24 08:49:07 -06:00
supermaven_api chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
tab_switcher tab_switcher: Add file and project search icons (#17115) 2024-09-17 14:48:05 +02:00
task chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
tasks_ui ssh remoting: Fix cmd-o (#18308) 2024-09-24 16:23:08 -06:00
telemetry_events Add system_id (#18040) 2024-09-19 07:20:27 -04:00
terminal Fix sending alt-enter in terminal (#18363) 2024-09-25 18:01:33 -04:00
terminal_view ssh remoting: Fix cmd-o (#18308) 2024-09-24 16:23:08 -06:00
text Add the ability to propose changes to a set of buffers (#18170) 2024-09-20 18:28:50 -04:00
theme theme: Fix casing of "ANSI" in doc comments (#17952) 2024-09-17 13:26:34 -04:00
theme_importer chore: Another round of style lints fixes (#17519) 2024-09-07 02:36:55 +02:00
theme_selector settings_ui: Add theme settings controls (#15115) 2024-07-24 16:25:52 -04:00
time_format chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
title_bar Fix broken collaboration UI from #18308 (#18372) 2024-09-25 16:03:08 -07:00
ui Update List to support UI Density (#18079) 2024-09-19 12:31:40 -04:00
ui_input Rename ui_text_field crate to ui_input (#13949) 2024-07-08 17:05:30 -04:00
ui_macros Add ui_macros crate & DerivePathStr derive macro (#17811) 2024-09-13 16:45:16 -04:00
util Fix opening file with colon (#17281) 2024-09-17 11:19:07 -04:00
vcs_menu chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
vim Remove leftover println statements (#18389) 2024-09-26 12:52:56 +02:00
welcome Welcome tweaks (#17874) 2024-09-16 08:29:46 -04:00
workspace ssh remoting: Show error message if project path does not exist (#18343) 2024-09-25 18:08:34 +02:00
worktree ssh remoting: Fix SSH connection not being closed (#18329) 2024-09-25 12:03:24 +02:00
zed Avoid panic by only restoring workspace if UI has launched (#18386) 2024-09-26 12:26:58 +02:00
zed_actions Improve Linux terminal keymap and context menu (#16845) 2024-08-26 01:01:46 +03:00