Repository navigation
Add fuzzy/camel-case completion matching - #695
Draft
omatheusmesmo wants to merge 1 commit into
Draft
omatheusmesmo wants to merge 1 commit into
omatheusmesmo wants to merge 1 commit into
Conversation
Tab completion only matches exact prefixes, so typos like comit and camelCase abbreviations like gCI find nothing. When prefix matching returns no candidates, the typed word is fuzzy-matched against command, subcommand, and long option names with the fzf-based scorer shipped in aesh-readline, ranked by score. Single matches replace the typed word using the new replacingCurrentWord completion flag, so this requires aesh-readline 3.18.8. Enabled by default via SettingsBuilder.fuzzyCompletion; runtimes built without settings, including dynamic shell completion, are unaffected. * Closes aeshell#510 Signed-off-by: Matheus Oliveira <matheus.6148@gmail.com>
omatheusmesmo
force-pushed
the
feat/fuzzy-camel-case-completion
branch
from
October 30, 2026 16:22
f87b130 to
669baf0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Describe Changes
Tab completion only matches exact prefixes today, so a typo like
comitor a camelCase abbreviation likegCIfinds nothing. This adds a fuzzy fallback that runs only when prefix matching returns no candidates: the typed word is scored against command, subcommand, and long option names with the fzf-based matcher already shipped in aesh-readline (FuzzyScheme.DEFAULT, case-insensitive, minimum input length of two), and the matches are ranked by score.A single match replaces the typed word through the new
replacingCurrentWordcompletion flag from aesh-readline 3.18.8, which this change requires; multiple matches are listed without common-prefix insertion. The fallback is enabled by default and configurable throughSettingsBuilder.fuzzyCompletion. Dynamic shell completion (--aesh-complete) is unaffected because those runtimes are built without settings and never enable it.