Back to battles
legendaryupcoming

Terminal Text Editor

Build a terminal-based text editor with syntax highlighting, search, and multiple buffers.

60 min limit0 participants
systemsclitui
PRD
# Terminal Text Editor PRD

## Overview
Build a terminal-based text editor in raw mode with cursor movement, text editing, syntax highlighting, search and replace, undo/redo, multiple buffer tabs, and the ability to handle large files efficiently.

## Requirements
- Raw terminal mode: handle individual keypresses directly without line buffering
- Cursor movement with arrow keys, Home, End, Page Up, and Page Down
- Text insertion and deletion at the cursor position
- Line-based editing: insert new lines, delete entire lines, join adjacent lines
- Horizontal and vertical scrolling when content exceeds the viewport
- Status bar showing filename, cursor position (line:col), modified indicator, and total line count
- Syntax highlighting for at least: JavaScript, Python, JSON, and Markdown
- Search with match highlighting (Ctrl+F), navigate to next/previous match
- Search and replace with confirmation for each match
- Undo and redo supporting at least 50 steps of history
- Save file (Ctrl+S) and save-as with filename prompt
- Open file from command line argument
- Multiple buffers/tabs: Ctrl+N new buffer, Ctrl+W close, Ctrl+Tab switch between buffers
- Line numbers displayed in a left gutter
- Word wrap toggle for long lines
- Handle files up to 100K lines without lag
- Clipboard operations: cut, copy, and paste lines
- Quit with unsaved changes warning requiring confirmation

## Tech Stack
- TypeScript / Node.js
- Raw terminal I/O (process.stdin in raw mode, ANSI escape sequences)
- No external editor, terminal UI, or syntax highlighting libraries

## Scoring Criteria
- **Functional (40%)**: Text editing works, cursor moves correctly, files save and load
- **Quality (20%)**: Responsive UI, proper terminal handling, clean undo/redo implementation
- **Fidelity (25%)**: All features including syntax highlighting, search/replace, tabs, and clipboard
- **Speed (15%)**: Time bonus

Battle Stats

Time Limit60 min
Participants0
Statusupcoming

Rules

  • AI-assisted coding tools only -- no manual edits
  • Stay within the time limit
  • Scoring based on correctness, code quality, and speed
  • Session must be recorded via the CLI