Re: Re: [PATCH] _git: don't treat URI schemes as scp-style remotes

LY <[email protected]> Wed, 15 Jul 2026 10:26:14 +0800
Newsgroups gmane.comp.shells.zsh.devel
Message-ID <[email protected]>
Oh, I agree that this approach is a better solution. Thank you for your 
work and looking forward to the update!

On 7/15/26 9:59 AM, dana wrote:
> On Tue 14 Jul 2026, at 19:39, LY wrote:
>> +    # Completing the host part: do not offer a bare URI scheme as an scp host.
>> +    [[ $PREFIX == (#i)(http|https|ftp|ftps|git|ssh|file) ]] && return 1
> this prevents it from completing a host like 'github.com'
>
> i had started working on a re-design of _urls that would help here but
> we'll have to see if i can focus on one thing long enough to finish it
>
> in the mean time, there are lots of options, but maybe more like this?
>
> dana
>
>
> diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git
> index c4ed3c3e9..9d522362a 100644
> --- a/Completion/Unix/Command/_git
> +++ b/Completion/Unix/Command/_git
> @@ -8137,10 +8137,20 @@ __git_tree_files () {
>   
>   (( $+functions[__git_remote_repositories] )) ||
>   __git_remote_repositories () {
> -  if compset -P '*:'; then
> +  if compset -P ssh://; then
> +    if compset -P 1 '*/'; then
> +      _remote_files -h ${${${IPREFIX#*//}#*@}%/} -W / -/ -- ssh
> +    else
> +      compset -P '*@'
> +      _ssh_hosts -r/ -S/
> +    fi
> +  elif [[ $PREFIX == *://* ]]; then
> +    _urls
> +  elif compset -P '*:'; then
>       _remote_files -/ -- ssh
>     else
> -    _ssh_hosts -S:
> +    compset -P '*@'
> +    _ssh_hosts -r: -S:
>     fi
>   }
>