Skip to content

Improve REPL interface #50

Closed
Closed
@nathanielc

Description

@nathanielc

Some feedback we received about the REPL:

Autocomplete uses TAB instead of ENTER, this UX causes users to frequently submit partially typed queries.

The only way to quit the REPL is to send EOF (Ctrl-D), this was confusing to most users, perhaps using SIGINT (Ctrl-C) when the input line is empty should quit. We want to preserve SIGINT for canceling running queries so making it also quit will require understanding that state.

There is no way to input multiple lines. Since the Flux language naturally prefers multiple lines we need a convenient way to input multiple lines. Perhaps a SHIFT-ENTER submits the query, and a normal ENTER just adds a new line? This should also play nice with yield.

The hidden behavior of run was confusing, some feedback was to change the behavior of the REPL and execute queries if there was no variable assignment. This way yield remains implicit in most cases. This would remove the need to have a run method as simply entering the identifier of a saved query would run it. If you are building up a query then use variable assignment or multi-line input methods.

We should probably use a real readline backend for the REPL so both vim and emacs bindings can exist as is expected by users.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions