[FEATURE] Plugins: allow noSelect on plugin Box/Text so decoration is not copied
Feature request: let plugins mark cells as not selectable (noSelect on plugin Box / Text)
Claude Code version: 2.1.296 (macOS)
What the plugin does
The af-QoL plugin draws rails, caps and an indent around each user prompt and each assistant answer. These are normal cells.
The problem
A mouse drag-select copies the plugin's decoration together with the text. One copied prompt row comes out like this:
┃ open the tracker on the side ┃
The engine trims trailing spaces, but the leading spaces and the rail glyphs stay in the clipboard.
What the engine already has
The engine has a "do not copy" mark and uses it for its own margins (for example the ⏺ in front of an answer).
What blocks a plugin today
- A plugin
BoxwithnoSelectfails:Box prop "noSelect" is not allowed. - A plugin can read a selection (
$.ui.selection()), but it cannot set one or filter what is copied. - The copy goes from the screen to the clipboard; no plugin hook sees it.
Request
Allow noSelect (or an equivalent prop) on plugin Box and Text, so a plugin can mark its decoration as not part of a copy.
Why it matters
Any plugin that draws a frame, rail or gutter makes copies dirty today. Our workaround is a copy button on each message, but a mouse drag still copies the decoration.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗