Skip to content

Commit

Permalink
Remove KEYWORD_ALIASES which handled special alias name of irb_break …
Browse files Browse the repository at this point in the history
…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 <stan001212@gmail.com>

---------

Co-authored-by: Stan Lo <stan001212@gmail.com>
  • Loading branch information
tompng and st0012 committed Sep 12, 2024
1 parent bd06069 commit f256d78
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 17 deletions.
2 changes: 1 addition & 1 deletion lib/irb/command/help.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
14 changes: 1 addition & 13 deletions lib/irb/context.rb
Original file line number Diff line number Diff line change
Expand Up @@ -149,26 +149,14 @@ 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?
return true if ENV['TEST_IRB_FORCE_INTERACTIVE']
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
Expand Down
12 changes: 9 additions & 3 deletions lib/irb/default_commands.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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]
)
Expand Down

0 comments on commit f256d78

Please sign in to comment.