From f256d7899fe448a5e0de0771fc415475f006b3fa Mon Sep 17 00:00:00 2001 From: tomoya ishida Date: Fri, 13 Sep 2024 00:04:33 +0900 Subject: [PATCH] Remove KEYWORD_ALIASES which handled special alias name of irb_break irb_catch and irb_next command (#1004) * Remove KEYWORD_ALIASES which handled special alias name of irb_break irb_catch and irb_next command * Remove unused instance variable user_aliases Co-authored-by: Stan Lo --------- Co-authored-by: Stan Lo --- lib/irb/command/help.rb | 2 +- lib/irb/context.rb | 14 +------------- lib/irb/default_commands.rb | 12 +++++++++--- 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/lib/irb/command/help.rb b/lib/irb/command/help.rb index c2018f9b3..12b468fef 100644 --- a/lib/irb/command/help.rb +++ b/lib/irb/command/help.rb @@ -39,7 +39,7 @@ def help_message 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 aa0c60b0e..fafe99d57 100644 --- a/lib/irb/context.rb +++ b/lib/irb/context.rb @@ -149,8 +149,7 @@ def initialize(irb, workspace = nil, input_method = nil) @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 @@ def initialize(irb, workspace = nil, input_method = nil) 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 fec41df4e..768fbee9d 100644 --- a/lib/irb/default_commands.rb +++ b/lib/irb/default_commands.rb @@ -181,9 +181,15 @@ def load_command(command) [: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] )