On 5/25/18 1:42 PM, Luca Boccassi wrote: >> There is already logic that determines whether the shell is trying to >> complete a command word (in_command_position). The existing code does >> not attempt programmable completion if in_command_position == 1. The >> additional functionality would: >> >> 1. Add an option to the complete builtin to specify how to complete >> command names, and store it in a specially-named compspec, like >> completion for empty lines does. >> >> 2. Add code to invoke that completion, if it exists and programmable >> completion is active, before attempting bash's default completion, >> if in_command_position == 1. >> >> Chet > > Hi, > > Thanks for the guidance! Unfortunately I'm still not quite there yet - > inlined are the changes based on my understanding of the above. It > implements a "usercmd/-U" option similar to the existing -E for empty > line. > > But at the moment all it does is to allow (via "complete -U -F foo") to > complete when nothing is typed in, which seemed to be possible already > with -E. If some characters are already typed in, it will still do the > default completion to commands in the PATH. > > What have I missed?
You should make sure you don't add your code in the section with the rest of the programmable completions, since that block is not entered if in_command_position != 0. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU c...@case.edu http://tiswww.cwru.edu/~chet/