zed/crates
Max Brunsfeld 675ae24964
Add a command for building and installing a locally-developed Zed extension (#8781)
This PR adds an `zed: Install Local Extension` action, which lets you
select a path to a folder containing a Zed extension, and install that .
When you select a directory, the extension will be compiled (both the
Tree-sitter grammars and the Rust code for the extension itself) and
installed as a Zed extension, using a symlink.

### Details

A few dependencies are needed to build an extension:
* The Rust `wasm32-wasi` target. This is automatically installed if
needed via `rustup`.
* A wasi-preview1 adapter WASM module, for building WASM components with
Rust. This is automatically downloaded if needed from a `wasmtime`
GitHub release
* For building Tree-sitter parsers, a distribution of `wasi-sdk`. This
is automatically downloaded if needed from a `wasi-sdk` GitHub release.

The downloaded artifacts are cached in a support directory called
`Zed/extensions/build`.

### Tasks

UX

* [x] Show local extensions in the Extensions view
* [x] Provide a button for recompiling a linked extension
* [x] Make this action discoverable by adding a button for it on the
Extensions view
* [ ] Surface errors (don't just write them to the Zed log)

Packaging

* [ ] Create a separate executable that performs the extension
compilation. We'll switch the packaging system in our
[extensions](https://github.com/zed-industries/extensions) repo to use
this binary, so that there is one canonical definition of how to
build/package an extensions.

### Release Notes:

- N/A

---------

Co-authored-by: Marshall <marshall@zed.dev>
Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
2024-03-06 15:35:22 -08:00
..
activity_indicator Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
ai Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
assets Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
assistant Enable clippy::cmp_owned (#8899) 2024-03-05 14:36:53 -05:00
audio Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
auto_update Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
breadcrumbs Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
call Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
channel Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
cli Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
client Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
clock Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
collab Debounce language server updates (#8953) 2024-03-06 15:58:22 -07:00
collab_ui Update App Menus to add ... for some modal action menu, and group menu items by type. (#8951) 2024-03-06 12:10:09 -05:00
collections Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
color Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
command_palette Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
command_palette_hooks Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
copilot Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
copilot_ui Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
db Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
diagnostics Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
editor Improve bindings to better match VS-Code (#8584) 2024-03-06 11:16:14 -08:00
extension Add a command for building and installing a locally-developed Zed extension (#8781) 2024-03-06 15:35:22 -08:00
extension_api Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
extensions_ui Add a command for building and installing a locally-developed Zed extension (#8781) 2024-03-06 15:35:22 -08:00
feature_flags Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
feedback Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
file_finder Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
fs Add a command for building and installing a locally-developed Zed extension (#8781) 2024-03-06 15:35:22 -08:00
fsevent Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
fuzzy Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
git Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
go_to_line Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
gpui Add a command for building and installing a locally-developed Zed extension (#8781) 2024-03-06 15:35:22 -08:00
gpui_macros Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
install_cli Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
journal Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
language Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
language_selector Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
language_tools Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
languages Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
live_kit_client Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
live_kit_server Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
lsp Always resolve code action if needed (#8904) 2024-03-05 23:42:12 +02:00
markdown_preview Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
media Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
menu Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
multi_buffer Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
node_runtime Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
notifications Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
outline Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
picker Throttle the sending of UpdateFollowers messages (#8918) 2024-03-06 14:58:41 +01:00
prettier Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
project Debounce language server updates (#8953) 2024-03-06 15:58:22 -07:00
project_core Add a command for building and installing a locally-developed Zed extension (#8781) 2024-03-06 15:35:22 -08:00
project_panel Fix project panel scrolling position restoration (#8961) 2024-03-06 12:00:51 -08:00
project_symbols Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
quick_action_bar Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
recent_projects Improve wording on recent projects placeholder instructions 2024-03-05 13:51:25 -05:00
refineable Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
release_channel Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
rich_text Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
rope Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
rpc Log the time incoming RPC messages were queued (#8909) 2024-03-05 14:40:09 -08:00
search Update Project search to Project Search. (#8943) 2024-03-06 15:23:55 +01:00
semantic_index Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
settings Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
snippet Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
sqlez Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
sqlez_macros Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
story Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
storybook Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
sum_tree Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
task Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
tasks_ui Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
telemetry_events Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
terminal Enable clippy::cast_abs_to_unsigned (#8912) 2024-03-06 12:21:48 -05:00
terminal_view prevent empty cwd in terminal view (#8924) 2024-03-06 11:26:16 -08:00
text Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
theme Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
theme_importer Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
theme_selector Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
time_format Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
ui Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
util Windows: use folders under AppData (#8828) 2024-03-05 09:48:27 -08:00
vcs_menu Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
vim Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
welcome Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
workspace Remove workspace border, avoid the main window having double borders (#8922) 2024-03-06 10:03:59 -05:00
zed Set the default DPI awareness for Zed (#8936) 2024-03-06 11:45:18 -08:00
zed_actions Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00