Skip to content

Discussion: will reedline become a full-fledged "text editor?" #853

@Jasha10

Description

@Jasha10

This issue is to discuss direction and scope of reedline's "text editor" and "IDE" features.

The goal of PR #670 was "allowing the user to press "jk" (without modifiers) to move from Vi insert mode to Vi normal mode." In that PR, @benvansleen said:

Achieving this with the existing keybindings section would require implementing something akin to emacs key-chords (since you press one key, release, then press the next). That would be a much, much wider-reaching change.

This seems related to the question of "how many full-fledged text editor features should be added to reedline?" Heavy-duty text editors like vim essentially allow the user to configure a state machine where a given keypress will have a different effect depending on the current state. (For example, the keypress 'k' would have a different effect depending on if the user is in "insert" mode or "normal" mode, and also depending on whether the 'k' immediately followed a 'j'.)

Does it make sense for reedline to move in the above direction (implementing a user-configurable state machine)? Related are questions regarding how many other "text editor" features should be included (e.g. vim allows for user-configurable callbacks, plugins, keymaps to trigger system calls or perform arbitrary turing-complete logic, etc).

I think it could be helpful to discuss vision for how far reedline will move in the direction of becoming a "text editor" / "IDE." Having a vision for this will help to ensure that:

  • new features are added in a manner that's consistent with overall vision for user experience, and
  • the implementation decisions made in adding new features will not be counterproductive to progress on other planned features.

Related:

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions