stdlib-js / stdlib-js/stdlib

[RFC]: add a `search` API to the REPL

Đang mở
#2,059 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
difficulty: 3 Enhancement JavaScript Needs Discussion priority: Normal REPL RFC
Ngôn ngữ chính
JavaScript
Star
6k
Fork
1.3k
Merge trung bình
1 ngày 3 giờ
Pull request đã merge (30 ngày)
611

Mô tả

### Description

This RFC proposes adding built-in support for searching within the stdlib REPL environment. Something along the lines of

```
In [1]: search( 'absolute value' )

```

While the REPL supports TAB completion, including the display of potential matches, one still has to know, more or less, where to find things, which can be difficult due to the use of namespaces (e.g., `base`, `base.strided`, `random`, etc).

In short, it can be hard to find the REPL function you want to use. This RFC proposes reducing that barrier by building in search capabilities to the REPL.

### Related Issues

No.

### Questions

- Should search be fuzzy? Probably. If someone types `'abolute value'`, we shouldn't return zero results because the user misspelled `absolute`.
- Prior art: https://github.com/farzher/fuzzysort
- What should be returned? We may want modes/flags that allow users to specify what they want to return. E.g., REPL aliases, package names, etc.

### Other

- We have some prior art for this in the project. Namely, for the API documentation website we use https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/_tools/search/pkg-index for generating the search index. We could potentially leverage that for building a similar idea, and may be beneficial to write our own TF-IDF package.
- As search would be built into the REPL, we'd need to create our own search implementation, as currently we rely on `lunr` as a dev dep and making a non-dev-dep is not desired, as we try to minimize any and all production dependencies.

### 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:`.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

This is an RFC rather than an implementation task and does not name a REPL source file or test. Start by locating the stdlib REPL entry point and reading lib/node_modules/@stdlib/_tools/search/pkg-index, which the issue identifies as prior art. Done would require settling the search behavior, result modes, fuzzy matching, and dependency strategy before implementation.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
javascript
Lĩnh vực
cli
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
25/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.