summaryrefslogtreecommitdiff
path: root/lib/irb/input-method.rb
AgeCommit message (Collapse)Author
2022-11-15[ruby/irb] Rename leftover Reidline referencesst0012
https://github.com/ruby/irb/commit/0ed8b103ed
2022-10-24[ruby/irb] Move require out of repeated execution pathst0012
SHOW_DOC_DIALOG will be called repeatedly whenever the corresponding key is pressed, but we only need to require rdoc once. So ideally the require can be put outside of the proc. And because when rdoc is not available the entire proc will be nonfunctional, we can stop registering the SHOW_DOC_DIALOG if we failed to require rdoc. https://github.com/ruby/irb/commit/b1278b7320
2022-10-18[ruby/irb] Always use local variables in current context to parse code ↵tomoya ishida
(https://github.com/ruby/irb/pull/397) * Use local_variables for colorize, code_block_open check, nesting_level and assignment_expression check * Check if expression is an assignment BEFORE evaluating it. evaluate might define new localvars and change result of assignment_expression? * Add local_variables dependent code test * pend local variable dependent test on truffleruby code_block_open is not working on truffleruby * Always pass context to RubyLex#lex * Rename local_variable_assign_code generator method name * Add assignment expression truncate test * Add Context#local_variables and make generate_local_variables_assign_code more simple * Update lib/irb/input-method.rb Co-authored-by: Stan Lo <stan001212@gmail.com> * Add a comment why assignment expression check should be done before evaluate https://github.com/ruby/irb/commit/c8b3877281 Co-authored-by: Stan Lo <stan001212@gmail.com> Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
2022-10-05[ruby/irb] Rename IDB::ReidlineInputMethod to IRB::RelineInputMethodGannon McGibbon
Deprecates IDB::ReidlineInputMethod and USE_REIDLINE in favor of IRB::RelineInputMethod and USE_RELINE. The Input method uses Reline to read input from the console, so it can be named directly after the Reline library like other inputs methods are (Readline, Stdio, etc.). https://github.com/ruby/irb/commit/5bcade7130
2022-09-17[ruby/irb] Support --noscript option to not use first non-option argument as ↵Jeremy Evans
script Also add --script option to turn the option back on. Previously there wasn't a way to get an interactive IRB session and access arguments provided on the command line. Additionally, handle `-` as script as stdin. In Unix-like tools, `-` means to take standard input instead of a file. This doesn't result in exactly the same output for: ``` echo 'p ARGV' > args.rb; irb args.rb a b c ``` and ``` echo 'p ARGV' | irb - a b c ``` Due to how irb handles whether stdin is a tty. However, this change allows use of `-` as a argument, instead of giving an unrecognized switch error. This required some small changes to context.rb (to handle `-` as standard input) and input-method.rb (to have FileInputMethod accept IO arguments in addition to strings). Implements [Feature #15371] https://github.com/ruby/irb/commit/4192683ba2
2022-08-26[ruby/irb] Require RDoc in `input-method.rb` again in a limited scope.Jun Aruga
RDoc is implemented as soft dependency in IRB. See how the rdoc is required in the files. I reverted the commit below. ``` $ grep -ril rdoc lib/ lib/irb/cmd/help.rb lib/irb/completion.rb lib/irb/easter-egg.rb lib/irb/input-method.rb ``` --- Revert "Remove `require` in signal handler to avoid ThreadError" This reverts commit https://github.com/ruby/irb/commit/5f749c613c89. https://github.com/ruby/irb/commit/b24852058f
2022-08-23[ruby/irb] Drop hard dependency on RDoc.Vít Ondruch
This has been introduced in https://github.com/ruby/irb/commit/026700499dfd, but it seems that this is just be mistake, otherwise the later handling of `LoadError` would not be needed. https://github.com/ruby/irb/commit/54c8df06ff
2022-06-26[ruby/irb] Ensure stdout is a TTY before calling winsizePeter Jones
When outputting a (possibly truncated) value, IRB will query the window size. However, if IRB was piped to another process, stdout will no longer be a TTY and will not support the `winsize` method. This fix ensure that stdout is a TTY. https://github.com/ruby/irb/commit/125de5eeea
2021-12-29[ruby/irb] Prefer `IO#wait_readable` over `IO#select`. ↵Samuel Williams
(https://github.com/ruby/irb/pull/323) https://github.com/ruby/irb/commit/1c03bd3373
2021-12-25[ruby/irb] Support showing doc by dialog in iTerm2aycabta
https://github.com/ruby/irb/commit/a4b95d6634
2021-12-03[ruby/irb] Add Alt+d keycode when convert-meta isn't usedima1zumi
I pushed reline#389 for when convert-meta is not turned on in .inputrc. Alt+D in irb also needs to be set to the keycode for not using convert-meta. https://github.com/ruby/irb/commit/328eddf851
2021-10-11[ruby/irb] Add --extra-doc-dir option to show doc dialogaycabta
https://github.com/ruby/irb/commit/3f79cb506f
2021-10-08[ruby/irb] Determine left and right when the width of either side is zero ↵aycabta
correctly https://github.com/ruby/irb/commit/5df6e1f027
2021-10-08[ruby/irb] Calculate right side doc dialog width correctlyaycabta
https://github.com/ruby/irb/commit/f34da7fa04
2021-10-08[ruby/irb] Specify whether to show the doc dialog on the left or right side ↵aycabta
by using variable names https://github.com/ruby/irb/commit/a23a88b8c9
2021-10-08[ruby/irb] Display doc dialog in gaps on narrow screenaycabta
https://github.com/ruby/irb/commit/4d7cefcaa4
2021-10-07[ruby/irb] Update descriptions of methodsKaíque Kandy Koga
From Reidline to Reline Update description used in take_corresponding_syntax_to_kw_do and is_the_in_correspond_to_a_for methods Use possessive noun correctly Second element https://github.com/ruby/irb/commit/4fa9714d6f
2021-10-03[ruby/irb] Remove `require` in signal handler to avoid ThreadErrorMasataka Pocke Kuwabara
`rdoc` has been required so it looks unnecessary https://github.com/ruby/irb/commit/5f749c613c
2021-09-06[ruby/irb] Add comments for Alt+d key sequencesaycabta
https://github.com/ruby/irb/commit/4cb5f7e546
2021-09-06[ruby/irb] Use multiple trap_keyaycabta
https://github.com/ruby/irb/commit/416abe2524
2021-09-04[ruby/irb] Remove commeted out codeaycabta
https://github.com/ruby/irb/commit/7dda1f803e
2021-09-04[ruby/irb] Show doc at the same height as the autocompletion dialogaycabta
https://github.com/ruby/irb/commit/a9db71e6bc
2021-09-04[ruby/irb] Render properly if both autocomplete and show doc dialogs are ↵aycabta
left of the cursor https://github.com/ruby/irb/commit/0090203107
2021-09-03[ruby/irb] Use Reline::Key for trap_key in dialog callbackaycabta
https://github.com/ruby/irb/commit/b05ce3c72d
2021-09-03[ruby/irb] Add message to show full docaycabta
https://github.com/ruby/irb/commit/6370a5d974
2021-09-03[ruby/irb] Add Alt+d trap from show doc dialog to show full docaycabta
https://github.com/ruby/irb/commit/368327b082
2021-08-31[ruby/irb] Set the dialog width to render with a fixed widthaycabta
https://github.com/ruby/irb/commit/80c4329643
2021-08-31[ruby/irb] Follow that Dialog#contents_width has been renamed to #widthaycabta
https://github.com/ruby/irb/commit/49a73d929e
2021-08-31[ruby/irb] Make show doc dialog appears on the left at the right edgeaycabta
https://github.com/ruby/irb/commit/6480eddd31
2021-08-31[ruby/irb] Rename a variable "dialog" with "autocomplete_dialog"aycabta
Because it's just used to receive data from the autocomplete dialog, not for show doc dialog. https://github.com/ruby/irb/commit/f8b752bd98
2021-08-31[ruby/irb] Use DialogRenderInfoaycabta
https://github.com/ruby/irb/commit/5bc3a72ca3
2021-08-31[ruby/irb] Take dialog to get scroll_topaycabta
https://github.com/ruby/irb/commit/7209082a11
2021-08-31[ruby/irb] Don't show doc when pointer is negativeaycabta
https://github.com/ruby/irb/commit/48af34bfc2
2021-08-30[ruby/irb] [].name to display the doc for Array.nameaycabta
https://github.com/ruby/irb/commit/7c2abc14d8
2021-08-30[ruby/irb] Rescue unknown error to quash crashingaycabta
https://github.com/ruby/irb/commit/92cce941cb
2021-08-30Add --autocomplete / --noautocomplete optionsaycabta
2021-08-29[ruby/irb] Rescue NotFoundError of RDoc::RI::Driver#expand_nameaycabta
https://github.com/ruby/irb/commit/c5f13b23d7
2021-08-29[ruby/irb] Add show doc dialog for Relineaycabta
https://github.com/ruby/irb/commit/026700499d
2021-04-03[ruby/irb] Evaluate each toplevel statementaycabta
https://github.com/ruby/irb/commit/bc1b1d8bc3
2021-04-03[ruby/irb] process multi-line pastes as a single entityCody Cutrer
this allows pasting leading-dot chained methods correctly: ```ruby class A def a; self; end def b; true; end end a = A.new a .a .b ``` will properly return `true` instead of erroring on the `.a` line: ``` irb(main):001:1* class A irb(main):002:1* def a; self; end irb(main):003:0> end irb(main):004:0* irb(main):005:0> a = A.new irb(main):006:0* irb(main):007:0> a irb(main):008:0> .a irb(main):009:0> .a => #<A:0x00007f984211fbe8> ``` https://github.com/ruby/irb/commit/45aeb52575
2021-03-24[ruby/irb] Complete require and require_relativeaycabta
https://github.com/ruby/irb/commit/1c61178b4c
2021-01-27[ruby/irb] add `IRB::FileInputMethod.open` to ensure closing associated FileNobuhiro IMAI
* tweak some methods not to raise exception after `#close` * use it in `IRB::IrbLoader#{source_file,load_file} https://github.com/ruby/irb/commit/ec2947acbd
2020-12-23[ruby/irb] Change StdioInputMethod#eof? to non-blockingaycabta
This fixes --inf-ruby-mode. https://github.com/ruby/irb/commit/0e4a818955
2020-09-14[ruby/irb] Add OMIT_ON_ASSIGNMENTaycabta
Omit the results evaluated at assignment if they are too long. The behavior of ECHO_ON_ASSIGNMENT being on by default is hard to understand, so I change it to off by default. Instead, we turn OMIT_ON_ASSIGNMENT on by default. The result is displayed on assignment, but it will always be short and within one line of the screen. https://github.com/ruby/irb/commit/c5ea79d5ce
2020-08-18[ruby/irb] Expand path to run separated test correctlyaycabta
https://github.com/ruby/irb/commit/be2937abd5
2020-08-18[ruby/irb] Get rid of loading readline unnecessarilyNobuyoshi Nakada
https://github.com/ruby/irb/commit/420e7d2270
2020-04-29[ruby/irb] Check existence of rc files in irb_info commandaycabta
https://github.com/ruby/irb/commit/cdbb9dfc9f
2020-04-29[ruby/irb] Add irb_info commandaycabta
https://github.com/ruby/irb/commit/a6fe58e916
2020-01-14Use Reline.encoding_system_needs if existsaycabta
2019-12-07[ruby/irb] Revert "Reidline mode needs Reline what needs ↵aycabta
String#grapheme_clusters" This reverts commit 2b0b19b87c60d2cdb329979acbb96e12a1f940e7. New IRB parser needs new Ripper what has lex_state too. The new Ripper is adopted by Ruby 2.5 or later. https://github.com/ruby/irb/commit/9ab6e35a2c