diff options
author | keiju <keiju@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-09 12:28:00 +0000 |
---|---|---|
committer | keiju <keiju@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-09 12:28:00 +0000 |
commit | c13142643d846b3805296babf81f81791378122d (patch) | |
tree | 329b075cf9fd50d3cdf5bea2b8c88e299c9db31c | |
parent | 8a3c3b9c95955bba7f143c44136a043568d88b94 (diff) |
* lib/irb/completion.rb (CompletionProc): irb will be stuck with
long variable name at copletion. [Bug#1969]. refix [ruby-core:28366].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | lib/irb/completion.rb | 9 |
2 files changed, 11 insertions, 3 deletions
@@ -1,3 +1,8 @@ +Fri Apr 9 21:22:10 2010 Keiju Ishitsuka <[email protected]> + + * lib/irb/completion.rb (CompletionProc): irb will be stuck with + long variable name at copletion. [Bug#1969]. refix [ruby-core:28366]. + Fri Apr 9 20:54:10 2010 NARUSE, Yui <[email protected]> * lib/uri/common.rb (decode_www_form): don't ignore leading '?'. diff --git a/lib/irb/completion.rb b/lib/irb/completion.rb index 6ba168e813..a345c23af7 100644 --- a/lib/irb/completion.rb +++ b/lib/irb/completion.rb @@ -80,7 +80,8 @@ module IRB candidates = Object.constants.collect{|m| m.to_s} candidates.grep(/^#{receiver}/).collect{|e| "::" + e} - when /^(((::)?[A-Z][^:.\(]*)+)::?([^:.]*)$/ +# when /^(((::)?[A-Z][^:.\(]*)+)::?([^:.]*)$/ + when /^([A-Z].*)::([^:.]+)*$/ # Constant or class methods receiver = $1 message = Regexp.quote($4) @@ -129,7 +130,8 @@ module IRB candidates = global_variables.collect{|m| m.to_s}.grep(regmessage) # when /^(\$?(\.?[^.]+)+)\.([^.]*)$/ - when /^((\.?[^.]+)+)\.([^.]*)$/ +# when /^((\.?[^.]+)+)\.([^.]*)$/ + when /^([^."].*)\.([^.]*)$/ # variable receiver = $1 message = Regexp.quote($3) @@ -138,7 +140,8 @@ module IRB lv = eval("local_variables", bind).collect{|m| m.to_s} cv = eval("self.class.constants", bind).collect{|m| m.to_s} - if (gv | lv | cv).include?(receiver) || /^[A-Z]/ =~ receiver and /\./ !~ receiver + if (gv | lv | cv).include?(receiver) or /^[A-Z]/ =~ receiver && /\./ !~ receiver + # foo.func and foo is local var. OR # Foo::Bar.func begin candidates = eval("#{receiver}.methods", bind).collect{|m| m.to_s} |