mirror of
https://github.com/beetbox/beets.git
synced 2025-12-06 00:24:25 +01:00
Roll back zsh completion to 9dc7995
See #2266. The recently introduced caching mechanism is nifty, but it's causing problems for many users. We're rolling it back until the author can get to the bottom of the problem.
This commit is contained in:
parent
8e03f9f7b2
commit
46e242b2b9
1 changed files with 15 additions and 30 deletions
45
extra/_beet
45
extra/_beet
|
|
@ -2,24 +2,19 @@
|
|||
|
||||
# zsh completion for beets music library manager and MusicBrainz tagger: http://beets.radbox.org/
|
||||
|
||||
# IMPORTANT: You need to change the $completionsdir variable defined below to point to the directory where your completion files
|
||||
# are stored.
|
||||
# It will be very slow the first time you try to complete in a zsh shell (especially if you've enable many plugins),
|
||||
# but a cache file (_beet_cached) will be created after the first completion which will make subsequent calls much
|
||||
# faster.
|
||||
# If you enable new plugins or fields you should update the cache file by deleting it, entering the following commands:
|
||||
# unfunction _beet
|
||||
# autoload -z _beet
|
||||
# and then performing another completion in a new shell.
|
||||
|
||||
# If cache file exists, use that
|
||||
local completionsdir="$HOME/.oh-my-zsh/custom/completions"
|
||||
local cachefile=$completionsdir/_beet_cached
|
||||
if [[ -r "$cachefile" ]]; then
|
||||
source "$cachefile"
|
||||
_beet "$@"
|
||||
return
|
||||
fi
|
||||
# NOTE: it will be very slow the first time you try to complete in a zsh shell (especially if you've enable many plugins)
|
||||
# You can make it faster in future by creating a cached version:
|
||||
# 1) perform a query completion with this file (_beet), e.g. do: beet list artist:"<TAB>
|
||||
# to create the completion function (takes a few seconds)
|
||||
# 2) save a copy of the completion function: which _beet > _beet_cached
|
||||
# 3) save a copy of the query completion function: which _beet_query > _beet_query_cached
|
||||
# 4) copy the contents of _beet_query_cached to the top of _beet_cached
|
||||
# 5) copy and paste the _beet_field_values function from _beet to the top of _beet_cached
|
||||
# 6) add the following line to the top of _beet_cached: #compdef beet
|
||||
# 7) add the following line to the bottom of _beet_cached: _beet "$@"
|
||||
# 8) save _beet_cached to your completions directory (e.g. /usr/share/zsh/functions/Completion)
|
||||
# 9) add the following line to your .zshrc file: compdef _beet_cached beet
|
||||
# You will need to repeat this proceedure each time you enable new plugins if you want them to complete properly.
|
||||
|
||||
# useful: argument to _regex_arguments for matching any word
|
||||
local matchany=/$'[^\0]##\0'/
|
||||
|
|
@ -73,7 +68,8 @@ queryelem="_values -S : 'query field (add an extra : to match by regexp)' '::' $
|
|||
# store call to _values function for completing modify terms (no need to complete field values)
|
||||
modifyelem="_values -S = 'modify field (replace = with ! to remove field)' $(echo "'${^fields[@]}:: '")"
|
||||
# Create completion function for queries
|
||||
_regex_arguments _beet_query "$matchany" \# \( "$matchquery" ":query:query string:$queryelem" \) \( "$matchquery" ":query:query string:$queryelem" \) \#
|
||||
_regex_arguments _beet_query "$matchany" \# \( "$matchquery" ":query:query string:$queryelem" \) \
|
||||
\( "$matchquery" ":query:query string:$queryelem" \) \#
|
||||
# store regexps for completing lists of queries and modifications
|
||||
local -a query modify
|
||||
query=( \( "$matchquery" ":query:query string:{_beet_query}" \) \( "$matchquery" ":query:query string:{_beet_query}" \) \# )
|
||||
|
|
@ -265,17 +261,6 @@ _regex_arguments _beet "$matchany" \( "${globalopts[@]}" \# \) "${subcmds[@]}"
|
|||
# Set tag-order so that options are completed separately from arguments
|
||||
zstyle ":completion:${curcontext}:" tag-order '! options'
|
||||
|
||||
# Save completion functions to _beet_cached
|
||||
echo "# Cached completion file for beet\n# Note: this was created from _beet, and should be regenerated when new fields or plugins are added.\n# To regenerate this file just delete it, open a new zshell and try completing beet.\n\n" > $cachefile
|
||||
which _beet_field_values >> $cachefile
|
||||
echo "\n\n" >> $cachefile
|
||||
which _beet_query >> $cachefile
|
||||
echo "\n\n" >> $cachefile
|
||||
which _beet >> $cachefile
|
||||
echo "\n\n" >> $cachefile
|
||||
echo zstyle \":completion:\${curcontext}:\" tag-order \'! options\' >> $cachefile
|
||||
echo "\n\n_beet \"\$@\"\n" >> $cachefile
|
||||
|
||||
# Execute the completion function
|
||||
_beet "$@"
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue