summaryrefslogtreecommitdiff
path: root/lib/irb
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2021-10-11 20:35:27 +0900
committergit <svn-admin@ruby-lang.org>2021-10-11 21:12:57 +0900
commit866a09dd9ea2775a3231c0e9833f3bca48947f30 (patch)
treebbbeb4715bb072b369162960990b591bd1bd94bb /lib/irb
parentdcaaf79ca06a1825a0e489d1c9d188d8c0d6f36f (diff)
[ruby/irb] Add --extra-doc-dir option to show doc dialog
https://github.com/ruby/irb/commit/3f79cb506f
Diffstat (limited to 'lib/irb')
-rw-r--r--lib/irb/context.rb5
-rw-r--r--lib/irb/init.rb4
-rw-r--r--lib/irb/input-method.rb4
3 files changed, 12 insertions, 1 deletions
diff --git a/lib/irb/context.rb b/lib/irb/context.rb
index 31d4126e5c..0a46c1b1d4 100644
--- a/lib/irb/context.rb
+++ b/lib/irb/context.rb
@@ -125,6 +125,8 @@ module IRB
end
self.save_history = IRB.conf[:SAVE_HISTORY] if IRB.conf[:SAVE_HISTORY]
+ @extra_doc_dirs = IRB.conf[:EXTRA_DOC_DIRS]
+
@echo = IRB.conf[:ECHO]
if @echo.nil?
@echo = true
@@ -241,6 +243,9 @@ module IRB
#
# If set to +false+, <code>^D</code> will quit irb.
attr_accessor :ignore_eof
+ # Specify the installation locations of the ri file to be displayed in the
+ # document dialog.
+ attr_accessor :extra_doc_dirs
# Whether to echo the return value to output or not.
#
# Uses <code>IRB.conf[:ECHO]</code> if available, or defaults to +true+.
diff --git a/lib/irb/init.rb b/lib/irb/init.rb
index 3c27b4ffff..d2baee2017 100644
--- a/lib/irb/init.rb
+++ b/lib/irb/init.rb
@@ -51,6 +51,7 @@ module IRB # :nodoc:
@CONF[:USE_LOADER] = false
@CONF[:IGNORE_SIGINT] = true
@CONF[:IGNORE_EOF] = false
+ @CONF[:EXTRA_DOC_DIRS] = []
@CONF[:ECHO] = nil
@CONF[:ECHO_ON_ASSIGNMENT] = nil
@CONF[:VERBOSE] = nil
@@ -257,6 +258,9 @@ module IRB # :nodoc:
@CONF[:USE_MULTILINE] = true
when "--nomultiline", "--noreidline"
@CONF[:USE_MULTILINE] = false
+ when /^--extra-doc-dir(?:=(.+))?/
+ opt = $1 || argv.shift
+ @CONF[:EXTRA_DOC_DIRS] << opt
when "--echo"
@CONF[:ECHO] = true
when "--noecho"
diff --git a/lib/irb/input-method.rb b/lib/irb/input-method.rb
index 5efd5d8e21..dc95065f97 100644
--- a/lib/irb/input-method.rb
+++ b/lib/irb/input-method.rb
@@ -329,7 +329,9 @@ module IRB
name = result[pointer]
name = IRB::InputCompletor.retrieve_completion_data(name, doc_namespace: true)
- driver = RDoc::RI::Driver.new
+ options = {}
+ options[:extra_doc_dirs] = IRB.conf[:EXTRA_DOC_DIRS] unless IRB.conf[:EXTRA_DOC_DIRS].empty?
+ driver = RDoc::RI::Driver.new(options)
if key.match?(dialog.name)
begin