diff options
| author | keiju <keiju@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-07-19 14:18:20 +0000 |
|---|---|---|
| committer | keiju <keiju@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-07-19 14:18:20 +0000 |
| commit | 8cddb3dfeabe083c32736686d727d9c0a02c0c82 (patch) | |
| tree | 29b3fdcf425364d36122ca149b122226d9e1e8f0 /lib | |
| parent | 38e43ab1b9801f8be6c8dddadf620c5d68ce246d (diff) | |
| download | ruby-8cddb3dfeabe083c32736686d727d9c0a02c0c82.tar.gz ruby-8cddb3dfeabe083c32736686d727d9c0a02c0c82.tar.xz ruby-8cddb3dfeabe083c32736686d727d9c0a02c0c82.zip | |
* lib/irb/completion.rb: support for completion of numeric
number. [ruby-dev: 29038]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@10568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/irb/completion.rb | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/lib/irb/completion.rb b/lib/irb/completion.rb index 6211817f2..000658e2a 100644 --- a/lib/irb/completion.rb +++ b/lib/irb/completion.rb @@ -99,15 +99,27 @@ module IRB candidates = Symbol.instance_methods(true) select_message(receiver, message, candidates) - when /^([0-9_]+(\.[0-9_]+)?(e[0-9]+)?)\.([^.]*)$/ + when /^(-?(0[dbo])?[0-9_]+(\.[0-9_]+)?([eE]-?[0-9]+)?)\.([^.]*)$/ # Numeric receiver = $1 - message = Regexp.quote($4) + message = Regexp.quote($5) + + begin + candidates = eval(receiver, bind).methods + rescue Exception + candidates = [] + end + select_message(receiver, message, candidates) + + when /^(-?0x[0-9a-fA-F_]+)\.([^.]*)$/ + # Numeric(0xFFFF) + receiver = $1 + message = Regexp.quote($2) begin candidates = eval(receiver, bind).methods rescue Exception - candidates + candidates = [] end select_message(receiver, message, candidates) @@ -138,7 +150,11 @@ module IRB # func1.func2 candidates = [] ObjectSpace.each_object(Module){|m| - name = m.name rescue "" + begin + name = m.name + rescue Exception + name = "" + end next if name != "IRB::Context" and /^(IRB|SLex|RubyLex|RubyToken)/ =~ name candidates.concat m.instance_methods(false) |
