Overview of Rebel Readline purpose and design
masterRebel Readline is designed to provide an enhanced terminal-based readline experience specifically for Clojure programmers. Its primary goal is to facilitate a fluid interactive programming workflow (such as inline-eval) for newcomers and for developers in situations where a full editor-REPL setup is unavailable (e.g., debugging live systems via a spartan terminal).
Key Design Priorities
- Minimal Dependencies: Maintains a shallow dependency tree. It uses JLine to handle cross-platform terminal manipulation.
- Clojure-Centric UX: Leverages S-expressions (sexps) to provide superior text manipulation compared to standard readline libraries.
- Non-Intrusive: Does not interfere with the input stream when not actively reading a line.
- Separation of Concerns: The library manages input/readline but is not responsible for REPL output, though it can provide utilities like querying or redisplaying the last line with error pointers.
- Extensibility: Follows an Emacs-like philosophy where behavior is open and customizable, allowing users to programmatically modify or opt-in to features like
paredit.