id = "zed" name = "Zed" homepage = "https://zed.dev" description = "A high-performance, multiplayer code editor from the creators of Atom and Tree-sitter." icon = "SimpleIcons:zedindustries" # On Linux `zed` is also the name of the ZFS Event Daemon, an unrelated system # service with no user-level config. The paths below are what tells the two # apart: only the editor writes them. executables = ["zed"] [dotfiles] # crates/paths/src/paths.rs: config_dir() is ~/.config/zed on macOS, # $XDG_CONFIG_HOME/zed on Linux and %APPDATA%\Zed on Windows — the XDG # configuration directory on macOS as well as Linux, which is `[configHome]`, # so the variable is followed instead of ~/.config being assumed. Windows # capitalizes the directory `Zed`; the one spelling below carries the Unix # casing and Windows resolves it either way. settings_file(), keymap_file(), # tasks_file(), themes_dir() and snippets_dir() are all config_dir joined with # settings.json, keymap.json, tasks.json, themes and snippets. The # .zed/settings.json a project carries is not user-level. paths = [ "[configHome]/zed/settings.json", "[configHome]/zed/keymap.json", "[configHome]/zed/tasks.json", "[configHome]/zed/themes/", "[configHome]/zed/snippets/", ] # The same file's data_dir() — ~/Library/Application Support/Zed on macOS, # $XDG_DATA_HOME/zed on Linux, %LOCALAPPDATA%\Zed on Windows — holds the # database, the logs and the installed extensions. None of it is config, and # the extensions are a checkout Zed re-downloads. Not `[xdgData]` either: that # is the XDG half of the pair, and data_dir() takes the macOS branch # `home_dir().join("Library/Application Support")` there rather than the dot # path, so ~/.local/share/zed is the Linux spelling alone. And not `[dataHome]` # even though the three roots line up: Zed spells the directory `zed` on Linux # and `Zed` on macOS and Windows, and a case-sensitive filesystem would drop a # carve-out written under the wrong one. exclude = [ "~/Library/Application Support/Zed/", "~/.local/share/zed/", "%LOCALAPPDATA%/Zed/", ] # Zed keeps sign-ins in the system keychain, not in the config directory. secret = [] # No machine_lines: settings.json is themes, fonts, language servers and # keymaps — the preferences a user wants on every machine. A running Zed holds # them in memory and rewrites the file on change, so side_effect stays at its # default of true. [commands] format = 1 label = "Open in Zed" description = "Open files or folders in Zed. Only options from the completion spec are offered." quality = "ai-draft" base = "fig:zed" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/zed.ts" license = "MIT" [[commands.field]] id = "paths" label = "Paths" type = "path" position = 0 multiple = true path = { kind = "any", role = "input", must_exist = false } sources = ["fig"] [[commands.field]] id = "wait" label = "Wait until closed" type = "boolean" option = ["--wait", "-w"] sources = ["fig"] [[commands.field]] id = "bundle" label = "Custom Zed.app path" type = "path" option = ["--bundle-path", "-b"] path = { kind = "directory", role = "input", must_exist = true } sources = ["fig"] [[commands.task]] id = "open" label = "Open paths" fields = ["paths", "wait"] required = [] [[commands.group]] id = "basic" label = "Basic" fields = ["paths", "wait"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["bundle"]