From: Fionn Date: Sun, 04 Oct 2026 16:17:04 GMT Subject: Re: [PATCH] completion: exclude previous file arguments in Zsh Message-ID: In-Reply-To: > "existing arguments" of what? Of a subcommand that takes paths. > I don't do Zsh, but that 2 as index looks suspicious. Fair to be suspicious. word[1] is the subcommand (e.g. "add"), so we index from 2 on in order to skip it. This is independent of where the subcommand appears in the entire command line. > What will be excluded in the following command line: > > git -C dir -C subdir -c foo.bar=baz add file1 file2 > > I think we should exclude only those arguments that come after the git > command, in this case after "add", i.e. "file1" and "file2", but I > suspect that everything starting with "dir" will get excluded. In my testing this works correctly (i.e. file1 and file2 are not offered as completion candidates any more, but if e.g. dir or foo exist in the subdirectory, they would be offered). I've been dogfooding this for about 8 months on and off. Occasionally completion candidates I'd hope would be excluded are present, but this is because the fallback completion bypasses __gitcomp_file, which is a separate issue. I have not yet encountered completion candidates being unexpectedly excluded. An easy way to test this is to link git-completion.zsh to _git and then add fpath=(/path/to/directory/containing/_git/file $fpath[@]) to ~/.zshrc, or similar.