我有一个 Ruby 应用程序,它使用 readline 和命令完成。
在输入第一个字符串(命令)后,我希望能够完成它的参数。参数列表应基于所选命令。
有人有一个简单的例子吗?
这些是命令:
COMMANDS = [
'collect', 'watch'
].sort
COLLECT = [
'stuff', 'otherstuff'
].sort
comp = proc do |s|
COMMANDS.grep( /^#{Regexp.escape(s)}/ )
end
Readline.completion_proc = comp
每次按TAB时,都会执行 proc 块并COMMANDS
匹配来自数组的命令。在其中一个命令完全匹配后,我想开始仅在COLLECT
数组中搜索参数。