зеркало из https://github.com/github/ruby.git
[ruby/irb] Allow disabling autocompletion with
`IRB_USE_AUTOCOMPLETE=false` (https://github.com/ruby/irb/pull/469) * Allow using IRB_USE_AUTOCOMPLETE=false to disable autocompletion Currently, the only 2 ways to disable autocompletion are: 1. Create `.irbrc` and set `IRB.conf[:USE_AUTOCOMPLETE] = false` 2. Add the `--noautocomplete` flag when using the `irb` executable Both of them are less convenient than setting a env var and are lesser known to devs. And given the number of problems the autocompletion has (see #445), I think we should allow disabling it with a simple `IRB_USE_AUTOCOMPLETE=false`. * Mention some env var configs in the README
This commit is contained in:
Родитель
e31d645da5
Коммит
9aa18f61f2
|
@ -54,6 +54,15 @@ see [Building Ruby](doc/contributing/building_ruby.md)
|
|||
|
||||
https://www.ruby-lang.org/
|
||||
|
||||
## Configuration
|
||||
|
||||
### Environment Variables
|
||||
|
||||
- `NO_COLOR`: Assigning a value to it disables IRB's colorization.
|
||||
- `IRB_USE_AUTOCOMPLETE`: Setting it to `false` disables IRB's autocompletion.
|
||||
- `EDITOR`: Its value would be used to open files by the `edit` command.
|
||||
- `IRBRC`: The file specified would be evaluated as IRB's rc-file.
|
||||
|
||||
## Documentation
|
||||
|
||||
- [English](https://docs.ruby-lang.org/en/master/index.html)
|
||||
|
|
|
@ -45,7 +45,7 @@ module IRB # :nodoc:
|
|||
|
||||
@CONF[:USE_SINGLELINE] = false unless defined?(ReadlineInputMethod)
|
||||
@CONF[:USE_COLORIZE] = (nc = ENV['NO_COLOR']).nil? || nc.empty?
|
||||
@CONF[:USE_AUTOCOMPLETE] = true
|
||||
@CONF[:USE_AUTOCOMPLETE] = ENV.fetch("IRB_USE_AUTOCOMPLETE", "true") != "false"
|
||||
@CONF[:INSPECT_MODE] = true
|
||||
@CONF[:USE_TRACER] = false
|
||||
@CONF[:USE_LOADER] = false
|
||||
|
|
|
@ -96,6 +96,30 @@ module TestIRB
|
|||
IRB.conf[:USE_COLORIZE] = orig_use_colorize
|
||||
end
|
||||
|
||||
def test_use_autocomplete_environment_variable
|
||||
orig_use_autocomplete_env = ENV['IRB_USE_AUTOCOMPLETE']
|
||||
orig_use_autocomplete_conf = IRB.conf[:USE_AUTOCOMPLETE]
|
||||
|
||||
ENV['IRB_USE_AUTOCOMPLETE'] = nil
|
||||
IRB.setup(__FILE__)
|
||||
assert IRB.conf[:USE_AUTOCOMPLETE]
|
||||
|
||||
ENV['IRB_USE_AUTOCOMPLETE'] = ''
|
||||
IRB.setup(__FILE__)
|
||||
assert IRB.conf[:USE_AUTOCOMPLETE]
|
||||
|
||||
ENV['IRB_USE_AUTOCOMPLETE'] = 'false'
|
||||
IRB.setup(__FILE__)
|
||||
refute IRB.conf[:USE_AUTOCOMPLETE]
|
||||
|
||||
ENV['IRB_USE_AUTOCOMPLETE'] = 'true'
|
||||
IRB.setup(__FILE__)
|
||||
assert IRB.conf[:USE_AUTOCOMPLETE]
|
||||
ensure
|
||||
ENV["IRB_USE_AUTOCOMPLETE"] = orig_use_autocomplete_env
|
||||
IRB.conf[:USE_AUTOCOMPLETE] = orig_use_autocomplete_conf
|
||||
end
|
||||
|
||||
def test_noscript
|
||||
argv = %w[--noscript -- -f]
|
||||
IRB.setup(eval("__FILE__"), argv: argv)
|
||||
|
|
Загрузка…
Ссылка в новой задаче