* lib/optparse.rb (OptionParser::Completion::complete): allow least
common completion for three or more candidates. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
2d3a489f6d
commit
bc94ec8f4c
@ -1,3 +1,8 @@
|
|||||||
|
Mon Nov 17 10:50:27 2003 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* lib/optparse.rb (OptionParser::Completion::complete): allow least
|
||||||
|
common completion for three or more candidates.
|
||||||
|
|
||||||
Mon Nov 17 09:41:38 2003 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
|
Mon Nov 17 09:41:38 2003 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
|
||||||
|
|
||||||
* lib/test/unit/ui/tk/testrunner.rb,
|
* lib/test/unit/ui/tk/testrunner.rb,
|
||||||
|
@ -83,6 +83,7 @@ Keyword completion module.
|
|||||||
pat ||= Regexp.new('\A' + Regexp.quote(key).gsub(/\w+(?=.)/, '\&\w*'),
|
pat ||= Regexp.new('\A' + Regexp.quote(key).gsub(/\w+(?=.)/, '\&\w*'),
|
||||||
ignore_case?)
|
ignore_case?)
|
||||||
canon, sw, k, v, cn = nil
|
canon, sw, k, v, cn = nil
|
||||||
|
candidates = []
|
||||||
each do |k, *v|
|
each do |k, *v|
|
||||||
(if Regexp === k
|
(if Regexp === k
|
||||||
kn = nil
|
kn = nil
|
||||||
@ -92,14 +93,20 @@ Keyword completion module.
|
|||||||
pat === kn
|
pat === kn
|
||||||
end) or next
|
end) or next
|
||||||
v << k if v.empty?
|
v << k if v.empty?
|
||||||
if !canon
|
candidates << [k, v, kn]
|
||||||
canon, sw, cn = k, v, kn
|
end
|
||||||
elsif sw != v
|
candidates = candidates.sort_by {|k, v, kn| kn.size}
|
||||||
|
if candidates.size == 1
|
||||||
|
canon, sw, * = candidates[0]
|
||||||
|
elsif candidates.size > 1
|
||||||
|
canon, sw, cn = candidates.shift
|
||||||
|
candidates.each do |k, v, kn|
|
||||||
|
next if sw == v
|
||||||
if String === cn and String === kn
|
if String === cn and String === kn
|
||||||
if cn.rindex(kn, 0)
|
if cn.rindex(kn, 0)
|
||||||
canon, sw, cn = k, v, kn
|
canon, sw, cn = k, v, kn
|
||||||
next
|
next
|
||||||
elsif kn.rindex(canon, 0)
|
elsif kn.rindex(cn, 0)
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user