stdlib-js / stdlib-js/stdlib

[RFC]: add reverse-search support in the REPL

Open
#2,069 1 comment 0 reactions 0 assignees View on GitHub
difficulty: 4 Enhancement JavaScript Needs Discussion priority: Normal REPL RFC
Dominant language
JavaScript
Stars
6k
Forks
1.3k
Avg merge
1d 3h
Merged PRs (30d)
611

Description

### Description

This RFC proposes adding reverse search support in the REPL. The basic idea is to enable entering a search mode in order to more efficiently cycle through previous commands. Currently, in order to run a previous command, one must hit the UP arrow key until finding the command. This RFC proposes enabling a mode where you can filter history to more quickly find a matching command.

This behavior is currently enabled in the built-in Node.js REPL and matches that found in ZSH.

For references better explaining the expected behavior, see below.

### Related Issues

- General search API: https://github.com/stdlib-js/stdlib/issues/2059
- This RFC is related, but not the same. #2059 concerns searching for functionality and documentation, while this RFC concerns efficient previous command lookup.

### Questions

- How would multi-line commands be handled?

### Other

- Node.js: https://nodejs.org/api/repl.html#reverse-i-search
- https://github.com/nodejs/node/pull/24335
- https://github.com/nodejs/node/pull/31006
- Julia: https://docs.julialang.org/en/v1/stdlib/REPL/index.html#Search-modes-1

### Checklist

- [X] I have read and understood the [Code of Conduct](https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md).
- [X] Searched for existing issues and pull requests.
- [X] The issue name begins with `RFC:`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.