mattmc3 / zephyr

:wind_face: A Zsh framework as nice as a cool summer breeze
MIT License
128 stars 13 forks source link

completion not working correctly, returning unknown filename #20

Closed jathek closed 8 months ago

jathek commented 8 months ago

See below video. Tabbing to complete the filename "alias.cmd" somehow returns "alias.D" instead. The only plugin installed in antidote is mattmc3/zephyr path:plugins/completion. Happens in both current antidote versions from mattmc3 and getantidote.

https://github.com/mattmc3/zephyr @ https://github.com/mattmc3/zephyr/commit/c6c001dcf00eda378b2f21f37a2c53801b6fb20c antidote version 1.9.5 (90deef1) & antidote version 1.9.1 (0e21ff3) zsh version: zsh 5.9 (x86_64-pc-msys) OS: Microsoft Windows 10 Pro 10.0.19045 Terminal: Windows Terminal Preview 1.20.10572.0

.zshrc ```zsh # Zsh options setopt extended_glob # clone antidote if necessary [[ -d ${ZDOTDIR:-~}/.antidote ]] || git clone https://github.com/mattmc3/antidote ${ZDOTDIR:-~}/.antidote # https://github.com/getantidote/antidote is stable # change antidote home directory - default on windows is %LocalAppData%/antidote export ANTIDOTE_HOME=${ZDOTDIR:-~}/.antidote_home # set the name of the static .zsh plugins file antidote will generate zsh_plugins=${ZDOTDIR:-~}/.antidote.zsh_plugins.zsh # ensure you have a $zsh_plugins_list file where you can add plugins zsh_plugins_list=${zsh_plugins:r}_list.zsh [[ -f ${zsh_plugins_list} ]] || touch ${zsh_plugins_list} # source zstyles you might use with antidote [[ -e ${ZDOTDIR:-~}/.antidote.zstyles.zsh ]] && source ${ZDOTDIR:-~}/.antidote.zstyles.zsh # lazy-load antidote fpath+=(${ZDOTDIR:-~}/.antidote) autoload -Uz $fpath[-1]/antidote # generate static file in a subshell when $zsh_plugins_list is updated alias al="antidote bundle <${zsh_plugins_list} >|$zsh_plugins" if [[ ! $zsh_plugins -nt ${zsh_plugins_list} ]]; then (al) fi # source your static plugins file source $zsh_plugins PS1='%~ %% ' ```
.zsh_plugins.txt.zsh ```zsh mattmc3/zephyr path:plugins/completion ```
.zstyles ```zsh # friendly plugin directories - no 'https-COLON--SLASH--SLASH-github.com-SLASH-' zstyle ':antidote:bundle' use-friendly-names 'yes' # change default zsh_plugins.txt name zstyle ':antidote:bundle' file ${zsh_plugins:r}.txt.zsh ```

https://github.com/mattmc3/zephyr/assets/692914/e794f16f-a8e6-4595-88f7-a4a041653526

jathek commented 8 months ago

A bit of follow up: I tried switching to "sorin-ionescu/prezto path:modules/completion" and it had the same issue.

mattmc3 commented 8 months ago

Zephyr shamelessly uses Presto's completion zstyles as its base, and apparently there's a bug in this one:

zstyle ':completion:*' matcher-list 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'

I've pushed a fix.

jathek commented 8 months ago

I just updated to aef2b96 but the same thing seems to be happening.

Edit: And I'm not sure if it changes anything, but I noticed the commit message says "Fix completion on '.d' files". The file that's being auto-completed incorrectly to alias.D is named alias.cmd, not alias.doskey. So the problem is with '.*d' files, I think, not '.d\' files.