summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/irb/command/help.rb2
-rw-r--r--lib/irb/context.rb14
-rw-r--r--lib/irb/default_commands.rb12
3 files changed, 11 insertions, 17 deletions
diff --git a/lib/irb/command/help.rb b/lib/irb/command/help.rb
index c2018f9b30..12b468fefc 100644
--- a/lib/irb/command/help.rb
+++ b/lib/irb/command/help.rb
@@ -39,7 +39,7 @@ module IRB
help_cmds = commands_grouped_by_categories.delete("Help")
no_category_cmds = commands_grouped_by_categories.delete("No category")
- aliases = irb_context.instance_variable_get(:@user_aliases).map do |alias_name, target|
+ aliases = irb_context.instance_variable_get(:@command_aliases).map do |alias_name, target|
{ display_name: alias_name, description: "Alias for `#{target}`" }
end
diff --git a/lib/irb/context.rb b/lib/irb/context.rb
index aa0c60b0e3..fafe99d57b 100644
--- a/lib/irb/context.rb
+++ b/lib/irb/context.rb
@@ -149,8 +149,7 @@ module IRB
@newline_before_multiline_output = true
end
- @user_aliases = IRB.conf[:COMMAND_ALIASES].dup
- @command_aliases = @user_aliases.merge(KEYWORD_ALIASES)
+ @command_aliases = IRB.conf[:COMMAND_ALIASES].dup
end
private def term_interactive?
@@ -158,17 +157,6 @@ module IRB
STDIN.tty? && ENV['TERM'] != 'dumb'
end
- # because all input will eventually be evaluated as Ruby code,
- # command names that conflict with Ruby keywords need special workaround
- # we can remove them once we implemented a better command system for IRB
- KEYWORD_ALIASES = {
- :break => :irb_break,
- :catch => :irb_catch,
- :next => :irb_next,
- }.freeze
-
- private_constant :KEYWORD_ALIASES
-
def use_tracer=(val)
require_relative "ext/tracer" if val
IRB.conf[:USE_TRACER] = val
diff --git a/lib/irb/default_commands.rb b/lib/irb/default_commands.rb
index fec41df4e2..768fbee9d7 100644
--- a/lib/irb/default_commands.rb
+++ b/lib/irb/default_commands.rb
@@ -181,9 +181,15 @@ module IRB
[:edit, NO_OVERRIDE]
)
- _register_with_aliases(:irb_break, Command::Break)
- _register_with_aliases(:irb_catch, Command::Catch)
- _register_with_aliases(:irb_next, Command::Next)
+ _register_with_aliases(:irb_break, Command::Break,
+ [:break, OVERRIDE_ALL]
+ )
+ _register_with_aliases(:irb_catch, Command::Catch,
+ [:catch, OVERRIDE_PRIVATE_ONLY]
+ )
+ _register_with_aliases(:irb_next, Command::Next,
+ [:next, OVERRIDE_ALL]
+ )
_register_with_aliases(:irb_delete, Command::Delete,
[:delete, NO_OVERRIDE]
)