fzf-tab icon indicating copy to clipboard operation
fzf-tab copied to clipboard

[BUG] completion is mess when _describe use alternative array

Open HIDE-r opened this issue 2 years ago • 4 comments

Describe the bug

A clear and concise description of what the bug is.

I can make sure:

  • [x] I am using the latest version of fzf-tab
  • [x] this is the minimal zshrc which can reproduce this bug
  • [x] fzf-tab is loaded after compinit
  • [ ] fzf-tab is loaded after plugins which will wrap Tab, like junegunn/fzf/completion.zsh
  • [ ] fzf-tab is loaded before zsh-autosuggestions, zsh-syntax-highlighting and fast-syntax-highlighting.

To Reproduce

Steps to reproduce the behavior:

  1. Type 'cmd '
  2. Press Tab
  3. See error
Lenovo-R9000K% cat $HOME/test_zshrc
fpath=($HOME/.fpath $fpath)

autoload -U compinit; compinit
source ~/somewhere/fzf-tab.plugin.zsh
Lenovo-R9000K% cat $HOME/.fpath/_cmd
#compdef cmd

local -a subcmds topics
subcmds=('c:description for c command' 'd:description for d command')
# topics=('e:description for e help topic' 'f:description for f help topic')
topics=('c:description for c command' 'd:description for d command')
_describe 'command' subcmds topics
❯ git clone https://github.com/Aloxaf/fzf-tab ~/somewhere
❯ zsh -d -f
Lenovo-R9000K% source test_zshrc
Lenovo-R9000K% cmd c:description\ for\ c\ command 

asciicast

Expected behavior

There should be no extra characters('description\ for\ c\ command')

Screenshots

If applicable, add screenshots to help explain your problem.

Environment:

  • OS: Arch Linux
  • zsh version: 5.9 (x86_64-pc-linux-gnu)

Minimal zshrc

Lenovo-R9000K% cat $HOME/test_zshrc
fpath=($HOME/.fpath $fpath)

autoload -U compinit; compinit
source ~/somewhere/fzf-tab.plugin.zsh

Log

zsh-48936-fzf-tab-1.log

HIDE-r avatar Mar 25 '24 17:03 HIDE-r

This bug can be reproduced without fzf-tab:

> autoload -U compinit; compinit
_tst() {
    local -a subcmds topics
    subcmds=('c:description for c command' 'd:description for d command')
    topics=('c:description for c command' 'd:description for d command')
    _describe 'command' subcmds topics
}
compdef _tst tst
zstyle ':completion:*' menu yes select search
zstyle ':completion:*' list-grouped false

> tst # press tab here

Quite strange, it may be a bug of _describe or compsys.

Aloxaf avatar Mar 26 '24 07:03 Aloxaf

Maybe. It looks strange. What should I do about this issue next? report to zsh?

HIDE-r avatar Mar 27 '24 01:03 HIDE-r

I am not sure, this seems to be a known issue:

https://github.com/zsh-users/zsh/blob/master/Completion/Base/Utility/_describe#L3-L8

Aloxaf avatar Apr 01 '24 09:04 Aloxaf

Temporary workaround for anyone encountering this problem:

zstyle ':completion:*:complete:networkctl:*' list-grouped true

Aloxaf avatar Apr 24 '24 00:04 Aloxaf