
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
169 lines
4.7 KiB
TOML
169 lines
4.7 KiB
TOML
[package]
|
|
description = "The fast, collaborative code editor."
|
|
edition = "2021"
|
|
name = "zed"
|
|
version = "0.152.0"
|
|
publish = false
|
|
license = "GPL-3.0-or-later"
|
|
authors = ["Zed Team <hi@zed.dev>"]
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[[bin]]
|
|
name = "zed"
|
|
path = "src/main.rs"
|
|
|
|
[dependencies]
|
|
activity_indicator.workspace = true
|
|
anyhow.workspace = true
|
|
assets.workspace = true
|
|
assistant.workspace = true
|
|
audio.workspace = true
|
|
auto_update.workspace = true
|
|
backtrace = "0.3"
|
|
breadcrumbs.workspace = true
|
|
call.workspace = true
|
|
channel.workspace = true
|
|
chrono.workspace = true
|
|
clap.workspace = true
|
|
cli.workspace = true
|
|
client.workspace = true
|
|
collab_ui.workspace = true
|
|
collections.workspace = true
|
|
command_palette.workspace = true
|
|
command_palette_hooks.workspace = true
|
|
copilot.workspace = true
|
|
db.workspace = true
|
|
diagnostics.workspace = true
|
|
editor.workspace = true
|
|
env_logger.workspace = true
|
|
extension.workspace = true
|
|
extensions_ui.workspace = true
|
|
feature_flags.workspace = true
|
|
feedback.workspace = true
|
|
file_finder.workspace = true
|
|
file_icons.workspace = true
|
|
fs.workspace = true
|
|
futures.workspace = true
|
|
git.workspace = true
|
|
git_hosting_providers.workspace = true
|
|
go_to_line.workspace = true
|
|
gpui.workspace = true
|
|
headless.workspace = true
|
|
http_client.workspace = true
|
|
image_viewer.workspace = true
|
|
inline_completion_button.workspace = true
|
|
install_cli.workspace = true
|
|
isahc.workspace = true
|
|
journal.workspace = true
|
|
language.workspace = true
|
|
language_model.workspace = true
|
|
language_selector.workspace = true
|
|
language_tools.workspace = true
|
|
languages.workspace = true
|
|
libc.workspace = true
|
|
log.workspace = true
|
|
markdown_preview.workspace = true
|
|
menu.workspace = true
|
|
mimalloc = { version = "0.1", optional = true }
|
|
nix = { workspace = true, features = ["pthread", "signal"] }
|
|
node_runtime.workspace = true
|
|
notifications.workspace = true
|
|
outline.workspace = true
|
|
outline_panel.workspace = true
|
|
parking_lot.workspace = true
|
|
paths.workspace = true
|
|
performance.workspace = true
|
|
profiling.workspace = true
|
|
project.workspace = true
|
|
project_panel.workspace = true
|
|
project_symbols.workspace = true
|
|
quick_action_bar.workspace = true
|
|
recent_projects.workspace = true
|
|
dev_server_projects.workspace = true
|
|
release_channel.workspace = true
|
|
remote.workspace = true
|
|
repl.workspace = true
|
|
rope.workspace = true
|
|
search.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
session.workspace = true
|
|
settings.workspace = true
|
|
settings_ui.workspace = true
|
|
simplelog.workspace = true
|
|
smol.workspace = true
|
|
snippet_provider.workspace = true
|
|
tab_switcher.workspace = true
|
|
supermaven.workspace = true
|
|
task.workspace = true
|
|
tasks_ui.workspace = true
|
|
time.workspace = true
|
|
telemetry_events.workspace = true
|
|
terminal_view.workspace = true
|
|
theme.workspace = true
|
|
theme_selector.workspace = true
|
|
url.workspace = true
|
|
urlencoding = "2.1.2"
|
|
ui.workspace = true
|
|
util.workspace = true
|
|
uuid.workspace = true
|
|
vim.workspace = true
|
|
welcome.workspace = true
|
|
workspace.workspace = true
|
|
zed_actions.workspace = true
|
|
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
|
windows.workspace = true
|
|
|
|
[target.'cfg(target_os = "windows")'.build-dependencies]
|
|
winresource = "0.1"
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
ashpd.workspace = true
|
|
|
|
[dev-dependencies]
|
|
call = { workspace = true, features = ["test-support"] }
|
|
editor = { workspace = true, features = ["test-support"] }
|
|
gpui = { workspace = true, features = ["test-support"] }
|
|
language = { workspace = true, features = ["test-support"] }
|
|
project = { workspace = true, features = ["test-support"] }
|
|
tree-sitter-md.workspace = true
|
|
tree-sitter-rust.workspace = true
|
|
workspace = { workspace = true, features = ["test-support"] }
|
|
|
|
[package.metadata.bundle-dev]
|
|
icon = ["resources/app-icon-preview@2x.png", "resources/app-icon-preview.png"]
|
|
identifier = "dev.zed.Zed-Dev"
|
|
name = "Zed Dev"
|
|
osx_minimum_system_version = "10.15.7"
|
|
osx_info_plist_exts = ["resources/info/*"]
|
|
osx_url_schemes = ["zed"]
|
|
|
|
[package.metadata.bundle-nightly]
|
|
icon = ["resources/app-icon-nightly@2x.png", "resources/app-icon-nightly.png"]
|
|
identifier = "dev.zed.Zed-Nightly"
|
|
name = "Zed Nightly"
|
|
osx_minimum_system_version = "10.15.7"
|
|
osx_info_plist_exts = ["resources/info/*"]
|
|
osx_url_schemes = ["zed"]
|
|
|
|
[package.metadata.bundle-preview]
|
|
icon = ["resources/app-icon-preview@2x.png", "resources/app-icon-preview.png"]
|
|
identifier = "dev.zed.Zed-Preview"
|
|
name = "Zed Preview"
|
|
osx_minimum_system_version = "10.15.7"
|
|
osx_info_plist_exts = ["resources/info/*"]
|
|
osx_url_schemes = ["zed"]
|
|
|
|
[package.metadata.bundle-stable]
|
|
icon = ["resources/app-icon@2x.png", "resources/app-icon.png"]
|
|
identifier = "dev.zed.Zed"
|
|
name = "Zed"
|
|
osx_minimum_system_version = "10.15.7"
|
|
osx_info_plist_exts = ["resources/info/*"]
|
|
osx_url_schemes = ["zed"]
|
|
|
|
[package.metadata.cargo-machete]
|
|
ignored = ["profiling"]
|