zed/crates
Dzmitry Malyshau 9ad1862f2f
Enable Blade on MacOS via "macos-blade" feature (#7669)
Depends on https://github.com/zed-industries/font-kit/pull/2 and
https://github.com/kvark/blade/pull/77

This change enables Blade to be also used on MacOS. It will also make it
easier to use it on Windows.

What works: most of the things. Zed loads as fast and appears equally
responsive to the current renderer.
<img width="306" alt="Screenshot 2024-02-11 at 12 09 15 AM"
src="https://github.com/zed-industries/zed/assets/107301/66d82f45-5ea2-4e2b-86c6-5b3ed333c827">

Things missing:
- [x] video streaming. ~~Requires a bit of plumbing on both Blade and
Zed sides, but all fairly straightforward.~~
  -  verified with a local setup
- [x] resize. ~~Not sure where exactly to hook up the reaction on the
window size change. Once we know where, the fix is one line.~~
- [ ] fine-tune CA Layer
- this isn't a blocker for merging the PR, but it would be a blocker if
we wanted to switch to the new path by default
- [ ] rebase on latest, get the dependency merged (need review/merge of
https://github.com/zed-industries/font-kit/pull/2!)

Update: I implemented resize support as well as "surface" rendering on
the Blade path (which will be useful on Linux/Windows later on). I
haven't tested the latter though - not sure how to get something
streaming. Would appreciate some help! I don't think this should be a
blocker to this PR, anyway.

The only little piece that's missing for the Blade on MacOS path to be
full-featured is fine-tuning the CALayer configuration. Zed does a lot
of careful logic in configuring the layer, such as switching the
"present with transaction" on/off intermittently, which Blade path
doesn't have yet.

Release Notes:
- N/A

---------

Co-authored-by: Mikayla <mikayla@zed.dev>
2024-02-16 13:39:40 -08:00
..
activity_indicator chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
ai Allow OpenAI API URL to be configured via assistant.openai_api_url (#7552) 2024-02-12 11:37:27 -05:00
assets chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
assistant Allow OpenAI API URL to be configured via assistant.openai_api_url (#7552) 2024-02-12 11:37:27 -05:00
audio chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
auto_update chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
breadcrumbs chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
call revert single channel click (#7738) 2024-02-13 12:53:49 -07:00
channel Fix notes unread status (#7643) 2024-02-09 23:12:26 -07:00
cli Actually fail on clippy failures (#7619) 2024-02-09 10:13:00 -08:00
client Use collections::{HashMap, HashSet} instead of its std:: counterpart (#7502) 2024-02-07 19:06:03 +02:00
clock Clean up Cargo.toml files (#7044) 2024-01-29 23:47:20 -05:00
collab Fix a missing follower update on re-activate (#7918) 2024-02-16 11:33:49 -07:00
collab_ui Fix a missing follower update on re-activate (#7918) 2024-02-16 11:33:49 -07:00
collections gpui: Add Global marker trait (#7095) 2024-01-30 14:08:20 -05:00
color chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
command_palette Close modals and menus before dispathing actions (#7830) 2024-02-15 15:57:32 +02:00
copilot Add Clojure language support with tree-sitter and LSP (#6988) 2024-02-10 13:28:48 -08:00
copilot_ui Add cancel button on GitHub Copilot actions (#7850) 2024-02-16 10:45:55 -05:00
db chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
diagnostics chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
editor vim: Implement Go To Previous Word End (#7505) 2024-02-15 16:15:31 -07:00
extension Display extension download counts (#7864) 2024-02-15 16:41:54 -05:00
extensions_ui Add button link to extension repository (#7880) 2024-02-16 11:49:05 -05:00
feature_flags chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
feedback vim: Fix renaming (#7714) 2024-02-12 22:28:26 -07:00
file_finder chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
fs Fix case-only renaming of files (#7768) 2024-02-14 16:00:31 +01:00
fsevent Translate notify::Event to fsevent::Event on linux (#7545) 2024-02-08 08:35:37 -08:00
fuzzy chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
git chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
go_to_line chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
gpui Enable Blade on MacOS via "macos-blade" feature (#7669) 2024-02-16 13:39:40 -08:00
gpui_macros Sort dependencies in Cargo.toml files (#7126) 2024-01-30 21:41:29 -05:00
install_cli chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
journal chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
language Add "code_actions_on_format" (#7860) 2024-02-15 14:19:57 -07:00
language_selector chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
language_tools Add logic for managing language and theme extensions (#7467) 2024-02-07 15:14:50 -05:00
live_kit_client X11: Continuous Presentation (#7762) 2024-02-14 12:24:12 -08:00
live_kit_server Sort dependencies in Cargo.toml files (#7126) 2024-01-30 21:41:29 -05:00
lsp Allow both integer and string request IDs in LSP (#7662) 2024-02-15 20:26:23 +02:00
markdown_preview Replace full with size_full (#7888) 2024-02-15 22:26:49 -05:00
media Enable Blade on MacOS via "macos-blade" feature (#7669) 2024-02-16 13:39:40 -08:00
menu chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
multi_buffer panics (#7793) 2024-02-14 14:36:40 -07:00
node_runtime chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
notifications chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
outline Avoid another confirmation when submitting/discarding feedback (#7569) 2024-02-08 16:13:54 +02:00
picker chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
plugin chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
plugin_macros Sort dependencies in Cargo.toml files (#7126) 2024-01-30 21:41:29 -05:00
plugin_runtime Sort dependencies in Cargo.toml files (#7126) 2024-01-30 21:41:29 -05:00
prettier chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
project Add "code_actions_on_format" (#7860) 2024-02-15 14:19:57 -07:00
project_panel Use collections::{HashMap, HashSet} instead of its std:: counterpart (#7502) 2024-02-07 19:06:03 +02:00
project_symbols Add logic for managing language and theme extensions (#7467) 2024-02-07 15:14:50 -05:00
quick_action_bar chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
recent_projects chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
refineable Sort dependencies in Cargo.toml files (#7126) 2024-01-30 21:41:29 -05:00
release_channel chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
rich_text chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
rope Optimize construction and insertion of large SumTrees (#7731) 2024-02-13 16:24:40 +01:00
rpc Remove environment guards (#7741) 2024-02-13 13:20:14 -07:00
search Fix buffer search invalid regexp indicator (#7795) 2024-02-15 13:33:26 -05:00
semantic_index Allow OpenAI API URL to be configured via assistant.openai_api_url (#7552) 2024-02-12 11:37:27 -05:00
settings Canonicalize settings to avoid overwriting symlinks (#7632) 2024-02-09 22:31:14 +02:00
snippet Clean up Cargo.toml files (#7044) 2024-01-29 23:47:20 -05:00
sqlez Use collections::{HashMap, HashSet} instead of its std:: counterpart (#7502) 2024-02-07 19:06:03 +02:00
sqlez_macros chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
story chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
storybook chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
sum_tree Optimize construction and insertion of large SumTrees (#7731) 2024-02-13 16:24:40 +01:00
terminal Use collections::{HashMap, HashSet} instead of its std:: counterpart (#7502) 2024-02-07 19:06:03 +02:00
terminal_view Use local player selection color, not cursor, for terminal selection 2024-02-12 10:52:44 -05:00
text Improve panic message for invalid anchors (#7700) 2024-02-12 12:58:30 -08:00
theme Fall back to One themes if the selected theme doesn't exist (#7911) 2024-02-16 11:28:34 -05:00
theme_importer theme_importer: Add --output flag for outputting the theme to a file (#7486) 2024-02-07 16:23:36 -05:00
theme_selector chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
ui Add CheckboxWithLabel component (#7881) 2024-02-15 21:00:30 -05:00
util Parse version from GitHub tag name instead of release name (#7423) 2024-02-08 15:28:51 -05:00
vcs_menu chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00
vim vim: Implement Go To Previous Word End (#7505) 2024-02-15 16:15:31 -07:00
welcome Replace full with size_full (#7888) 2024-02-15 22:26:49 -05:00
workspace Fix a missing follower update on re-activate (#7918) 2024-02-16 11:33:49 -07:00
zed Highlight escape sequences in TypeScript/JavaScript (#7892) 2024-02-16 09:12:39 +01:00
zed_actions chore: Move workspace dependencies to workspace.dependencies (#7454) 2024-02-06 20:41:36 +01:00