From d4255ef0d33b8365370518991bbd7bd09bae03e3 Mon Sep 17 00:00:00 2001 From: keiju Date: Wed, 19 Jul 2006 15:08:56 +0000 Subject: * lib/irb/completion.rb: support for completion of numeric number. [ruby-dev: 29038] git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@10572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ lib/irb/completion.rb | 24 ++++++++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4166692aa..90faa5426 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Thu Jul 20 00:06:29 2006 Keiju Ishitsuka + * lib/irb/completion.rb: support for completion of numeric + number. [ruby-dev: 29038] + Wed Jul 19 23:53:05 2006 Kouhei Sutou * lib/rss/parser.rb, lib/rss/utils.rb: added documents. diff --git a/lib/irb/completion.rb b/lib/irb/completion.rb index ac227fee9..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) @@ -137,8 +149,12 @@ module IRB else # func1.func2 candidates = [] - name = m.name rescue "" ObjectSpace.each_object(Module){|m| + 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) -- cgit