completion_proc=(proc)
[permalink][rdoc][edit]-
ユーザからの入力を補完する時の候補を取得する Proc オブジェクト proc を指定します。 proc は、次のものを想定しています。
- callメソッドを持つ。callメソッドを持たない場合、例外 ArgumentError を発生します。
- 引数にユーザからの入力文字列を取る。
- 候補の文字列の配列を返す。
「/var/lib /v」の後で補完を行うと、デフォルトでは proc の引数に「/v」が渡されます。このように、ユーザが入力した文字列を Readline.completer_word_break_characters に含まれる文字で区切ったものを単語とすると、カーソルがある単語の最初の文字から現在のカーソル位置までの文字列が proc の引数に渡されます。
- [PARAM] proc:
- ユーザからの入力を補完する時の候補を取得する Proc オブジェクトを指定します。 nil を指定した場合はデフォルトの動作になります。
例: foo、foobar、foobazを補完する。
require 'readline' WORDS = %w(foo foobar foobaz) Readline.completion_proc = proc {|word| WORDS.grep(/\A#{Regexp.quote word}/) } while buf = Readline.readline("> ") print "-> ", buf, "\n" end
[SEE_ALSO] Readline.completion_proc