diff --git a/.changeset/purple-lions-doubt.md b/.changeset/purple-lions-doubt.md new file mode 100644 index 0000000..3f83e4a --- /dev/null +++ b/.changeset/purple-lions-doubt.md @@ -0,0 +1,6 @@ +--- +'@clack/core': patch +'@clack/prompts': patch +--- + +Enable hard line-wrapping behavior for long words without spaces diff --git a/packages/core/src/prompts/prompt.ts b/packages/core/src/prompts/prompt.ts index 9e46104..6faeb87 100644 --- a/packages/core/src/prompts/prompt.ts +++ b/packages/core/src/prompts/prompt.ts @@ -205,15 +205,14 @@ export default class Prompt { this.unsubscribe(); } - // TODO: handle wrapping private restoreCursor() { - const lines = wrap(this._prevFrame, process.stdout.columns).split('\n').length - 1; + const lines = wrap(this._prevFrame, process.stdout.columns, { hard: true }).split('\n').length - 1; this.output.write(cursor.move(-999, lines * -1)); } private _prevFrame = ''; private render() { - const frame = wrap(this._render(this) ?? '', process.stdout.columns); + const frame = wrap(this._render(this) ?? '', process.stdout.columns, { hard: true }); if (frame === this._prevFrame) return; if (this.state === 'initial') {