Hello, looking for a page that describes the program flow for recognizing valid commands, for instance Vi commands
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 30/100
- Issue type
- Documentation
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- csharp
- Domain
- cli, documentation
Research direction
Start by tracing the mentioned InputLoop() and ProcessOneKey() entry points, then follow _dispatchTable and the handlers it selects. Document where Vi command state and transitions are represented, if present, and how a keypress reaches a handler. Done means a newcomer can use the page to locate the relevant code when adding or investigating a Vi command.
Written by the indexing model from the issue text.
Description
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
- Dominant language
- C#
- Stars
- 4.4k
- Forks
- 341
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from PowerShell/PSReadLine
-
Needs-Triage :mag:
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
PowerShell/PSReadLine#5205 ·
-
Needs-Triage :mag:
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
PowerShell/PSReadLine#5195 ·
-
Needs-Triage :mag:
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
PowerShell/PSReadLine#5121 ·
-
Needs-Triage :mag:
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
PowerShell/PSReadLine#5045 ·
-
Area-CommandHelp Issue-Enhancement
Difficulty 1/5 Under an hour Newbie friendliness 68/100
PowerShell/PSReadLine#3470 · 3 reactions ·
All issues in PowerShell/PSReadLine
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
nightscout/nocturne#1425 ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Documentation
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
cake-build/cake#5024 ·
-
Frontend status/draft TechnicalDebt
Difficulty 2/5 1-2 days Newbie friendliness 75/100
Altinn/altinn-auth#4143 ·