diff --git a/lib/irb/init.rb b/lib/irb/init.rb index dd888f372..8e745adbe 100644 --- a/lib/irb/init.rb +++ b/lib/irb/init.rb @@ -45,7 +45,7 @@ def IRB.init_config(ap_path) @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 diff --git a/test/irb/test_init.rb b/test/irb/test_init.rb index 9591de158..d9e338da8 100644 --- a/test/irb/test_init.rb +++ b/test/irb/test_init.rb @@ -96,6 +96,30 @@ def test_no_color_environment_variable 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)