Skip to content

No operations in until will be handled after an EditCommand #644

@101313

Description

@101313

Describe the bug

This has showed up in a couple of occasions already, if I understand correctly this is incorrect behavior, please correct me if I'm wrong.

{
            name: move_to_line_end_or_take_history_hint
            modifier: control
            keycode: char_e
            mode: [emacs, vi_normal, vi_insert]
            event: {
                until: [
                    {send: historyhintcomplete}
                    {edit: movetolineend}
                    {send: openeditor} #TODO find out why this doesn't work
                ]
            }
        }

For instance, it should reach the third case when pressing ctrl+e on an empty buffer but it does not.

Or, similar case:

{
            name: move_to_line_start
            modifier: control
            keycode: char_a
            mode: [emacs, vi_normal, vi_insert]
            event: {
              until: [
                {edit: movetolinestart}
                {edit: movetostart} #TODO find out why this doesn't work
              ]
            }
        }

When editing a multi-line command, hitting ctrl+a brings you to the beginning of the line, but all consequent invocations return true as well even if there is no actual action performed.

How to reproduce

Try any of the aforementioned keybindings.

Expected behavior

Upon reaching the beginning or end of the line, subsequent calls should return false instead of true.

Screenshots

No response

Configuration

key value
version 0.85.0
branch
commit_hash
build_os linux-aarch64
build_target aarch64-alpine-linux-musl
rust_version rustc 1.72.1 (d5c2e9c34 2023-09-13) (Alpine Linux 1.72.1-r0)
cargo_version cargo 1.72.1
build_time 2023-09-20 19:52:50 +00:00
build_rust_channel release
allocator mimalloc
features default, sqlite, trash, which, zip
installed_plugins

Additional context

I've considered opening the issue on the reedline repo instead but I wasn't sure. If that's a duplicate or its more appropriate to post it elsewhere, please let me know.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-EditOpsArea: core editing operations (shared between keybindings)A-KeybindingEmacsArea: Handling of default (Emacs style) keybindingsA-ViKeybindingArea: Vi(m) keybinding support

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions