Skip to content

feat(widgets): add Zed as an IDE link mode - #800

Merged
sirmalloc merged 1 commit into
sirmalloc:mainfrom
AllenReder:feat/zed-link-mode
Nov 5, 2026
Merged

sirmalloc merged 1 commit into
sirmalloc:mainfrom
AllenReder:feat/zed-link-mode

Conversation

@AllenReder

Copy link
Copy Markdown
Contributor

What

Current Working Dir and Git Root Dir can link their text to a file manager, VS Code, or Cursor. This adds Zed to both, using the zed://file handler Zed registers for opening files and directories as a workspace.

  • l in Current Working Dir now cycles off → file manager → VS Code → Cursor → Zed → off.
  • l in Git Root Dir now cycles off → VS Code → Cursor → Zed → off, and the editor row shows (link-zed).
  • Links come from the existing buildIdeFileUrl, so encoding is unchanged on every platform: zed://file/Users/example/project, zed://file/C:/Work/my%20repo, zed://file//server/share/my%20repo.
  • Zed joins IDE_LINK_MODES, so both widgets pick it up from one place.

Why

Zed's CLI reference documents zed://, file:// and ssh:// URL handling, and crates/zed/src/zed/open_listener.rs routes zed://file through the same path parser as file://. A directory therefore opens as a workspace, so this mode needs no new URL construction, only another option in the existing cycle.

Settings

linkTo / linkToIDE hold a mode name, and anything outside IDE_LINK_MODES still falls back to no link. A settings file carrying zed opened by an older version keeps its other widgets unchanged and simply does not link; existing cursor settings are untouched. Legacy linkToCursor metadata is still honored and counts as the cursor mode, so its first toggle now moves to Zed instead of clearing the link.

Testing

  • bun test: 3944 pass, 0 fail (202 files)
  • bun run lint: tsc --noEmit and eslint --max-warnings=0 clean
  • bun run build: succeeds and writes dist/ccstatusline.js
  • New coverage: zed:// URLs for POSIX, Windows drive-letter and UNC paths; Zed rendering and the (link-zed) modifier for both widgets; the l cycle in the CWD editor; the legacy linkToCursor migration target
  • Manually verified on macOS that open 'zed://file/<directory>' opens that directory as a workspace in Zed
  • docs/USAGE.md cycle descriptions updated. README release notes are left to release time.

Zed registers a zed://file handler that opens files and directories as a
workspace, so it belongs with the IDE link modes that Current Working Dir
and Git Root Dir already offer.

Adding 'zed' to IDE_LINK_MODES extends both widgets at once: the CWD link
cycle becomes file -> VS Code -> Cursor -> Zed -> off, and Git Root Dir
becomes VS Code -> Cursor -> Zed -> off. Legacy linkToCursor metadata
counts as the cursor mode, so its first toggle now lands on zed instead of
clearing the link.

Tests cover zed:// URLs for POSIX, Windows drive-letter, and UNC paths,
both widgets' rendering and editor modifiers, and the TUI link cycle. Docs
list Zed in the cycle descriptions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants