summaryrefslogtreecommitdiff
path: root/lib/irb/command/edit.rb
diff options
context:
space:
mode:
authorMichael J. Giarlo <[email protected]>2024-04-14 02:13:06 -0700
committergit <[email protected]>2024-04-14 09:13:20 +0000
commit76b10f2ee1bbc962f2b7f178b7dddb30985d56f7 (patch)
tree1322c14c15bf6b33e16e92e9abdd2ac5bdeb58c1 /lib/irb/command/edit.rb
parent38b8bdb8eac2c0dc6a149ef9d13c02ef788ad5ef (diff)
[ruby/reline] Support `menu-complete-backward` command for upward
navigation (https://github.com/ruby/reline/pull/677) Fixes https://github.com/ruby/reline/pull/675 This commit extracts the upward navigation condition in `LineEditor#input_key` to a new private method, and adds a new alias. This change allows Reline to support upward navigation in when a user has configured `inputrc` to map Shift-Tab to `menu-complete-backward`, a common setting in Bash (>= 4.x). Instead of special-casing upward navigation in `LineEditor#input_key`, we now allow it to be processed by the branch that calls `process_key`. The extracted method no longer includes the editing mode check since this check is already made by `#wrap_method_call` by the time `#completion_journey_up` (or `#menu_complete_backward`) is called. Since upward navigation is happening in a method other than `#input_key` now, the `completion_occurs` variable that used to be local to `#input_key` is changed to an instance variable so that the new method can change its value. (I see many examples of mutating such instance variables in `LineEditor`, so I assumed this would be an uncontroversial change consistent with the coding practices already in place.) Test coverage of this change has been added to the emacs and vi `KeyActor` tests. Many thanks to @ima1zumi for their very helpful comments on #675 which encouraged me to contribute this work! https://github.com/ruby/reline/commit/2ccdb374a4
Diffstat (limited to 'lib/irb/command/edit.rb')
0 files changed, 0 insertions, 0 deletions