summaryrefslogtreecommitdiff
path: root/lib/irb/input-method.rb
AgeCommit message (Collapse)Author
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
2019-12-07[ruby/irb] Reidline mode needs Reline what needs String#grapheme_clustersaycabta
https://github.com/ruby/irb/commit/2b0b19b87c
2019-11-30Use @eof variable for ReidlineInputMethod#eof?aycabta
"IRB::InputMethod#eof?" requires eof status each user input but "ReidlineInputMethod#eof?" used "Reline.eof?" what is singleton data. "ReidlineInputMethod#eof?" is changed to use the result of user input.