Elijah Newren <newren@xxxxxxxxx> writes: > ... If our > guide is merely what the command swallows, then we should forgo > completion for these subcommands, because it's not possible to > enumerate all possible completions. I am not sure if I follow. I do not think it makes sense to aim for enumerating EVERYTHING the command would accept. But I do not know that is the same as "merely what the command swallows". > I don't think that's a useful guide or starting point, so we > instead need to discuss what are reasonable completions. I do not think it is a good idea to refrain from suggesting anything that has a possibility of being wring, either, though. If a path that is not a directory (either because it is a file in the current checkout, or because it is a directory only in a different branch) is given, it might not make sense in the cone-mode for the current checkout, but it may well make sense when a different branch is checked out. Or you may not even in the cone-mode, and in which case, as SZEDER suggested, a single filename may perfectly make sense. A user who said READM<TAB> and does not see it completed to README.md would be quite confused. Are we limiting ourselves to directories only when we know we are in the cone-mode and showing both directories and files otherwise? I think the guiding principle ought to be that we show completion that - is cheap enough to compute in interactive use (e.g. we should refrain from looking for directories in all possible branches, but instead just look at the working tree and possibly in the index), - is simple enough to explain to the users to understand what the rules are, and - gives useful enough candidates. "We only look for directories (without going recursive) in the working tree" does satisfy the first two, but I am not sure it is more useful than "We show files and directories (without going recursive) in the working tree", which also satisfies the first two. Of course, if the completion limits to directories only in a repository in the cone-mode, I would not worry about the exclusion of non-directories will confuse users.