Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 18 additions & 3 deletions internal/cmd/completion_scripts.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,24 @@ complete -F _gog_complete gog
func zshCompletionScript() string {
return `#compdef gog

autoload -Uz bashcompinit
bashcompinit
` + bashCompletionScript()
_gog() {
local -a args completions

args=("${(@)words[1,CURRENT]}")
if (( CURRENT > ${#words} )); then
args+=("")
fi

completions=("${(@f)$(gog __complete --cword "$((${#args[@]} - 1))" -- "${args[@]}" 2>/dev/null)}")
if (( ${#completions[@]} == 0 )); then
return 1
fi

compadd -Q -S '' -- "${completions[@]}"
}

compdef _gog gog
`
}

func fishCompletionScript() string {
Expand Down
2 changes: 1 addition & 1 deletion internal/cmd/completion_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
func TestCompletionCmd(t *testing.T) {
cases := map[string]string{
"bash": "complete -F _gog_complete gog",
"zsh": "bashcompinit",
"zsh": "compdef _gog gog",
"fish": "complete -c gog",
"powershell": "Register-ArgumentCompleter",
}
Expand Down