Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
Find a file
Nate Butler a75e9faa83
Add foundation for exporting tokens from our color schemes (#2588)
We removed our Figma Tokens/Tokens Studio export a while back when we
moved to the theme to ColorSchemes. I'd like to get back to exporting
these so we can be working from up to date themes in Figma, especially
with the large amount of UI design work we'll be doing in the next few
weeks on channels.

This PR adds some basic plumbing to start working through the
theme/colorScheme and export the parts as tokens.

I also discovered that Tokens Studio now publishes their types, so we
can use them directly rather than writing our own:
https://github.com/tokens-studio/types

Pulled those in and started connecting them as well.

Running `npm run build-tokens` will export the tokens for each theme to
`styles/target/tokens`.

Currently only a few element's tokens are exported, will expand this
further as time permits.

Release Notes:

- N/A (No public facing changes)
2023-06-08 00:53:16 -04:00
.github Disable scheduled randomized test workflow for now 2023-06-07 09:20:25 -07:00
.vscode
assets Merge remote-tracking branch 'origin/main' into assistant-2 2023-06-07 09:34:16 +02:00
crates Fixed ci 2023-06-07 16:58:55 -07:00
plugins Use the same serde version across the entire workspace 2023-03-28 09:42:00 -07:00
script Remove code sending zed events to mixpanel 2023-06-05 15:33:17 -04:00
styles Add foundation for exporting tokens 2023-06-08 00:37:00 -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 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
.gitmodules
Cargo.lock Merge branch 'main' into stream-git-statuses 2023-06-07 14:12:58 -07:00
Cargo.toml chore: Enable full LTO (#2548) 2023-06-06 21:50:08 +02: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 Clarify GH Token scope requirements 2023-05-02 12:12:57 +03: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:

    cd ..
    git clone https://github.com/zed-industries/zed.dev
    
  • Initialize submodules

    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.