github / github/copilot-cli

Ctrl+G should expand paste tokens to full text in $EDITOR (Claude Code parity)

Abierto
#3,936 1 comentario 1 reacción 0 asignados Ver en GitHub
area:input-keyboard
Lenguaje dominante
Shell
Estrellas
11.2k
Forks
1.9k
Merge medio
14 h 16 min
PR fusionados (30 d)
6

Descripción

### 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.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Lee el handler de Ctrl+G y la ruta existente de expansión de tokens en la app.js incluida. Reproduce un pegado compacto, abre $EDITOR y verifica que los paste tokens se conviertan en su texto completo en el editor y que el contenido editado vuelva al flujo de composición. Se considera terminado cuando varios paste tokens, incluido contenido pegado guardado, se procesen mediante este workflow.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
javascript
Área
cli, developer-experience
Tipo de issue
Nueva funcionalidad
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
68/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.