Re:Launch HN: Fig (YC S20) – Autocomplete for the Terminal
by mschrage on Tuesday May 25, 2021 @11:31AM
(#27278160)
This is something we definitely should add as a fallback when a Fig completion spec doesn't exist!
The reason we created our own standard is because traditional shell autocomplete doesn't always provide metadata, like descriptions, priority or icons. Also it is a little tricky to write by hand, unless you're pretty familiar with shell scripting.
Re:Launch HN: Fig (YC S20) – Autocomplete for the Terminal
by verdverm on Tuesday May 25, 2021 @12:52PM
(#27279219)
Many CLI libraries provide the ability to generate auto-completion scripts. Cobra for Golang is an excellent example. It provides functions for all the major shells and is quite simple to add to any Go CLI using the library. It also supports dynamic calls for when someone wants to autocomplete on a resource known only to the running CLI.
For python argparse, there is argcomplete in the same vein
Re:Launch HN: Fig (YC S20) – Autocomplete for the Terminal
by mschrage on Tuesday May 25, 2021 @01:20PM
(#27279593)
We're building out integrations with CLI libraries like cobra and oclif[0], so you can generate a Fig completion spec automatically the same way!
Then it just comes down to the Fig popover UX.
Re:Launch HN: Fig (YC S20) – Autocomplete for the Terminal
by verdverm on Tuesday May 25, 2021 @05:04PM
(#27282640)
Does Fig then need to mirror autocomplete for any command which wants to make use of the popover UX?
(one of the reasons I would not want this tool, colors and file extensions are sufficient for types, no need for icons, popups, and yet another tool)
Re:Launch HN: Fig (YC S20) – Autocomplete for the Terminal
by stackbeard on Friday May 28, 2021 @08:30AM
(#27314578)
I have this in my zshrc. Hopefully it is helpful to others:
# tab completion
setopt hash_list_all
# https://stackoverflow.com/a/14900496/8514646
bindkey '^i' expand-or-complete-prefix
# by category
# https://old.reddit.com/r/zsh/comments/6l797o/organizing_co mpletions_by_category/
# https://github.com/sorinionescu/prezto/blob/master/modules/completion/init.zsh#L60
zstyle ':completion:*:*:*:*:*' menu select
zstyle ':completion:*:matches' group 'yes'
zstyle ':completion:*:options' description 'yes'
zstyle ':completion:*:options' auto-description '%d'
zstyle ':completion:*:corrections' format ' %F{green}-- %d (errors: %e) --%f'
zstyle ':completion:*:descriptions' format ' %F{yellow}-- %d --%f'
zstyle ':completion:*:messages' format ' %F{purple} -- %d -- %f'
zstyle ':completion:*:warnings' format ' %F{red}-- no matches found --%f'
zstyle ':completion:*:default' list-prompt '%S%M matches%s'
zstyle ':completion:*' format ' %F{yellow}-- %d --%f'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' verbose yes
`
My first thought is why not use built-in shell autocompletion functions instead of redefining them in JS?
Zsh completions are super powerful: https://github.com/zsh-users/zsh-completions/blob/master/zsh...
Typing `git a<TAB>` yields this in my terminal:
(btw, broken link at the bottom of this page: https://fig.io/docs/getting-started - https://fig.io/concepts/dynamic-suggestions should be https://fig.io/docs/concepts/dynamic-suggestions)