[RFC]: add support for signature argument hints in the REPL #2065
Labels
difficulty: 3
Likely to be challenging but manageable.
Enhancement
Issue or pull request for enhancing existing functionality.
JavaScript
Issue involves or relates to JavaScript.
Needs Discussion
Needs further discussion.
priority: Normal
Normal priority concern or feature request.
REPL
Issue or pull request specific to the project REPL.
RFC
Request for comments. Feature requests and proposed changes.
Description
This RFC proposes adding support for signature argument hints in the REPL. The idea is to extend the preview completion functionality introduced in #1832 to display function and method signatures (i.e., parameter lists), similar to what modern IDEs support when leveraging TypeScript declarations and JSDoc comments.
Once a user types
foo(
, modern IDEs can read, e.g., TypeScript overloads to display parameter hints (e.g.,foo(<|> beep: string, boop?: number )
, where<|>
indicates the cursor. In this RFC, the proposal is that we should add similar support to the REPL where everything after the cursor would be greyed out text, similar to preview completions introduced in #1832. However, one key difference is that the signatures are purely to serve as hints; once a user begins typing a literal or identifier for a parameter, the hint for that parameter should disappear and normal TAB completion should be possible. After a user has finished and typed,
in the example above, we'd display another hint for the second parameter.We already have a database of signatures, as derived from TypeScript declarations (see https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/repl/signature). Currently, you can only see these signatures using the
info
command. In the REPL,will display a list of overloads and one line descriptions. We could potentially leverage the database to support signature argument hints.
Related Issues
Questions
No.
Other
No.
Checklist
RFC:
.The text was updated successfully, but these errors were encountered: