diff options
author | Stan Lo <[email protected]> | 2023-11-26 17:07:41 +0000 |
---|---|---|
committer | git <[email protected]> | 2023-11-26 17:07:45 +0000 |
commit | cc5d1bf026bcc5b4929a4f9d5e32d2fa5730348c (patch) | |
tree | 44175f94844752733019e6f5445d249a614e42e5 /lib/irb/context.rb | |
parent | 688faa93f03142b632b8eb0de0946f4e86845ebc (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.rb | 14 |
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 |