9c6a0d98eda255ec934cff1855f5ad1353eb0c86
project to project path (#8837)
This fixes #8823 by setting the current working directory we use when launching our own `prettier` process via `node` to the project path. Why does this fix it? We already *did* read the correct configuration options for `prettier` from any configuration files, we also correctly inferred which `prettier` plugins to use, but somehow when running ./node_modules/.bin/prettier my-file.tsx produced different results compared to `prettier` in Zed. But we *do* pass the right options to `prettier.format` when calling it here: https://github.com/zed-industries/zed/blob/996f1036fcc86dc95f6402311175929ed3c00909/crates/prettier/src/prettier_server.js#L177-L190 I checked those against the `prettier --loglevel=debug` output: they're the same. Turns out that the difference is we launch our `prettier_server.js` (a JavaScript shim that wraps `prettier`-the-library in a language server interface) not in the project path. So somewhere inside `prettier.format` something is `require`d and fails because we're not in that project directory. But when you run `./node_modules/.bin/prettier` you are. With the fix here, `prettier` now correctly picks up the tailwind plugin that didn't seem to work in #8823. It probably fixes a bunch of other oddities that folks reported with `prettier` too. Release Notes: - Fixed `prettier` integration not correctly picking up `prettier` plugins, because it didn't run in the project's root path when invoked. ([#8823](https://github.com/zed-industries/zed/issues/8823)).
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 from Homebrew:
brew install zed
Developing Zed
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 specifiederror for a crate you've created? If so, addpublish = falseunder[package]in your crate's Cargo.toml. - Is the error
failed to satisfy license requirementsfor 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 theacceptedarray inscript/licenses/zed-licenses.toml. - Is
cargo-aboutunable 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.
Description
GPUI – Community Edition maintained by Oak Team
https://gpui-ce.github.io/
257 MiB
Languages
Rust
95.5%
WGSL
1.2%
Metal
1.1%
HLSL
1.1%
Python
0.7%
Other
0.3%