Repository navigation
Conversation
Multi-line pastes are collapsed into a [Pasted ~N lines] chip in the chat input. Clicking the chip now toggles it between the placeholder and the full pasted content inline. Submit and copy still use the full content regardless of display state.
|
Hey! Your PR title Please update it to start with one of:
Where See CONTRIBUTING.md for details. |
|
Thanks for updating your PR! It now meets our contributing guidelines. 👍 |
|
Automated PR Cleanup Thank you for contributing to opencode. Due to the high volume of PRs from users and AI agents, we periodically close older PRs using automated criteria so maintainers can focus review time on the most active and community-supported contributions. This PR was closed because it matched the following cleanup criteria:
PRs created within the last month are not affected by this cleanup. If you believe this PR was closed incorrectly, or if you are still actively working on it, please leave a comment explaining why it should be reopened. A maintainer can review and reopen it if appropriate. Thanks again for taking the time to contribute. |
A pasted [Pasted ~N lines] placeholder in the prompt can now be expanded to its full content and collapsed back -- click it, or run "Expand/collapse pasted text" (prompt.paste.toggle) from the palette or a keybind. Ported from upstream anomalyco#8501 (325 reactions -- the highest of any issue found across a full survey of this repo's open issues). A trivial 1-file fix already merged upstream as anomalyco#39920 isn't even on this fork's history and is a one-way, no-collapse expand anyway, not the real ask. Richer attempts were all closed by the automated PR-cleanup bot and never reviewed: - PR anomalyco#41813 "paste expand toggle" is the primary source: a pasted- text part remembers its original placeholder so it can collapse again, the chip is swapped by deleting its extmark, replacing the selected text, and recreating the extmark over the new text. - PR anomalyco#33700 fixed a real, separate bug reused as-is: expandPastedTextPlaceholders substituted text back in via String.replace(str, str2), which treats $&/$$/etc. in the pasted text as special replacement patterns and silently corrupts it -- fixed by passing a replacer function instead of a literal string. - PR anomalyco#37052 contributed only the idea of a palette command to expand chips (its own version was one-way, expand-all); this fork's version is a proper per-chip toggle. New: older saved prompts with no stored placeholder can still be expanded (anomalyco#41813's version would lock them collapsed-only). Two pure functions (togglePastedText, replaceVirtualExtmarkText) were extracted into packages/tui/src/prompt/part.ts so anomalyco#41813's logic is unit- testable outside the full Prompt component. Known gaps: the full Prompt component's mouse-click path has no automated test (no existing fixture mounts it with SDK/sync/route providers -- checked manually against a bare textarea instead); clicking a chip's very last character can miss the same way it does in anomalyco#41813; an expanded chip is viewable but not editable in place. New tests in packages/tui/test/prompt/part.test.ts and a new packages/tui/test/prompt/paste-toggle.test.tsx (using this repo's existing testRender/mockMouse helpers). Verified against this fork's current dev (not just the agent's own stale worktree base): bun typecheck clean; full packages/tui suite 215 pass. Co-Authored-By: Claude Sonnet 5 <[email protected]>
Issue for this PR
#8501
Type of change
What does this PR do?
Pasted text can be toggled between placeholder and full text by mouse click.
How did you verify your code works?
Manually tested
Screenshots / recordings
Before:

After:

Checklist