summaryrefslogtreecommitdiff
path: root/lib/irb/context.rb
diff options
context:
space:
mode:
authorStan Lo <[email protected]>2023-11-26 17:07:41 +0000
committergit <[email protected]>2023-11-26 17:07:45 +0000
commitcc5d1bf026bcc5b4929a4f9d5e32d2fa5730348c (patch)
tree44175f94844752733019e6f5445d249a614e42e5 /lib/irb/context.rb
parent688faa93f03142b632b8eb0de0946f4e86845ebc (diff)
[ruby/irb] Display aliases in help message
(https://github.com/ruby/irb/pull/788) Similar to Pry, it displays user-defined aliases in the help message with a dedicated section. With the current default aliases, it looks like: ``` ...other sections... Aliases $ Alias for `show_source` @ Alias for `whereami` ``` https://github.com/ruby/irb/commit/2a0eacc891
Diffstat (limited to 'lib/irb/context.rb')
-rw-r--r--lib/irb/context.rb14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/irb/context.rb b/lib/irb/context.rb
index a7b8ca2c26..3442fbf4da 100644
--- a/lib/irb/context.rb
+++ b/lib/irb/context.rb
@@ -146,9 +146,21 @@ module IRB
@newline_before_multiline_output = true
end
- @command_aliases = IRB.conf[:COMMAND_ALIASES]
+ @user_aliases = IRB.conf[:COMMAND_ALIASES].dup
+ @command_aliases = @user_aliases.merge(KEYWORD_ALIASES)
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
+
private def build_completor
completor_type = IRB.conf[:COMPLETOR]
case completor_type