stdlib-js / stdlib-js/stdlib

[RFC]: add support for displaying suggested corrections in the REPL

Open
#2,058 0 comments 0 reactions 0 assignees View on GitHub
difficulty: 3 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 support for displaying suggested corrections in the REPL when a user enters an identifier which does not exist. This functionality would be similar to what is offered by Julia and discussed in https://github.com/JuliaLang/julia/issues/28347.

For example, currently, when a user enters an undefined identifier

```
In [1]: base.abbs( -1.0 )
Error: base.abbs is not a function
```

This RFC proposes extending this to do something along the lines of

```
In [1]: base.abbs( -1.0 )
Error: base.abbs is not a function

Perhaps you meant base.abs, base.abs2, ...
```

There may be other UI options, and we could, similar to Julia, provide suggestions when a user provides an unknown name to `help()` (or other similar built-in REPL commands).

### Related Issues

No.

### Questions

No.

### Other

No.

### 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

Research direction

Start by reviewing the REPL behavior described in this RFC and the linked Julia discussion. The proposal does not identify files, tests, or a settled UI; scope would need to be clarified before implementation. Done would mean agreeing on and implementing a way to suggest corrections for undefined identifiers, with possible support for unknown names passed to help().

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.