ZIm/crates
Nate Butler 94d8ead270
Refactor Spacing into DynamicSpacing using proc macro (#20504)
Density tracking issue: #18078 

This PR refactors our spacing system to use a more flexible and
maintainable approach. We've replaced the static `Spacing` enum with a
dynamically generated `DynamicSpacing` enum using a proc macro.

Enum variants now use a `BaseXX` format, where XX = the pixel value @
default rem size and the default UI density.

For example:

`CustomSpacing::Base16` would return 16px at the default UI scale &
density.

I'd love to find another name other than `Base` that is clear (to avoid
base_10, etc confusion), let me know if you have any ideas!

Changes:

- Introduced a new `derive_dynamic_spacing` proc macro to generate the
`DynamicSpacing` enum
- Updated all usages of `Spacing` to use the new `DynamicSpacing`
- Removed the `custom_spacing` function, mapping previous usages to
appropriate `DynamicSpacing` variants
- Improved documentation and type safety for spacing values

New usage example:

```rust
.child(
    div()
        .flex()
        .flex_none()
        .m(DynamicSpacing::Base04.px(cx))
        .size(DynamicSpacing::Base16.rems(cx))
        .children(icon),
)
```

vs old usage example:

```
.child(
    div()
        .flex()
        .flex_none()
        .m(Spacing::Small.px(cx))
        .size(custom_spacing(px(16.)))
        .children(icon),
)
```

Release Notes:

- N/A
2024-11-11 11:08:55 -05:00
..
activity_indicator language servers: Fix wrong language server name (#20428) 2024-11-11 10:18:38 +01:00
anthropic Switch to Anthropic -latest tags (#19615) 2024-10-23 15:13:52 -04:00
assets add ui::Vector and separate images from icons (#17815) 2024-09-13 17:44:16 -04:00
assistant Refactor Spacing into DynamicSpacing using proc macro (#20504) 2024-11-11 11:08:55 -05:00
assistant_slash_command Fix regression in producing sections when converting SlashCommandOutput to event stream (#20404) 2024-11-08 09:29:14 +01: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 Rebuild SSH installation (#20220) 2024-11-05 13:37:54 -07:00
breadcrumbs Add missing shortcuts in tooltips (#18282) 2024-09-27 11:06:48 +02:00
call Add new extension crate (#20089) 2024-11-01 13:20:30 -04:00
channel Remove hosted projects (#19754) 2024-10-27 19:44:21 -07:00
cli Remove dev servers (#19638) 2024-10-24 12:14:03 -06:00
client logs: Reduce log noise by using more debug logs (#20498) 2024-11-11 15:11:20 +01:00
clock Fix bugs with applying hunks from branch buffers (#18721) 2024-10-07 16:28:33 -07:00
collab language servers: Fix wrong language server name (#20428) 2024-11-11 10:18:38 +01:00
collab_ui Fix mouse clicks on remote-open-folder UI (#19851) 2024-10-28 12:55:55 -07: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 Add support for context server extensions (#20250) 2024-11-08 16:39:21 -05:00
copilot language servers: Fix wrong language server name (#20428) 2024-11-11 10:18:38 +01:00
db chore: Fix some violations of 'needless_pass_by_ref_mut' lint (#18795) 2024-10-07 01:29:58 +02:00
dev_server_projects/src Remove dev servers (#19638) 2024-10-24 12:14:03 -06:00
diagnostics diagnostics: Improve performance with large # of diagnostics (#20189) 2024-11-04 12:16:02 -07:00
docs_preprocessor Don't rely on relative path for docs preprocessor (#16883) 2024-08-26 11:43:13 -04:00
editor language servers: Fix wrong language server name (#20428) 2024-11-11 10:18:38 +01:00
evals Restore HTTP client transition, but use reqwest everywhere (#19055) 2024-10-11 14:58:58 -07:00
extension language servers: Fix wrong language server name (#20428) 2024-11-11 10:18:38 +01:00
extension_api Add support for context server extensions (#20250) 2024-11-08 16:39:21 -05:00
extension_cli Add new extension crate (#20089) 2024-11-01 13:20:30 -04:00
extension_host language servers: Fix wrong language server name (#20428) 2024-11-11 10:18:38 +01:00
extensions_ui language servers: Fix wrong language server name (#20428) 2024-11-11 10:18:38 +01:00
feature_flags Initial Notebook UI structure (#19756) 2024-10-29 11:30:07 -07:00
feedback ci: Update issue templates. Rename defect to bug and improve log formatting (#20246) 2024-11-05 12:07:17 -05:00
file_finder Add more context to the save new file path picker (#19863) 2024-10-28 17:21:41 -07:00
file_icons chore: Clean up allocs around project panel (#15422) 2024-07-29 14:21:41 +02:00
fs Root rename detection (#20313) 2024-11-06 20:36:59 -07: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: Add support for opening git worktrees (#20164) 2024-11-06 09:43:39 +01:00
git_hosting_providers git_hosting_providers: Fix support for GitLab remotes containing subgroups (#19962) 2024-10-30 11:16:44 -04:00
go_to_line Improve project search performance (#20211) 2024-11-05 03:49:37 +02:00
google_ai assistant: Fix Gemini 1.5 Pro throwing "missing field 'index' at line N column M" (#20200) 2024-11-04 17:01:08 -05:00
gpui Enable reload of images in image viewer (#20374) 2024-11-10 11:37:02 +01:00
gpui_macros add ui::Vector and separate images from icons (#17815) 2024-09-13 17:44:16 -04:00
html_to_markdown chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
http_client Add settings to remote servers, use XDG paths on remote, and enable node LSPs (#19176) 2024-10-15 23:32:44 -07:00
image_viewer Enable reload of images in image viewer (#20374) 2024-11-10 11:37:02 +01:00
indexed_docs Extension refactor (#20305) 2024-11-06 10:06:25 -07:00
inline_completion_button Support .editorconfig (#19455) 2024-10-21 13:05:30 +03:00
install_cli Fix flickering (#9012) 2024-03-11 10:45:57 +01:00
journal chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
language language servers: Fix wrong language server name (#20428) 2024-11-11 10:18:38 +01:00
language_model assistant: Show only configured models in the model picker (#20392) 2024-11-08 10:08:59 -03:00
language_selector python: Fix toolchains not getting picked up after workspace deserialization (#20488) 2024-11-11 14:35:01 +01:00
language_tools language server logs: Fix missing menu entries when using remoting (#20495) 2024-11-11 11:26:00 +01:00
languages language servers: Fix wrong language server name (#20428) 2024-11-11 10:18:38 +01:00
live_kit_client chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
live_kit_server Restore HTTP client transition, but use reqwest everywhere (#19055) 2024-10-11 14:58:58 -07:00
lsp language servers: Fix wrong language server name (#20428) 2024-11-11 10:18:38 +01:00
markdown Fix clang popovers (#20090) 2024-11-01 13:28:34 -06:00
markdown_preview markdown preview: Refresh preview when file is changed outside of the editor (#20175) 2024-11-04 17:23:32 +01: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 Fix a test flake involving zeroed out group_intervals (#20328) 2024-11-07 09:17:43 -07:00
node_runtime typescript: Improve installation checks for vtsls (#20197) 2024-11-04 16:00:51 -05:00
notifications Pass Summary::Context to Item::summarize (#18510) 2024-09-29 10:30:48 -06:00
ollama Fix read timeout for ollama (#18417) 2024-09-27 00:36:17 -06:00
open_ai Stop leaking isahc assumption (#18408) 2024-09-26 14:01:05 -06:00
outline Extract outline rendering to outline crate (#20179) 2024-11-04 11:54:37 -05:00
outline_panel Refactor Spacing into DynamicSpacing using proc macro (#20504) 2024-11-11 11:08:55 -05:00
paths Extension refactor (#20305) 2024-11-06 10:06:25 -07:00
picker Prefer revealing items in the middle of the list for outline and project panels (#20349) 2024-11-07 14:36:29 +02:00
prettier language servers: Fix wrong language server name (#20428) 2024-11-11 10:18:38 +01:00
project language servers: Fix wrong language server name (#20428) 2024-11-11 10:18:38 +01:00
project_panel project panel: Stop flickering border when preview tabs disabled (#20417) 2024-11-08 16:53:39 +01:00
project_symbols Fix renames over language server for SSH remoting (#17897) 2024-09-16 16:20:17 -06:00
proto lsp: Track completion triggers for each language separately (#20471) 2024-11-10 10:29:10 +01:00
quick_action_bar Refactor Spacing into DynamicSpacing using proc macro (#20504) 2024-11-11 11:08:55 -05:00
recent_projects Refactor Spacing into DynamicSpacing using proc macro (#20504) 2024-11-11 11:08:55 -05: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 Extension refactor (#20305) 2024-11-06 10:06:25 -07:00
remote_server language servers: Fix wrong language server name (#20428) 2024-11-11 10:18:38 +01:00
repl Refactor Spacing into DynamicSpacing using proc macro (#20504) 2024-11-11 11:08:55 -05:00
reqwest_client logs: Reduce log noise by using more debug logs (#20498) 2024-11-11 15:11:20 +01:00
rich_text Disable definition lists in Markdown (#17648) 2024-09-10 11:16:27 -04:00
rope rope: Index tab locations for each chunk (#20289) 2024-11-06 13:18:30 +01:00
rpc Add support for git branches on remote projects (#19755) 2024-10-27 15:50:54 -07:00
search Ensure project search actions are always aligned (#20353) 2024-11-07 10:56:10 -03:00
semantic_index semantic_index: Disable embeddings index for non-staff (#19618) 2024-10-23 12:34:51 -04:00
semantic_version Extract SemanticVersion into its own crate (#9956) 2024-03-29 12:11:57 -04:00
session chore: Fix some violations of 'needless_pass_by_ref_mut' lint (#18795) 2024-10-07 01:29:58 +02:00
settings macOS: Add key equivalents for non-Latin layouts (#20401) 2024-11-08 13:05:10 -07:00
settings_ui Revert "theme: Turn ThemeRegistry into a trait (#20076)" (#20094) 2024-11-01 15:34:20 -04:00
snippet Correct escaping in snippets (#14912) 2024-07-22 00:57:34 +02:00
snippet_provider chore: Fix some violations of 'needless_pass_by_ref_mut' lint (#18795) 2024-10-07 01:29:58 +02:00
snippets_ui Add snippet commands (#18453) 2024-10-02 13:27:16 +02:00
sqlez Fix a rare crash on startup (#19922) 2024-10-29 12:30:55 -07:00
sqlez_macros Compare migrations formatted uniformly (#18760) 2024-10-05 12:58:45 +03:00
story chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
storybook Add preview for Checkbox with Label (#20448) 2024-11-08 22:53:15 -05:00
sum_tree Speed up point translation in the Rope (#19913) 2024-10-30 10:59:03 +01:00
supermaven Cap the size of the Supermaven states buffer (#19246) 2024-10-23 10:36:14 +03:00
supermaven_api chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
tab_switcher tab_switcher: Use git-aware colors for file icons (#18733) 2024-10-04 10:37:41 -04:00
task tasks: Add editor: Spawn Nearest Task action (#19901) 2024-10-31 14:25:57 +01:00
tasks_ui Add more context to the save new file path picker (#19863) 2024-10-28 17:21:41 -07:00
telemetry_events assistant: Add health telemetry (#19928) 2024-10-31 16:21:26 -07:00
terminal terminal: Prevent [] from being sanitized into clickable file link (#20386) 2024-11-08 02:41:30 +02:00
terminal_view terminal: Do not show multibuffer hint when in centered pane (#20137) 2024-11-04 09:19:48 +01:00
text Fix a test flake involving zeroed out group_intervals (#20328) 2024-11-07 09:17:43 -07:00
theme Revert "theme: Turn ThemeRegistry into a trait (#20076)" (#20094) 2024-11-01 15:34:20 -04:00
theme_importer chore: Another round of style lints fixes (#17519) 2024-09-07 02:36:55 +02:00
theme_selector Revert "theme: Turn ThemeRegistry into a trait (#20076)" (#20094) 2024-11-01 15:34:20 -04:00
time_format chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
title_bar ssh remoting: Hide share button while connecting to project (#19885) 2024-10-29 12:13:21 +01:00
toolchain_selector python: Fix toolchains not getting picked up after workspace deserialization (#20488) 2024-11-11 14:35:01 +01:00
ui Refactor Spacing into DynamicSpacing using proc macro (#20504) 2024-11-11 11:08:55 -05:00
ui_input Rename ui_text_field crate to ui_input (#13949) 2024-07-08 17:05:30 -04:00
ui_macros Refactor Spacing into DynamicSpacing using proc macro (#20504) 2024-11-11 11:08:55 -05:00
util Add support for git branches on remote projects (#19755) 2024-10-27 15:50:54 -07:00
vcs_menu chore: Update BranchListDelegate to use WeakView<Workspace> (#20157) 2024-11-04 12:17:11 +02:00
vim Exclude pinned tabs when closing items (#19593) 2024-11-07 11:20:19 +02:00
welcome Add emacs keymap (#19605) 2024-11-07 15:22:53 -05:00
workspace Refactor Spacing into DynamicSpacing using proc macro (#20504) 2024-11-11 11:08:55 -05:00
worktree Enable reload of images in image viewer (#20374) 2024-11-10 11:37:02 +01:00
zed Add support for context server extensions (#20250) 2024-11-08 16:39:21 -05:00
zed_actions Add KeyContextView (#19872) 2024-10-30 11:26:54 -06:00