Zed Improved. Aiming to improve upon Zed and make a truly delightful code editor.
https://zed.dev
![]() ### Issue So this pull request fixes an issue that was driven me crazy. The issue was that when you use the `prettier-plugin-organize-imports` It would remove some imports that should not be removed before they were used inside the module itself. You can reproduce it with the following `prettierrc.json` config and source code. When you **save** the file, it would remove the `import clsx from "clsx";` import from the file. **Prettier config** ```json { "semi": true, "tabWidth": 4, "trailingComma": "es5", "useTabs": true, "plugins": [ "prettier-plugin-tailwindcss", "prettier-plugin-organize-imports" ] } ``` **Source code** ```typescript import clsx from "clsx"; export default function Home() { return ( <main> {clsx("asdjklasdjlkasd", "asdjlkasjdjlk")} </main> ); } ``` ### Findings After a deep dive with @mrnugget, I was debugging deep down the prettier plugin system and found the issue that was causing this issue. When I was looking inside the `node_modules/prettier-plugin-organize-imports/lib/organize.js`. I saw the following code that looked strange to me because it falls back to `file.ts` if `filepath` is not passed through inside the prettier config options. <img width="860" alt="Screenshot 2024-03-20 at 21 31 46" src="https://github.com/zed-industries/zed/assets/62463826/47177fe5-e5a9-41d8-9f2f-0304b2c2159f"> So the issue was small, if you look at the following code, the `path` key should be `filepath` inside the `crates/prettier/src/prettier_server.js:205`  Release Notes: - Fixed prettier integration not using the correct filepath when invoking prettier, which could lead to some prettier plugins failing to format correctly. ([#9496](https://github.com/zed-industries/zed/issues/9496)). |
||
---|---|---|
.cargo | ||
.config | ||
.github | ||
.zed | ||
assets | ||
crates | ||
docs | ||
extensions | ||
script | ||
tooling/xtask | ||
.dockerignore | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.mailmap | ||
Cargo.lock | ||
Cargo.toml | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
debug.plist | ||
docker-compose.sql | ||
docker-compose.yml | ||
Dockerfile | ||
LICENSE-AGPL | ||
LICENSE-APACHE | ||
LICENSE-GPL | ||
livekit.yaml | ||
Procfile | ||
README.md | ||
rust-toolchain.toml | ||
typos.toml |
Zed
Welcome to Zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
Installation
You can download Zed today for macOS (v10.15+).
Support for additional platforms is on our roadmap:
- Linux (tracking issue)
- Windows (tracking issue)
- Web (tracking issue)
For macOS users, you can also install Zed using Homebrew:
brew install zed
Alternatively, to install the Preview release:
brew tap homebrew/cask-versions
brew install zed-preview
Developing Zed
- Building Zed for macOS
- Building Zed for Linux
- Building Zed for Windows
- Running Collaboration Locally
Contributing
See CONTRIBUTING.md for ways you can contribute to Zed.
Licensing
License information for third party dependencies must be correctly provided for CI to pass.
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, addpublish = 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 theaccepted
array inscript/licenses/zed-licenses.toml
. - Is
cargo-about
unable to find the license for a dependency? If so, add a clarification field at the end ofscript/licenses/zed-licenses.toml
, as specified in the cargo-about book.