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
张小白 3c53832141
windows: Implement single instance (#15371)
This PR implements a single instance mechanism using the `CreateEventW`
function to create a mutex. If the identifier name begins with `Local`,
the single instance applies only to processes under the same user. If
the identifier begins with `Global`, it applies to all users.

Additionally, I was thinking that perhaps we should integrate the single
instance functionality into `gpui`. I believe applications developed
using `gpui` would benefit from this feature. Furthermore, incorporating
the single instance implementation into `gpui` would facilitate the
`set_dock_menu` functionality. As I mentioned in #12068, the
implementation of `set_dock_menu` on Windows depends on the single
instance feature. When a user clicks the "dock menu", Windows will open
a new application instance. To achieve behavior similar to macOS, we
need to prevent the new instance from launching and instead pass the
parameters to the existing instance.

Any advice and suggestions are welcome.




https://github.com/user-attachments/assets/c46f7e92-4411-4fa9-830e-383798a9dd93



Release Notes:

- N/A
2024-08-28 19:26:24 -07:00
.cargo windows: Bump windows-rs version (#14719) 2024-07-25 10:41:59 -07:00
.cloudflare docs: Black-hole zombie pages 2024-08-20 21:37:41 -04:00
.config
.github Pin actions/github-script action to 60a0d83 (#17023) 2024-08-28 15:42:31 -04:00
.zed A set of small fixes (#16849) 2024-08-26 02:24:08 +03:00
assets Fix casing of "macOS" (#17040) 2024-08-28 19:10:49 -04:00
crates windows: Implement single instance (#15371) 2024-08-28 19:26:24 -07:00
docs Don't use a mix of tabs and spaces (#17045) 2024-08-28 19:25:19 -04:00
extensions Revert "extension: Define capabilities in the extension manifest (#16953)" (#17003) 2024-08-28 09:30:13 -04:00
legal Update Terms and Conditions (#16478) 2024-08-19 17:08:46 -04:00
nix nix: Fix gpu-lib/wayland binary patching on nix package (#16958) 2024-08-27 12:24:42 -04:00
script Don't use a mix of tabs and spaces (#17045) 2024-08-28 19:25:19 -04:00
tooling/xtask xtask: Add command for checking packages conform to certain standards (#15236) 2024-07-25 19:20:08 -04:00
.dockerignore Update .dockerignore (#14016) 2024-07-09 16:27:55 -04:00
.git-blame-ignore-revs More ignorable commits (#14596) 2024-07-16 17:09:50 -04:00
.gitattributes
.gitignore Add the ability to store secret dev-only env vars in .env.secret.toml (#15557) 2024-07-31 12:41:09 -07:00
.mailmap Update .mailmap (#16640) 2024-08-21 18:51:58 -04:00
Cargo.lock windows: Implement single instance (#15371) 2024-08-28 19:26:24 -07:00
Cargo.toml Update Rust crate fork to 0.2.0 (#17044) 2024-08-28 19:38:27 -04:00
CODE_OF_CONDUCT.md
compose.yml Add Postgrest to Docker Compose (#16498) 2024-08-19 20:50:45 -04:00
CONTRIBUTING.md docs: Fix some typos (#13509) 2024-06-25 10:58:11 -04:00
debug.plist
default.nix Add zed-editor package and overlay to flake (#16783) 2024-08-26 11:10:34 -04:00
docker-compose.sql collab: Setup database for LLM service (#15882) 2024-08-06 17:18:08 -04:00
Dockerfile collab: Setup database for LLM service (#15882) 2024-08-06 17:18:08 -04:00
flake.lock nix: Fix gpu-lib/wayland binary patching on nix package (#16958) 2024-08-27 12:24:42 -04:00
flake.nix nix: Fix gpu-lib/wayland binary patching on nix package (#16958) 2024-08-27 12:24:42 -04:00
LICENSE-AGPL
LICENSE-APACHE
LICENSE-GPL
livekit.yaml Add LiveKit server to Docker Compose (#7907) 2024-02-16 10:49:48 -05:00
Procfile Refactor: Restructure collab main function to prepare for new subcommand: serve llm (#15824) 2024-08-05 12:07:38 -07:00
Procfile.postgrest Fix llm queries (#16006) 2024-08-08 17:21:38 -07:00
README.md Update README.md 2024-07-09 14:05:29 -07:00
renovate.json renovate: Fix wasmtime package prefix 2024-07-25 11:45:14 -04:00
rust-toolchain.toml chore: Bump Rust version to 1.80 (#15186) 2024-07-25 22:48:42 +02:00
shell.nix Add zed-editor package and overlay to flake (#16783) 2024-08-26 11:10:34 -04:00
typos.toml Promote package suggestions to a first-class concept on IndexedDocsProviders (#16177) 2024-08-13 16:01:58 -04:00

Zed

CI

Welcome to Zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.


Installation

Packaging status

On macOS and Linux you can download Zed directly or install Zed via your local package manager.

Other platforms are not yet available:

Developing Zed

Contributing

See CONTRIBUTING.md for ways you can contribute to Zed.

Also... we're hiring! Check out our jobs page for open roles.

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, 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.