142 lines · 4.2 KB · Text
RawDownload
## This file is part of mpv.## mpv is free software; you can redistribute it and/or# modify it under the terms of the GNU Lesser General Public# License as published by the Free Software Foundation; either# version 2.1 of the License, or (at your option) any later version.## mpv is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU Lesser General Public License for more details.## You should have received a copy of the GNU Lesser General Public# License along with mpv.  If not, see <http://www.gnu.org/licenses/>.# _mpv_options(){  if [ -z ${_mpv_options_cache+x} ]; then    _mpv_options_cache=$(mpv --no-config --list-options)  fi  echo "$_mpv_options_cache"} _mpv_get_args(){  local doc=$(_mpv_options | grep -E "^\\s*$1\\s")  local partial="$2"  local type=$(echo "$doc" | awk '{print $2;}')   # We special-case profiles to ensure we read the config  if [ "$1" = "--show-profile" ]; then    type="ShowProfile"  elif [ "$1" = "--profile" ]; then    type="Profile"  fi   declare -a candidates  case $type in    String)      if echo "$doc" | grep -q '\[file\]' ; then        if [ "$cur" = '=' ]; then          # Without this, _filedir will try and complete files starting with '='          cur=""        fi        _filedir 2>/dev/null || COMPREPLY=($(compgen -f))        return 0      else        candidates=($(mpv --no-config $1=help | grep -v ':' | awk '{print $1;}'))        candidates+=("help")      fi      ;;    Flag)      candidates=("yes" "no" "help")      ;;    Choices:|Object)      candidates=($(mpv --no-config $1=help | grep -v ':' | awk '{print $1;}'))      candidates+=("help")      ;;    Image)      candidates=($(mpv --no-config $1=help))      candidates=("${candidates[@]:2}")      candidates+=("help")      ;;    Profile)      candidates=($(mpv $1=help | grep -v ':' | awk '{print $1;}'))      candidates+=("help")      ;;    ShowProfile)      candidates=($(mpv $1= | grep -v ':' | awk '{print $1;}'))      ;;    *)      # There are other categories; some of which we could do something smarter      # about, with enough work.      ;;  esac  COMPREPLY=($(compgen -W "${candidates[*]}" -- "${partial}"))  if [ ${#COMPREPLY[@]} -gt 1 ]; then    compopt -o nospace mpv  fi} # This regex detects special options where we don't want an '=' appended_mpv_special_regex='\s(Flag.*\[not in config files\]|Print)'_mpv_skip_regex='\sremoved \[deprecated\]' _mpv_regular_options(){  if [ -z ${_mpv_regular_options_cache+x} ]; then    _mpv_regular_options_cache=($(_mpv_options | grep -vE "$_mpv_skip_regex" | \      grep -vE "$_mpv_special_regex" | awk '{print "\\"$1;}' | grep '\--'))    _mpv_regular_options_cache="${_mpv_regular_options_cache[*]}"  fi  echo "$_mpv_regular_options_cache"} _mpv_special_options(){  if [ -z ${_mpv_special_options_cache+x} ]; then    _mpv_special_options_cache=($(_mpv_options | grep -vE "$_mpv_skip_regex" | \      grep -E "$_mpv_special_regex" | awk '{print "\\"$1;}' | grep '\--'))    _mpv_special_options_cache="${_mpv_special_options_cache[*]}"  fi  echo "$_mpv_special_options_cache"} _mpv(){  compopt +o nospace mpv   # _filedir requires the current candidate be in $cur  local cur=${COMP_WORDS[COMP_CWORD]}  local prev=${COMP_WORDS[((COMP_CWORD - 1))]}   if [ "$cur" = '=' ]; then     # If the current word is '=' then we are looking for an argument for the     # option specified by the previous word.    _mpv_get_args "$prev"  elif [ "$prev" = '=' ]; then    # If the previous word is '=' then we are completing an argument for the    # option specified by the word before the '='.    local prevprev=${COMP_WORDS[((COMP_CWORD - 2))]}    _mpv_get_args "$prevprev" "$cur"  else    case $cur in      -*)        COMPREPLY=($(compgen -W "$(_mpv_regular_options)" -S '=' -- "${cur}"))        local normal_count=${#COMPREPLY[@]}        COMPREPLY+=($(compgen -W "$(_mpv_special_options)" -- "${cur}"))        if [ $normal_count -gt 0 -o ${#COMPREPLY[@]} -gt 1 ]; then          compopt -o nospace mpv        fi        ;;      *)        _filedir 2>/dev/null || COMPREPLY=($(compgen -f))        ;;    esac  fi} complete -F _mpv mpv

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t