Skip to content

Single clipboard write per R-* operation #547

@couimet

Description

@couimet

Branch from: issues/545 (Issue 1's branch)
GitHub dependency: Issue #545 must merge first; stacks on Issue 1.

Architectural refactoring — clipboard write ownership, pre-applied padding, preserver de-nesting. No user-visible behavior changes.

Context

Currently each R-* operation writes to the clipboard twice: once in the calling service (ClipboardRouter) and again inside the insert factory (AIAssistantInsertFactory / TerminalInsertFactory). There are also two nested ClipboardPreserver layers (outer in ClipboardRouter, inner in each factory). This is wasteful and confusing. The refactoring gives ClipboardRouter sole ownership of the clipboard write; insert factories only execute paste commands. Padding is pre-applied at the 4 call sites (LinkGenerator, TextSelectionPaster, FilePathPaster, TerminalSelectionService) so performPaste() is removed. A two-delay model replaces the old single delay: FOCUS_TO_PASTE_DELAY_MS for focus readiness before paste, CLIPBOARD_POST_PASTE_DELAY_MS for webview async clipboard read after paste.

Metadata

Metadata

Assignees

Labels

scope:vscode-extrangelink-vscode-extension packagetype:refactorCode refactoring without behavior changetype:testTest coverage improvements

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions