Ctrl+G should expand paste tokens to full text in $EDITOR (Claude Code parity)
- Langage dominant
- Shell
- Étoiles
- 11.2k
- Forks
- 1.9k
- Merge moyen
- 14 h 16 min
- PR mergées (30 j)
- 6
Description
### Describe the feature or problem you'd like to solve
When `compactPaste` is enabled (the default), pasting a large block collapses it in the compose box to a token like `[Paste #N - X lines]`. Pressing **Ctrl+G** ("edit prompt in `$EDITOR`") writes that **literal token** to the temp file, so I can't see or edit the actual pasted content in my external editor — I only see the placeholder. This is especially painful when using dictation software: I paste a long prompt and want to review/edit it in my editor before sending.
For comparison, Claude Code keeps the compact representation in the prompt box but expands it to the **full text** when you open the external editor.
### Proposed solution
When opening the prompt in `$EDITOR` via Ctrl+G, expand any paste tokens (`[Paste #N - X lines]` and `[Saved pasted content to workspace (...) id=N]`) to their full underlying text before writing the temp file. On save, ideally re-collapse the content back into tokens (or simply keep whatever text the user left).
This gives the best of both: a clean, compact compose box **and** a fully editable prompt in the external editor.
Today it's all-or-nothing via the `compactPaste` setting:
- `compactPaste: true` → compact box, but Ctrl+G shows only the token.
- `compactPaste: false` → Ctrl+G shows full text, but the box is no longer compact.
There's no way to get compact-in-box **and** full-text-in-editor at the same time.
### Example prompts or workflows
1. Dictate a 40-line prompt with speech-to-text, paste it (shows as `[Paste #1 - 40 lines]`), press Ctrl+G, and edit the full text in my editor before sending.
2. Paste a long log / stack trace, collapse it for a tidy box, then Ctrl+G to trim it down in `$EDITOR`.
3. Paste several large snippets (multiple tokens), open Ctrl+G once, and review / reorder them all as full text.
4. Compose a long multi-paragraph instruction across several pastes, then do a final full-text review in Vim / VS Code via Ctrl+G.
### Additional context
Observed in **v1.0.65** on **Windows (arm64)** with `EDITOR=notepad`.
From the bundled `app.js`, the Ctrl+G handler passes the raw compose-box buffer (with tokens) directly to the editor:
```js
// Ctrl+G handler
let cr = () => ot(Gn.text).then(({ content }) => Gn.setText(content));
```
The token-expansion function exists but is only invoked at **submit** time (replacing `[Paste #N]` with the in-memory text and `[Saved pasted content ...]` with a `` reference). It is not called — and isn't in scope — at the Ctrl+G handler. Routing Ctrl+G's input through that same expander would deliver this feature.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Lisez le handler de Ctrl+G et le chemin existant d’expansion des tokens dans l’app.js incluse. Reproduisez un collage compact, ouvrez $EDITOR et vérifiez que les paste tokens deviennent leur texte complet dans l’éditeur et que le contenu modifié retourne dans le flux de composition. Le travail est terminé lorsque plusieurs paste tokens, y compris du contenu collé enregistré, sont pris en charge via ce workflow.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript
- Domaine
- cli, developer-experience
- Type d'issue
- Fonctionnalité
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 68/100