Pager output validation #
This disposable issue provides enough human-readable content to verify paging,
scrolling, wrapping, ANSI styling, and clean terminal restoration in the
development build of tng.
Expected behavior #
Run the issue view command with less configured as the pager. The first
screen should appear immediately. The pager should accept keyboard input,
allow forward and backward navigation, support searching, and return control
to the shell after quitting.
The following interactions should work:
- Press
Spaceto move forward one screen. - Press
bto move backward one screen. - Type
/terminaland press Return to search for the word “terminal”. - Press
nto move to the next search result. - Press
gto return to the beginning. - Press
Gto move to the end. - Press
qto quit and restore the shell prompt.
Rendering samples #
Human-readable terminal output should preserve the structure of headings, paragraphs, emphasis, lists, tables, and code blocks. Long prose such as this paragraph should wrap according to the detected terminal width without truncating words, corrupting Unicode text, or leaking terminal control sequences into subsequent shell output.
Japanese text should also wrap naturally: この文章は日本語の折り返しと表示幅を確認するためのサンプルです。端末の幅を狭くした場合でも、内容が欠落せず、ページャー内で読み進められることを確認します。
Emoji and symbols should remain visible: 🧶 🚀 ✅ ⚠️ → ← ↑ ↓.
| Case | Expected result | Status |
|---|---|---|
| Initial display | Content appears without hanging | Ready |
| Forward paging | Space moves to the next screen | Ready |
| Backward paging | b returns to the previous screen |
Ready |
| Search | /terminal highlights matching text |
Ready |
| Quit | q restores the shell prompt |
Ready |
| Narrow terminal | Text wraps without clipping | Ready |
| Wide terminal | Markdown remains readable | Ready |
| Unicode | CJK and emoji remain intact | Ready |
Command examples #
TNG_PAGER='less -R' .build/debug/tng issue view ISSUE_AT_URI
PAGER='less -R' .build/debug/tng issue view ISSUE_AT_URI
TNG_PAGER=cat .build/debug/tng issue view ISSUE_AT_URI
TNG_FORCE_TTY=100 TNG_PAGER='less -R' .build/debug/tng issue view ISSUE_AT_URI
Additional scrolling content #
- Line 01 verifies that the pager has content beyond the first screen.
- Line 02 verifies that repeated navigation does not terminate the CLI.
- Line 03 verifies that the terminal remains responsive while paging.
- Line 04 verifies that the pager receives the complete UTF-8 payload.
- Line 05 verifies that output is not duplicated across screen boundaries.
- Line 06 verifies that ANSI styling does not damage Markdown text.
- Line 07 verifies that terminal width affects wrapping predictably.
- Line 08 verifies that searching works after moving between screens.
- Line 09 verifies that moving to the beginning remains responsive.
- Line 10 verifies that moving to the end remains responsive.
- Line 11 verifies that backward paging retains earlier content.
- Line 12 verifies that forward paging eventually reaches this section.
- Line 13 verifies that a quit operation returns success to
tng. - Line 14 verifies that the shell prompt remains usable after quitting.
- Line 15 verifies that a second invocation can start a fresh pager.
- Line 16 verifies that environment variables reach the pager command.
- Line 17 verifies that quoted pager arguments are interpreted by the shell.
- Line 18 verifies that redirected output bypasses the pager by default.
- Line 19 verifies that forced terminal output can opt back into paging.
- Line 20 verifies that JSON output remains outside the paging path.
- Line 21 verifies that list output remains outside the paging path.
- Line 22 verifies that raw output remains outside the paging path.
- Line 23 verifies that binary output remains outside the paging path.
- Line 24 verifies that streaming output remains outside the paging path.
- Line 25 verifies that an early pager exit does not report a broken pipe.
- Line 26 verifies that a failing pager reports a stable diagnostic.
- Line 27 verifies that
TNG_PAGERtakes precedence overPAGER. - Line 28 verifies that
catkeeps direct terminal output. - Line 29 verifies that missing pager configuration keeps direct output.
- Line 30 marks the end of the scrolling validation content.
Completion criteria #
The validation is complete when the content can be navigated in both
directions, searched, and dismissed with q, after which the terminal accepts
another command normally.