# swaybar(1) completion

_swaybar()
{
  local cur prev short long
  _get_comp_words_by_ref cur prev

  short=(
    -h
    -v
    -s
    -b
    -d
  )

  long=(
    --help
    --version
    --socket
    --bar_id
    --debug
  )

  case $prev in
    -s|--socket)
      _filedir
      return
      ;;
    -b|--bar_id)
      bars=($(swaymsg -t get_bar_config | jq -r '.[]'))
      COMPREPLY=($(compgen -W "${bars[*]}" -- "$cur"))
      return
      ;;
  esac

  if [[ $cur == --* ]]; then
    COMPREPLY=($(compgen -W "${long[*]}" -- "$cur"))
  else
    COMPREPLY=($(compgen -W "${short[*]}" -- "$cur"))
    COMPREPLY+=($(compgen -W "${long[*]}" -- "$cur"))
  fi

} &&
complete -F _swaybar swaybar