Issue #3167 has been updated by Benoit Daloze.


Eric Hodel wrote:
> I don't think I can fix 2) as it's performed by Readline

I believed it is not related to Readline, I probably did not make myself clear.

>> 2) methods should be a comma separated list in interactive mode
>> because the current output is very long and verbose and make you scroll a lot to see the class description
>> The separation of the methods depending from which 'gem' it comes is really useful and should be kept.

When you type 'String' in `ri -i`, you get the class description, then a very long list of methods, because they are displayed one by line. I remember they were displayed as a comma separated list.

I did begin to write about this, here is the idea of it:

diff --git a/lib/rdoc/ri/driver.rb b/lib/rdoc/ri/driver.rb
@@ -456,9 +456,7 @@
     out << RDoc::Markup::Heading.new(1, "#{name}:")
     out << RDoc::Markup::BlankLine.new

-    out.push(*methods.map do |method|
-      RDoc::Markup::Verbatim.new method
-    end)
+    out << RDoc::Markup::Paragraph.new(methods.join(', '))

I used a custom IndentedParagraph class, instead of simple Paragraph, to get 2 spaces of indentation.
I think this is worth to change.

From what I wrote, the second part was about separating methods by their origin (which gem,stdlib,core).
That is probably not necessary anymore, as the origin is shown when you ask the method documentation.

> 3) is fixed in rdoc trunk
> 4) is fixed in RDoc trunk

Neat !

> I don't think I wish to implement 1) at this time, it would involve building a very large and complex object graph

Indeed, this is probably not a good idea, although it could be useful.
----------------------------------------
Bug #3167: RDoc issues in interactive mode
http://redmine.ruby-lang.org/issues/3167

Author: Benoit Daloze
Status: Closed
Priority: Normal
Assignee: Eric Hodel
Category: DOC
Target version: 1.9.x
ruby -v: ruby 1.9.2dev (2010-01-14 trunk 26319) [x86_64-darwin10.3.0]


=begin
 Recently, rdoc has changed a lot the interface.
 While there is a lot of improvement, I'd like to report these issues:
 
 1) completion with methods does not work when in interactive mode and typed a class (you need to type again the class or type it yourself(so no completion))
 > ri -i
 > Stri<tab>ng
 [description of String]
 > gsu<tab> => no completion
 > but String#gsu<tab> works
 That's a small matter, I agree.
 
 2) methods should be a comma separated list in interactive mode
 because the current output is very long and verbose and make you scroll a lot to see the class description
 The separation of the methods depending from which 'gem' it comes is really useful and should be kept.
 
 3) when you happen to type something bad (like 'Array[' or 'Array#['), it crash (understandable) but it also freeze my terminal.
 ctrl+c get a new prompt, but I am unable to type.
 If you type entirely, it works nicely: 'Array<#|.>[]' for the instance method, 'Array::[]' for the class.
 (Shouldn't '.' try to resolve first to class methods, because :: is longer, and not working so good currently?)
 
 4) completion of <Class>::<class_method> seem to not work in some cases like File::open and even 'File.<*>'
 
 Regards,
 B.D.
=end



-- 
http://redmine.ruby-lang.org