Project

General

Profile

Actions

Bug #3167

closed

RDoc issues in interactive mode

Added by Eregon (Benoit Daloze) almost 14 years ago. Updated almost 13 years ago.

Status:
Closed
Target version:
ruby -v:
-
Backport:
[ruby-core:29601]

Description

=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
String
[description of String]
gsu => no completion
but String#gsu works
That's a small matter, I agree.

  1. 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.

  2. 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?)

  3. completion of ::<class_method> seem to not work in some cases like File::open and even 'File.<*>'

Regards,
B.D.
=end

Actions #1

Updated by mame (Yusuke Endoh) almost 14 years ago

=begin
Hi, Eric Hodel

Could you take a look at this ticket?

Benoit Daloze,

I have never used ri interactive mode, so I cannot determine whether
each issue you said is compatibility problem or new feature request.

They are all compatibility problems, right? IOW, did the recent
change break the behavior you had expected?

--
Yusuke Endoh
=end

Actions #2

Updated by Eregon (Benoit Daloze) almost 14 years ago

=begin
Hi,
On 11 May 2010 14:52, Yusuke Endoh wrote:

Hi, Eric Hodel

Could you take a look at this ticket?

Benoit Daloze,

I have never used ri interactive mode, so I cannot determine whether
each issue you said is compatibility problem or new feature request.

They are all compatibility problems, right?  IOW, did the recent
change break the behavior you had expected?

Yusuke Endoh

Eric Hodel knows about these bugs, I spoke of it with him.

They are compatibility problems,
because it behaved better about these few problems before.

But, I think it is clearly not an emergency,
and globally, ri (in interactive mode or not) has been improved.

So target could probably be changed to 1.9.x

Regards,
B.D.

=end

Actions #3

Updated by Eregon (Benoit Daloze) almost 14 years ago

=begin
Hi,
On 11 May 2010 14:52, Yusuke Endoh wrote:

Hi, Eric Hodel

Could you take a look at this ticket?

Benoit Daloze,

I have never used ri interactive mode, so I cannot determine whether
each issue you said is compatibility problem or new feature request.

They are all compatibility problems, right? IOW, did the recent
change break the behavior you had expected?

Yusuke Endoh

Eric Hodel knows about these bugs, I spoke of it with him.

They are compatibility problems,
because it behaved better about these few problems before.

But, I think it is clearly not an emergency,
and globally, ri (in interactive mode or not) has been improved.

So target could probably be changed to 1.9.x

Regards,
B.D.

=end

Actions #4

Updated by Eregon (Benoit Daloze) almost 14 years ago

=begin
Hi,
On 11 May 2010 14:52, Yusuke Endoh wrote:

Hi, Eric Hodel

Could you take a look at this ticket?

Benoit Daloze,

I have never used ri interactive mode, so I cannot determine whether
each issue you said is compatibility problem or new feature request.

They are all compatibility problems, right?  IOW, did the recent
change break the behavior you had expected?

Yusuke Endoh

Eric Hodel knows about these bugs, I spoke of it with him.

They are compatibility problems,
because it behaved better about these few problems before.

But, I think it is clearly not an emergency,
and globally, ri (in interactive mode or not) has been improved.

So target could probably be changed to 1.9.x

Regards,
B.D.

=end

Actions #5

Updated by mame (Yusuke Endoh) almost 14 years ago

  • Target version changed from 1.9.2 to 2.0.0

=begin
Hi,

2010/5/12 Benoit Daloze :

Eric Hodel knows about these bugs, I spoke of it with him.

They are compatibility problems,
because it behaved better about these few problems before.

But, I think it is clearly not an emergency,
and globally, ri (in interactive mode or not) has been improved.

So target could probably be changed to 1.9.x

Thank you for letting me know. I change the target.

--
Yusuke Endoh
=end

Actions #6

Updated by shyouhei (Shyouhei Urabe) over 13 years ago

  • Status changed from Open to Assigned

=begin

=end

Updated by drbrain (Eric Hodel) almost 13 years ago

I don't think I can fix 2) as it's performed by Readline

  1. is fixed in rdoc trunk

Updated by drbrain (Eric Hodel) almost 13 years ago

  • Status changed from Assigned to Closed
  1. is fixed in RDoc trunk

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

Updated by Eregon (Benoit Daloze) almost 13 years ago

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.

  1. 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.

  1. is fixed in rdoc trunk
  2. 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.

Updated by drbrain (Eric Hodel) almost 13 years ago

  • ruby -v changed from ruby 1.9.2dev (2010-01-14 trunk 26319) [x86_64-darwin10.3.0] to -

On May 18, 2011, at 7:56 AM, Benoit Daloze 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.

I thought you meant the method list shown when you attempt to complete a method definition by hitting at the Readline prompt.

  1. 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(', '))

Ah, ok!

How about a comma-separated output when given to a user ($stdout is a TTY or rdoc is sending output to a pager) and a newline-separated list when output is not given to a user (rdoc blah | grep)?

Updated by Eregon (Benoit Daloze) almost 13 years ago

On 18 May 2011 22:42, Eric Hodel wrote:

Ah, ok!

How about a comma-separated output when given to a user ($stdout is a TTY or rdoc is sending output to a pager) and a newline-separated list when output is not given to a user (rdoc blah | grep)?

Sure, that's the best.
And it obviously better fits the unix philosophy.

Sorry to answer late.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0