mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2025-12-12 15:34:50 +08:00
Fix case-insensitive partial completion matching (fixes #13412)
- Add case-insensitive matching to partial-word matchers - Fixes issue where 'search' doesn't match 'Anki-Search-Stats-Extended' - Uses 'r:|=*' (substring) not 'r:|?=**' (overly permissive) to prevent over-matching - Maintains 100% backward compatibility with existing completion behavior - Works in both default and HYPHEN_INSENSITIVE modes Tested with 35+ test cases covering: - Original issue scenarios - Backward compatibility (exact, prefix, suffix, substring matches) - Edge cases and random scenarios - Over-matching prevention - HYPHEN_INSENSITIVE mode
This commit is contained in:
parent
90a22b61e6
commit
7451631bce
@ -18,9 +18,9 @@ if [[ "$CASE_SENSITIVE" = true ]]; then
|
|||||||
zstyle ':completion:*' matcher-list 'r:|=*' 'l:|=* r:|=*'
|
zstyle ':completion:*' matcher-list 'r:|=*' 'l:|=* r:|=*'
|
||||||
else
|
else
|
||||||
if [[ "$HYPHEN_INSENSITIVE" = true ]]; then
|
if [[ "$HYPHEN_INSENSITIVE" = true ]]; then
|
||||||
zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]-_}={[:upper:][:lower:]_-}' 'r:|=*' 'l:|=* r:|=*'
|
zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]-_}={[:upper:][:lower:]_-}' 'r:|=* m:{[:lower:][:upper:]-_}={[:upper:][:lower:]_-}' 'l:|=* r:|=* m:{[:lower:][:upper:]-_}={[:upper:][:lower:]_-}'
|
||||||
else
|
else
|
||||||
zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|=*' 'l:|=* r:|=*'
|
zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'r:|=* m:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'l:|=* r:|=* m:{[:lower:][:upper:]}={[:upper:][:lower:]}'
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
unset CASE_SENSITIVE HYPHEN_INSENSITIVE
|
unset CASE_SENSITIVE HYPHEN_INSENSITIVE
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user