Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Luna REPL #366

Closed
iamrecursion opened this issue Mar 2, 2019 · 0 comments
Closed

Luna REPL #366

iamrecursion opened this issue Mar 2, 2019 · 0 comments
Assignees
Labels
--breaking Important: a change that will break a public API or user-facing behaviour -tooling Category: tooling

Comments

@iamrecursion
Copy link
Contributor

Summary

As part of our vision for proper interactive editing in Luna, we want to provide a REPL where users can experiment with code and evaluate snippets as part of development. It should be available from the command line, as well as inside Luna Studio (though potentially hidden), and should support some sensible subset of the IDE protocol to allow for a good interactive editing experience. This includes support for easy debugging.

Value

Luna currently lacks functionality to enable a properly interactive editing experience. While we have the live evaluation on the graph in Luna Studio, this is a limited set of actions required of an interactive experience. Implementing a REPL and associated debugging functionality for Luna programs would expand it to be a usable interactive editing experience.

Specification

The design and implementation for the REPL must support the following functionality.

  • Embeddable: It must be possible to embed the REPL via sockets (or other methods) inside an editor that has support for terminal buffers.
  • Interactive Editing: It should support a relevant subset of the IDE Protocol, including: get type, hole fits, show documentation, get completion, and debugging.
  • Highlighting: When in a terminal with support for highlighting, the REPL should use the semantic highlighting from the IDE protocol. It should, however, have the option to operate without colours.
  • Debugging: The REPL should support interactive debugging, using the functionality for it exposed by the IDE protocol.

Acceptance Criteria & Test Cases

  • Luna has a REPL (luna repl), which supports all of the above functionality.
  • The REPL is embeddable without much effort.
@iamrecursion iamrecursion added T - Enhancement -tooling Category: tooling --breaking Important: a change that will break a public API or user-facing behaviour labels Mar 2, 2019
@iamrecursion iamrecursion self-assigned this Mar 2, 2019
@joenash joenash closed this as completed Jun 23, 2020
This was referenced Jun 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
--breaking Important: a change that will break a public API or user-facing behaviour -tooling Category: tooling
Projects
None yet
Development

No branches or pull requests

2 participants