[前][次][番号順一覧][スレッド一覧]

ruby-changes:67334

From: aycabta <ko1@a...>
Date: Sun, 29 Aug 2021 20:31:19 +0900 (JST)
Subject: [ruby-changes:67334] 78f46e6576 (master): [ruby/reline] Show method or class doc correctly

https://git.ruby-lang.org/ruby.git/commit/?id=78f46e6576

From 78f46e65767563f0ec0dc6564901dcd7e99dc044 Mon Sep 17 00:00:00 2001
From: aycabta <aycabta@g...>
Date: Sat, 28 Aug 2021 01:53:43 +0900
Subject: [ruby/reline] Show method or class doc correctly

https://github.com/ruby/reline/commit/a505294f12
---
 lib/reline.rb | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/lib/reline.rb b/lib/reline.rb
index ddc4a06..fea0498 100644
--- a/lib/reline.rb
+++ b/lib/reline.rb
@@ -222,16 +222,31 @@ module Reline https://github.com/ruby/ruby/blob/trunk/lib/reline.rb#L222
       cursor_pos_to_render, result, pointer = context.pop(3)
       return nil if result.nil? or pointer.nil?
       name = result[pointer]
+
       driver = RDoc::RI::Driver.new
-      doc = RDoc::Markup::Document.new
-      begin
-        driver.add_method(doc, name)
-      rescue RDoc::RI::Driver::NotFoundError => e
-        return nil
+      name = driver.expand_name name
+      doc = nil
+      used_for_class = false
+      if not name =~ /#|\./
+        found, klasses, includes, extends = driver.classes_and_includes_and_extends_for(name)
+        if not found.empty?
+          doc = driver.class_document name, found, klasses, includes, extends
+          used_for_class = true
+        end
       end
+      unless used_for_class
+        doc = RDoc::Markup::Document.new
+        begin
+          driver.add_method(doc, name)
+        rescue RDoc::RI::Driver::NotFoundError
+          doc = nil
+        end
+      end
+      return nil if doc.nil?
       formatter = RDoc::Markup::ToBs.new
       formatter.width = 40
       str = doc.accept(formatter)
+
       [Reline::CursorPos.new(cursor_pos_to_render.x + 40, cursor_pos_to_render.y + pointer), str.split("\n"), nil]
     }
 
-- 
cgit v1.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]