Skip to content

Add fuzzy/camel-case completion matching - #695

Draft
omatheusmesmo wants to merge 1 commit into
aeshell:masterfrom
omatheusmesmo:feat/fuzzy-camel-case-completion
Draft

omatheusmesmo wants to merge 1 commit into
aeshell:masterfrom
omatheusmesmo:feat/fuzzy-camel-case-completion

Conversation

@omatheusmesmo

@omatheusmesmo omatheusmesmo commented Oct 25, 2026 •

Copy link
Copy Markdown

Describe Changes

Tab completion only matches exact prefixes today, so a typo like comit or a camelCase abbreviation like gCI finds 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 replacingCurrentWord completion 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 through SettingsBuilder.fuzzyCompletion. Dynamic shell completion (--aesh-complete) is unaffected because those runtimes are built without settings and never enable it.


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
omatheusmesmo force-pushed the feat/fuzzy-camel-case-completion branch from f87b130 to 669baf0 Compare October 30, 2026 16:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fuzzy/camel-case completion matching

1 participant