Эй, ребята, я боролся с автодополнение и Readline, если у меня есть множество вариантов, как это:автозаполнение строки, начинающиеся с @ (в знак) с Readline в Руби
["@lorem", "@ipsum", "#bla", "#meh"]
и я в приглашении поставить @ (в знак) и нажмите TAB показывает все варианты:
what do you want? > @[TAB]
@lorem @ipsum #bla #meh
, но если я использую любой другой знак это работает:
what do you want? > #[TAB]
#bla #meh
Это код, который я до сих пор:
opts = ["@lorem", "@ipsum", "#bla", "#meh"]
question = "whatever? > "
Readline.completion_append_character = " "
Readline.completion_proc = proc { |s| opts.grep(/^#{Regexp.escape(s)}/) }
while value = Readline.readline(question, true)
exit if value == 'q'
puts value.chomp.strip
end
end
Кто-нибудь знает, как я могу сделать Readline осведомлен о @ s?
Можете ли вы показать нам, что код, который вы до сих пор? –
Я только что обновил сообщение с кодом, спасибо. – raf