Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
Go to file
Mikayla Maki e945b3c0e1
feat(workspace): add action for closing inactive editors on all panes (#2771)
using zed more and more to develop zed itself I'm finding some small qol
features missing, this is one of them
I'm very used to open two or three splits, and sometimes I want to close
everything except for the active editor, but that wasn't supported, as
the `pane::CloseInactiveItems` action only closes inactive items on the
active pane

so I've implemented it really quick, although I'm not sure it's the
right way to do this

note: I really don't like the default keybinding I've set it to, I have
this action bound to `cmd-shift-w` on all editors, but in zed is taken,
so I chose something that's free but without thinking too much about it

Release Notes:

- Added action for closing inactive editors from all panes
2023-07-27 18:11:11 -07:00
.cargo Use xtask for theme generation 2023-06-21 18:48:09 +02:00
.config tests: Test 'db' package sequentially (#2654) 2023-06-28 15:00:43 +02:00
.github Publish preview releases to discord 2023-07-27 15:17:13 -04:00
.vscode Hit the local server when debugging 2021-08-24 17:11:40 -06:00
assets feat(workspace): add action for closing inactive editors on all panes (#2771) 2023-07-27 18:11:11 -07:00
crates feat(workspace): add action for closing inactive editors on all panes (#2771) 2023-07-27 18:11:11 -07:00
docs chore: add theme types docs 2023-07-17 17:54:37 +01:00
plugins Use the same serde version across the entire workspace 2023-03-28 09:42:00 -07:00
script Retrieve git statuses in one batch when scanning dirs 2023-07-21 13:50:54 -07:00
styles Extract syntax highlighting properties from tree-sitter highlight queries (#2797) 2023-07-27 13:14:01 -04:00
.dockerignore Removed old experiments settings and staff mode flag, added new StaffMode global that is set based on the webserver's staff bit 2023-01-27 15:43:12 -08:00
.gitignore Merge branch 'main' into sergey/z-2308-create-a-proof-of-concept-of-exporting-a-type-from-rust-and 2023-06-22 17:58:56 +02:00
.gitmodules WIP: start on live_kit_server 2022-10-17 09:59:16 +02:00
Cargo.lock update to dependency without symbol conflict 2023-07-27 17:41:13 -07:00
Cargo.toml update to dependency without symbol conflict 2023-07-27 17:41:13 -07:00
Dockerfile chore: bump MSRV to 1.70, add rust-toolchain (#2580) 2023-06-06 23:49:34 +02:00
Procfile Add livekit to the Procfile, update the README 2022-10-27 13:24:35 -07:00
README.md Update README.md 2023-07-12 11:35:38 -06:00
rust-toolchain.toml chore: add targets to rust-toolchain.toml (#2581) 2023-06-07 00:12:47 +02:00

Zed

CI

Welcome to Zed, a lightning-fast, collaborative code editor that makes your dreams come true.

Development tips

Dependencies

  • Install Postgres.app and start it.

  • Install the LiveKit server and the foreman process supervisor:

    brew install livekit
    brew install foreman
    
  • Ensure the Zed.dev website is checked out in a sibling directory and install it's dependencies:

    cd ..
    git clone https://github.com/zed-industries/zed.dev
    cd zed.dev && npm install
    npm install -g vercel
    
  • Return to Zed project directory and Initialize submodules

    cd zed
    git submodule update --init --recursive
    
  • Set up a local zed database and seed it with some initial users:

    Create a personal GitHub token to run script/bootstrap once successfully: the token needs to have an access to private repositories for the script to work (repo OAuth scope). Then delete that token.

    GITHUB_TOKEN=<$token> script/bootstrap
    

Testing against locally-running servers

Start the web and collab servers:

foreman start

If you want to run Zed pointed at the local servers, you can run:

script/zed-with-local-servers
# or...
script/zed-with-local-servers --release

Dump element JSON

If you trigger cmd-alt-i, Zed will copy a JSON representation of the current window contents to the clipboard. You can paste this in a tool like DJSON to navigate the state of on-screen elements in a structured way.

Licensing

We use cargo-about to automatically comply with open source licenses. If CI is failing, check the following:

  • Is it showing a no license specified error for a crate you've created? If so, add publish = false under [package] in your crate's Cargo.toml.
  • Is the error failed to satisfy license requirements for a dependency? If so, first determine what license the project has and whether this system is sufficient to comply with this license's requirements. If you're unsure, ask a lawyer. Once you've verified that this system is acceptable add the license's SPDX identifier to the accepted array in script/licenses/zed-licenses.toml.
  • Is cargo-about unable to find the license for a dependency? If so, add a clarification field at the end of script/licenses/zed-licenses.toml, as specified in the cargo-about book.

Wasm Plugins

Zed has a Wasm-based plugin runtime which it currently uses to embed plugins. To compile Zed, you'll need to have the wasm32-wasi toolchain installed on your system. To install this toolchain, run:

rustup target add wasm32-wasi

Plugins can be found in the plugins folder in the root. For more information about how plugins work, check the Plugin Guide in crates/plugin_runtime/README.md.