zed/extensions
Mikayla Maki 9613084f59
Some checks are pending
CI / check_docs_only (push) Waiting to run
CI / Check Postgres and Protobuf migrations, mergability (push) Waiting to run
CI / Check formatting and spelling (push) Waiting to run
CI / (macOS) Run Clippy and tests (push) Blocked by required conditions
CI / (Linux) Run Clippy and tests (push) Blocked by required conditions
CI / (Linux) Build Remote Server (push) Blocked by required conditions
CI / (Windows) Run Clippy and tests (push) Blocked by required conditions
CI / Create a macOS bundle (push) Blocked by required conditions
CI / Create a Linux bundle (push) Blocked by required conditions
CI / Create arm64 Linux bundle (push) Blocked by required conditions
CI / Auto release preview (push) Blocked by required conditions
Deploy Docs / Deploy Docs (push) Waiting to run
Docs / Check formatting (push) Waiting to run
Script / ShellCheck Scripts (push) Waiting to run
Move git status out of Entry (#22224)
- [x] Rewrite worktree git handling
- [x] Fix tests
- [x] Fix `test_propagate_statuses_for_repos_under_project`
- [x] Replace `WorkDirectoryEntry` with `WorkDirectory` in
`RepositoryEntry`
- [x] Add a worktree event for capturing git status changes
- [x] Confirm that the local repositories are correctly updating the new
WorkDirectory field
- [x] Implement the git statuses query as a join when pulling entries
out of worktree
- [x] Use this new join to implement the project panel and outline
panel.
- [x] Synchronize git statuses over the wire for collab and remote dev
(use the existing `worktree_repository_statuses` table, adjust as
needed)
- [x] Only send changed statuses to collab

Release Notes:

- N/A

---------

Co-authored-by: Cole Miller <cole@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.com>
Co-authored-by: Nathan <nathan@zed.dev>
2025-01-04 01:00:16 +00:00
..
csharp csharp: Bump to v0.1.0 (#22617) 2025-01-03 16:47:19 +00:00
deno chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
elixir elixir: Bump to v0.1.3 (#22585) 2025-01-02 14:38:51 -05:00
emmet
erlang Add text objects to extensions (#21488) 2024-12-03 13:56:25 -07:00
glsl chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
haskell Add syntax highlighting for character literals in Haskell, PureScript, and Zig (#22609) 2025-01-03 20:51:43 +00:00
html html: Bump to v0.1.4 (#20692) 2024-11-15 10:10:25 -05:00
lua Add text objects to extensions (#21488) 2024-12-03 13:56:25 -07:00
perplexity Move git status out of Entry (#22224) 2025-01-04 01:00:16 +00:00
php Add text objects to extensions (#21488) 2024-12-03 13:56:25 -07:00
prisma Add text objects to extensions (#21488) 2024-12-03 13:56:25 -07:00
proto Add text objects to extensions (#21488) 2024-12-03 13:56:25 -07:00
purescript Add syntax highlighting for character literals in Haskell, PureScript, and Zig (#22609) 2025-01-03 20:51:43 +00:00
ruff ruff: Bump to v0.1.0 (#17960) 2024-09-17 14:21:06 -04:00
scheme Add inclusive range scope overrides. Don't auto-close quotes at the ends of line comments (#20206) 2024-11-04 15:36:39 -08:00
slash-commands-example slash-commands-example: Fix numbering in README (#17452) 2024-09-05 15:39:09 -04:00
snippets chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
terraform Add a CI check for todo! and FIXME comments (#21950) 2024-12-20 08:38:50 +00:00
test-extension zed_extension_api: Fork new version of extension API (#17795) 2024-09-13 10:54:23 -04:00
toml Add text objects to extensions (#21488) 2024-12-03 13:56:25 -07:00
uiua
zig Add syntax highlighting for character literals in Haskell, PureScript, and Zig (#22609) 2025-01-03 20:51:43 +00:00
.gitignore
EXTRACTION.md Document extension extraction process (#19085) 2024-10-11 16:33:40 -04:00
README.md Document extension bump process (#18872) 2024-10-08 16:13:56 -04:00

Zed Extensions

This directory contains extensions for Zed that are largely maintained by the Zed team. They currently live in the Zed repository for ease of maintenance.

If you are looking for the Zed extension registry, see the zed-industries/extensions repo.

Structure

Currently, Zed includes support for a number of languages without requiring installing an extension. Those languages can be found under crates/languages/src.

Support for all other languages is done via extensions. This directory (extensions/) contains a number of officially maintained extensions. These extensions use the same zed_extension_api available to all Zed Extensions for providing language servers, tree-sitter grammars and tree-sitter queries.

Dev Extensions

See the docs for Developing an Extension Locally for how to work with one of these extensions.

Updating

Note

This update process is usually handled by Zed staff. Community contributors should just submit a PR (step 1) and we'll take it from there.

The process for updating an extension in this directory has three parts.

  1. Create a PR with your changes. (Merge it)

  2. Bump the extension version in:

    • extensions/{language_name}/extension.toml
    • extensions/{language_name}/Cargo.toml
    • Cargo.lock

    You can do this manually, or with a script:

    # Output the current version for a given language
    ./script/language-extension-version <langname>
    
    # Update the version in `extension.toml` and `Cargo.toml` and trigger a `cargo check`
    ./script/language-extension-version <langname> <new_version>
    

    Commit your changes to a branch, push a PR and merge it.

  3. Open a PR to zed-industries/extensions repo that updates the extension in question

Edit extensions.toml in the extensions repo to reflect the new version you set above and update the submodule latest Zed commit.

# Go into your clone of the extensions repo
cd ../extensions

# Update
git checkout main
git pull
just init-submodule extensions/zed

# Update the Zed submodule
cd extensions/zed
git checkout main
git pull
cd -
git add extensions.toml extensions/zed