Skip to content

Hello, looking for a page that describes the program flow for recognizing valid commands, for instance Vi commands #5070

@AltitudeApps

Description

@AltitudeApps

Prerequisites

  • Write a descriptive title.

Description of the new feature/enhancement

Sorry for creating an issue, but I don't know where else to ask or look. Happy to take direction.

I have made it as far as finding the entry point for accepting keypresses, in InputLoop() and ProcessOneKey() . But then things get really fuzzy for me. Something to do with _dispatchTable .

If I squint really hard, I can talk myself into believing that I can understand what the dispatch table is: an appropriate dictionary gets loaded such that the application can look up the next step for execution (the handler), where the appropriate handler is retrieved based on which key has just been pressed.

Is there some sort of formal data structure that records the state of the Vi 'finite state machine', so to speak? Or are these things handled implicitly in an ad-hoc way within they myriad handlers?

Motivation: I'm interested in enhancing or expanding the number of Vi commands that PSReadLine will recognize. I can no longer remember which command(s) I was expecting to be present but that I found were missing. But now my attention is returning to this, and I'd like to be able to at least suggest a fix, rather than just complain. But I'm completely snowed at this point. Maybe I'm closer than I think, but at this point it's not feeling like I have any grasp on where to look next.

Proposed technical implementation details (optional)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue-EnhancementIt's a feature request.Needs-Triage 🔍It's a new issue that core contributor team needs to triage.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions