fix(tui): expand paste markers when opening external editor (#444)

* fix(tui): expand paste markers when opening external editor

Add getExpandedText() method to Editor that substitutes paste markers
with actual content. Use it in Ctrl-G external editor flow so users
see full pasted content instead of [paste #N ...] placeholders.

* docs: add changelog entries for #444
This commit is contained in:
Aliou Diallo 2026-01-04 18:11:42 +01:00 committed by GitHub
parent 6ddfd1be13
commit 0d477d39f9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 20 additions and 1 deletions

View file

@ -2,6 +2,10 @@
## [Unreleased]
### Added
- `Editor.getExpandedText()` method that returns text with paste markers expanded to their actual content ([#444](https://github.com/badlogic/pi-mono/pull/444) by [@aliou](https://github.com/aliou))
## [0.33.0] - 2026-01-04
### Breaking Changes

View file

@ -696,6 +696,19 @@ export class Editor implements Component {
return this.state.lines.join("\n");
}
/**
* Get text with paste markers expanded to their actual content.
* Use this when you need the full content (e.g., for external editor).
*/
getExpandedText(): string {
let result = this.state.lines.join("\n");
for (const [pasteId, pasteContent] of this.pastes) {
const markerRegex = new RegExp(`\\[paste #${pasteId}( (\\+\\d+ lines|\\d+ chars))?\\]`, "g");
result = result.replace(markerRegex, pasteContent);
}
return result;
}
getLines(): string[] {
return [...this.state.lines];
}