Readline Command Completion
Readline lets you specify a character to append to the end of the string after command completion has succeeded (i.e. a space after a matched command or a '/' after a matched directory). In the command completion proc, I'm providing an array comprised of available commands in the application as well as a list of possible directories given the string provided (i.e. Dir[str + '*']). Thus, depending on what the string is determined to be (a command, a directory, or a file), I'd like to assign either a space or a '/' as the append character.
The easiest way I see to do this is to be able to provide a proc to the Readline.completion_append_character variable rather than a string, and have the completed command string passed to the proc. This way, one can determine if the string is a command, a directory, or a file and return the appropriate append string. I would provide a patch, but I'm not a solid enough C coder to even attempt this... sorry!
#4 [ruby-core:44777] Updated by kouji (Kouji Takao) almost 6 years ago
- Status changed from Assigned to Rejected
Sorry, late reply.
I'm going to implement Readline.pre_input_hook, Readline.insert_text and Readline.redisplay. These are wrapper for rl_pre_input_hook, rl_insert_text and rl_redisplay.
So I think you will be able to implement a proc which you want.
So, I closed this issue.