From 2f25a5037c21a34ea1dadca8b61781f79c3cbe41 Mon Sep 17 00:00:00 2001 From: Vadim Demedes Date: Mon, 24 Apr 2023 12:55:12 +0300 Subject: [PATCH] Add escapes for entering/exiting the alternative screen (#33) --- index.d.ts | 10 ++++++++++ index.js | 3 +++ index.test-d.ts | 2 ++ readme.md | 8 ++++++++ 4 files changed, 23 insertions(+) diff --git a/index.d.ts b/index.d.ts index c7f7ef0..34d9bb5 100644 --- a/index.d.ts +++ b/index.d.ts @@ -199,6 +199,16 @@ declare const ansiEscapes: { */ clearTerminal: string; + /** + Enter the [alternative screen](https://terminalguide.namepad.de/mode/p47/). + */ + enterAlternativeScreen: string; + + /** + Exit the [alternative screen](https://terminalguide.namepad.de/mode/p47/), assuming `enterAlternativeScreen` was called before. + */ + exitAlternativeScreen: string; + /** Output a beeping sound. */ diff --git a/index.js b/index.js index 9307dfc..1495e31 100644 --- a/index.js +++ b/index.js @@ -97,6 +97,9 @@ ansiEscapes.clearTerminal = isWindows // More info: https://www.real-world-systems.com/docs/ANSIcode.html : `${ansiEscapes.eraseScreen}${ESC}3J${ESC}H`; +ansiEscapes.enterAlternativeScreen = ESC + '?1049h'; +ansiEscapes.exitAlternativeScreen = ESC + '?1049l'; + ansiEscapes.beep = BEL; ansiEscapes.link = (text, url) => [ diff --git a/index.test-d.ts b/index.test-d.ts index f5e6ee1..a16be90 100644 --- a/index.test-d.ts +++ b/index.test-d.ts @@ -33,6 +33,8 @@ expectType(ansiEscapes.scrollUp); expectType(ansiEscapes.scrollDown); expectType(ansiEscapes.clearScreen); expectType(ansiEscapes.clearTerminal); +expectType(ansiEscapes.enterAlternativeScreen); +expectType(ansiEscapes.exitAlternativeScreen); expectType(ansiEscapes.beep); expectType(ansiEscapes.link('foo', 'https://foo.bar')); expectType(ansiEscapes.image(Buffer.from('1'))); diff --git a/readme.md b/readme.md index 30f73e7..c684ee4 100644 --- a/readme.md +++ b/readme.md @@ -134,6 +134,14 @@ Clear the terminal screen. (Viewport) Clear the whole terminal, including scrollback buffer. (Not just the visible part of it) +### enterAlternativeScreen + +Enter the [alternative screen](https://terminalguide.namepad.de/mode/p47/). + +### exitAlternativeScreen + +Exit the [alternative screen](https://terminalguide.namepad.de/mode/p47/), assuming `enterAlternativeScreen` was called before. + ### beep Output a beeping sound.