diff options
author | aycabta <aycabta@gmail.com> | 2021-10-11 20:35:27 +0900 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2021-10-11 21:12:57 +0900 |
commit | 866a09dd9ea2775a3231c0e9833f3bca48947f30 (patch) | |
tree | bbbeb4715bb072b369162960990b591bd1bd94bb | |
parent | dcaaf79ca06a1825a0e489d1c9d188d8c0d6f36f (diff) | |
download | ruby-866a09dd9ea2775a3231c0e9833f3bca48947f30.tar.gz |
[ruby/irb] Add --extra-doc-dir option to show doc dialog
https://github.com/ruby/irb/commit/3f79cb506f
-rw-r--r-- | lib/irb/context.rb | 5 | ||||
-rw-r--r-- | lib/irb/init.rb | 4 | ||||
-rw-r--r-- | lib/irb/input-method.rb | 4 |
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 |