summaryrefslogtreecommitdiff
path: root/lib/reline
AgeCommit message (Collapse)Author
2020-12-05[ruby/reline] Optimize regexp handling for widthaycabta
The rendering time in IRB has been reduced as follows: start = Time.now [{"_id"=>"5f9072a4589a06d2d74b6028", "index"=>0, "guid"=>"6b3051e2-dbc7-4537-bdb9-6cd7bb5358a7", "isActive"=>true, "balance"=>"$1,442.84", "picture"=>"http://placehold.it/32x32", "age"=>34, "eyeColor"=>"blue", "name"=>{"first"=>"Ward", "last"=>"Levy"}, "company"=>"HYPLEX", "email"=>"ward.levy@hyplex.us", "phone"=>"+1 (867) 568-3319", "address"=>"867 Cobek Court, Clara, Maryland, 3254", "about"=> "Exercitation eu ex aliqua sit. Pariatur aliquip incididunt sint id non consectetur ullamco Lorem ea mollit duis amet sint labore. Commodo laborum labore commodo officia in cillum adipisicing esse excepteur cupidatat adipisicing ut. Non esse incididunt voluptate aliquip cillum eu aute duis laboris sit et. Amet enim quis tempor occaecat excepteur exercitation excepteur deserunt amet cillum adipisicing.", "registered"=>"Monday, May 25, 2015 6:51 AM", "latitude"=>"16.001127", "longitude"=>"-72.377848", "tags"=>["dolore", "nostrud", "occaecat", "cillum", "nisi"], "range"=>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "friends"=> [{"id"=>0, "name"=>"Alison Bryant"}, {"id"=>1, "name"=>"Ester Espinoza"}, {"id"=>2, "name"=>"Sullivan Kane"}], "greeting"=>"Hello, Ward! You have 7 unread messages.", "favoriteFruit"=>"apple"}] puts "Duration: #{Time.now - start} seconds" 0.47sec -> 0.34sec start = Time.now "Exercitation eu ex aliqua sit. Pariatur aliquip incididunt sint id non consectetur ullamco Lorem ea mollit duis amet sint labore. Commodo laborum labore commodo officia in cillum adipisicing esse excepteur cupidatat adipisicing ut. Non esse incididunt voluptate aliquip cillum eu aute duis laboris sit et. Amet enim quis tempor occaecat excepteur exercitation excepteur deserunt amet cillum adipisicing." puts "Duration: #{Time.now - start} seconds" 0.11sec -> 0.08sec start = Time.now def each_top_level_statement initialize_input catch(:TERM_INPUT) do loop do begin prompt unless l = lex throw :TERM_INPUT if @line == '' else @line_no += l.count("\n") next if l == "\n" @line.concat l if @code_block_open or @ltype or @continue or @indent > 0 next end end if @line != "\n" @line.force_encoding(@io.encoding) yield @line, @exp_line_no end break if @io.eof? @line = '' @exp_line_no = @line_no @indent = 0 rescue TerminateLineInput initialize_input prompt end end end end puts "Duration: #{Time.now - start} seconds" 0.40sec -> 0.33sec Co-authored-by: NARUSE, Yui <naruse@airemix.jp> https://github.com/ruby/reline/commit/a9e39ddcc4
2020-12-05[ruby/reline] Optimize ASCII character width calculationaycabta
The rendering time in IRB has been reduced as follows: start = Time.now [{"_id"=>"5f9072a4589a06d2d74b6028", "index"=>0, "guid"=>"6b3051e2-dbc7-4537-bdb9-6cd7bb5358a7", "isActive"=>true, "balance"=>"$1,442.84", "picture"=>"http://placehold.it/32x32", "age"=>34, "eyeColor"=>"blue", "name"=>{"first"=>"Ward", "last"=>"Levy"}, "company"=>"HYPLEX", "email"=>"ward.levy@hyplex.us", "phone"=>"+1 (867) 568-3319", "address"=>"867 Cobek Court, Clara, Maryland, 3254", "about"=> "Exercitation eu ex aliqua sit. Pariatur aliquip incididunt sint id non consectetur ullamco Lorem ea mollit duis amet sint labore. Commodo laborum labore commodo officia in cillum adipisicing esse excepteur cupidatat adipisicing ut. Non esse incididunt voluptate aliquip cillum eu aute duis laboris sit et. Amet enim quis tempor occaecat excepteur exercitation excepteur deserunt amet cillum adipisicing.", "registered"=>"Monday, May 25, 2015 6:51 AM", "latitude"=>"16.001127", "longitude"=>"-72.377848", "tags"=>["dolore", "nostrud", "occaecat", "cillum", "nisi"], "range"=>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "friends"=> [{"id"=>0, "name"=>"Alison Bryant"}, {"id"=>1, "name"=>"Ester Espinoza"}, {"id"=>2, "name"=>"Sullivan Kane"}], "greeting"=>"Hello, Ward! You have 7 unread messages.", "favoriteFruit"=>"apple"}] puts "Duration: #{Time.now - start} seconds" 0.73sec -> 0.43sec start = Time.now "Exercitation eu ex aliqua sit. Pariatur aliquip incididunt sint id non consectetur ullamco Lorem ea mollit duis amet sint labore. Commodo laborum labore commodo officia in cillum adipisicing esse excepteur cupidatat adipisicing ut. Non esse incididunt voluptate aliquip cillum eu aute duis laboris sit et. Amet enim quis tempor occaecat excepteur exercitation excepteur deserunt amet cillum adipisicing." puts "Duration: #{Time.now - start} seconds" 0.15sec -> 0.10sec start = Time.now def each_top_level_statement initialize_input catch(:TERM_INPUT) do loop do begin prompt unless l = lex throw :TERM_INPUT if @line == '' else @line_no += l.count("\n") next if l == "\n" @line.concat l if @code_block_open or @ltype or @continue or @indent > 0 next end end if @line != "\n" @line.force_encoding(@io.encoding) yield @line, @exp_line_no end break if @io.eof? @line = '' @exp_line_no = @line_no @indent = 0 rescue TerminateLineInput initialize_input prompt end end end end puts "Duration: #{Time.now - start} seconds" 0.59sec -> 0.38sec Co-authored-by: NARUSE, Yui <naruse@airemix.jp> https://github.com/ruby/reline/commit/36bc9e3abb
2020-12-05[ruby/reline] Key strokes like 2dl should behave d2laycabta
Key strokes, vi arg, operator, and motion should be treated as operator, vi arg, and motion. https://github.com/ruby/reline/commit/d1a7e74aa4
2020-12-05[ruby/reline] Fix crash to input `é`. refs #174manga_osyo
https://github.com/ruby/reline/commit/ba5e267e5f
2020-12-05[ruby/reline] Version 0.1.8aycabta
https://github.com/ruby/reline/commit/e79e402c01
2020-12-05[ruby/reline] Add alias vi-movement-mode to vi-command-mode for compatibilityaycabta
https://github.com/ruby/reline/commit/a79c297567
2020-12-05[ruby/reline] Move alias_method to right after original definitionaycabta
https://github.com/ruby/reline/commit/b7c8b93fa9
2020-12-05[ruby/reline] Call process_insert when the end of pasting plural fullwidth charsaycabta
https://github.com/ruby/reline/commit/594484d9f9
2020-12-05[ruby/reline] Motions e, E, t, f should include a char on cursor if follows ↵aycabta
operator https://github.com/ruby/reline/commit/86e9a76499
2020-12-05[ruby/reline] Implement vi_yankaycabta
https://github.com/ruby/reline/commit/164aaf9a5f
2020-12-05[ruby/reline] Operator with arg need to make sure that they take arg to ↵aycabta
avoid crashing https://github.com/ruby/reline/commit/1c0c06de1f
2020-12-05[ruby/reline] Unimplemented vi command should be no-opaycabta
https://github.com/ruby/reline/commit/abc90e6867
2020-12-05[ruby/reline] Keep operator proc as a local variable in the scopeaycabta
The proc variable will be used later so the instance variable will be changes. https://github.com/ruby/reline/commit/496c4361f6
2020-12-05[ruby/reline] Skip em_exchange_mark without markaycabta
https://github.com/ruby/reline/commit/abb56e5ec3
2020-12-05[ruby/reline] Backspace and C-h should be unassigned on vi command modeaycabta
https://github.com/ruby/reline/commit/28f4dae020
2020-12-05[ruby/reline] Version 0.1.7aycabta
https://github.com/ruby/reline/commit/710ca23427
2020-12-05[ruby/reline] Continuous insertion bufferingaycabta
The rendering time in IRB has been reduced as follows: start = Time.now [{"_id"=>"5f9072a4589a06d2d74b6028", "index"=>0, "guid"=>"6b3051e2-dbc7-4537-bdb9-6cd7bb5358a7", "isActive"=>true, "balance"=>"$1,442.84", "picture"=>"http://placehold.it/32x32", "age"=>34, "eyeColor"=>"blue", "name"=>{"first"=>"Ward", "last"=>"Levy"}, "company"=>"HYPLEX", "email"=>"ward.levy@hyplex.us", "phone"=>"+1 (867) 568-3319", "address"=>"867 Cobek Court, Clara, Maryland, 3254", "about"=> "Exercitation eu ex aliqua sit. Pariatur aliquip incididunt sint id non consectetur ullamco Lorem ea mollit duis amet sint labore. Commodo laborum labore commodo officia in cillum adipisicing esse excepteur cupidatat adipisicing ut. Non esse incididunt voluptate aliquip cillum eu aute duis laboris sit et. Amet enim quis tempor occaecat excepteur exercitation excepteur deserunt amet cillum adipisicing.", "registered"=>"Monday, May 25, 2015 6:51 AM", "latitude"=>"16.001127", "longitude"=>"-72.377848", "tags"=>["dolore", "nostrud", "occaecat", "cillum", "nisi"], "range"=>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "friends"=> [{"id"=>0, "name"=>"Alison Bryant"}, {"id"=>1, "name"=>"Ester Espinoza"}, {"id"=>2, "name"=>"Sullivan Kane"}], "greeting"=>"Hello, Ward! You have 7 unread messages.", "favoriteFruit"=>"apple"}] puts "Duration: #{Time.now - start} seconds" 2.17sec -> 0.92sec start = Time.now "Exercitation eu ex aliqua sit. Pariatur aliquip incididunt sint id non consectetur ullamco Lorem ea mollit duis amet sint labore. Commodo laborum labore commodo officia in cillum adipisicing esse excepteur cupidatat adipisicing ut. Non esse incididunt voluptate aliquip cillum eu aute duis laboris sit et. Amet enim quis tempor occaecat excepteur exercitation excepteur deserunt amet cillum adipisicing." puts "Duration: #{Time.now - start} seconds" 1.57sec -> 0.22sec start = Time.now def each_top_level_statement initialize_input catch(:TERM_INPUT) do loop do begin prompt unless l = lex throw :TERM_INPUT if @line == '' else @line_no += l.count("\n") next if l == "\n" @line.concat l if @code_block_open or @ltype or @continue or @indent > 0 next end end if @line != "\n" @line.force_encoding(@io.encoding) yield @line, @exp_line_no end break if @io.eof? @line = '' @exp_line_no = @line_no @indent = 0 rescue TerminateLineInput initialize_input prompt end end end end puts "Duration: #{Time.now - start} seconds" 0.88sec -> 0.77sec https://github.com/ruby/reline/commit/7d87ac5a12
2020-12-05[ruby/reline] Improve the performance of `get_mbchar_width`Yusuke Endoh
It is about three times faster to use one big regexp instead of sequential matching. https://github.com/ruby/reline/commit/e36f6c0707
2020-12-05[ruby/reline] Version 0.1.6aycabta
https://github.com/ruby/reline/commit/20a7806815
2020-12-05[ruby/reline] Update the generator script tooYusuke Endoh
https://github.com/ruby/reline/commit/8b0926820a
2020-12-05[ruby/reline] Suppress callbacks in pastingaycabta
IRB uses Reline's 3 dynamic real-time callbacks with calling Ripper; output_modifier_proc, prompt_proc, and auto_indent_proc. These processing times make the paste time too long. https://github.com/ruby/reline/commit/beec3399a8
2020-12-05[ruby/reline] Improve the regexps for EastAsianWidthYusuke Endoh
A character class is about three times faster than Regexp alternatives https://github.com/ruby/reline/commit/57c7955c55
2020-12-05[ruby/reline] Deduplicate completed itemsaycabta
https://github.com/ruby/reline/commit/2dabf0c786
2020-12-05[ruby/reline] Use yamatanooroti 0.0.6 for supporting startup_message on Windowsaycabta
https://github.com/ruby/reline/commit/167423b664
2020-12-05[ruby/reline] Use startup_option instead of startup waitaycabta
https://github.com/ruby/reline/commit/a63ce6371c
2020-12-05[ruby/reline] Update to Unicode 13.0.0aycabta
https://github.com/ruby/reline/commit/d49bb0aa34
2020-09-14[ruby/reline] Version 0.1.5aycabta
https://github.com/ruby/reline/commit/c8a419beb5
2020-09-12Suppress "assigned but unused variable" warningaycabta
2020-09-12[ruby/reline] Support for word movement escape sequences in iTerm2aycabta
https://github.com/ruby/reline/commit/187235f88c
2020-09-12[ruby/reline] Treat prompt correctly when Reline.prompt_proc isn't setaycabta
https://github.com/ruby/reline/commit/9c9ba0eff3
2020-09-12[ruby/reline] Move cursor to currect vertical pos after rendering a logical lineaycabta
https://github.com/ruby/reline/commit/9b932df544
2020-09-12[ruby/reline] Stop using chomp option of lines methodaycabta
https://github.com/ruby/reline/commit/3e2f55c3e0
2020-09-12[ruby/reline] Stop erasing chars after the cursor at eolaycabta
When the cursor is at the end of the line and erases characters after the cursor, some terminals delete the character at the cursor position. https://github.com/ruby/reline/commit/e96ec97b02
2020-09-12[ruby/reline] Skip the nil obtained from getcaycabta
The nil means there is nothing in the buffer in some systems. Incidentally, Errno::EIO is raised if the I/O is closed. https://github.com/ruby/reline/commit/c698634e74
2020-09-12[ruby/reline] not clear scrollback bufferYoshinao Muramatu
https://github.com/ruby/reline/commit/ba800f1461
2020-09-12[ruby/reline] clear_screen use Windows APIYoshinao Muramatu
https://github.com/ruby/reline/commit/2c5ee54cb3
2020-09-12[ruby/reline] Use str.encoding by default for split_by_widthaycabta
https://github.com/ruby/reline/commit/2d32604c9e
2020-09-09Revert the related commits about `Tempfile.open` change.Hiroshi SHIBATA
Start with https://github.com/ruby/ruby/commit/fa21985a7a2f8f52a8bd82bd12a724e9dca74934 to https://github.com/ruby/ruby/commit/d7492a0be885ea9f2b9f71e3e95582f9a859c439
2020-08-29Fix usages of Tempfile.open(&block) that expected the file to still be there ↵Benoit Daloze
after the block
2020-08-28[ruby/reline] Move width calculator methods to Reline::Unicodeaycabta
https://github.com/ruby/reline/commit/f348ecd9f5
2020-08-28[ruby/reline] fix cursor_pos regexp matchtompng
https://github.com/ruby/reline/commit/1dd80ef188
2020-08-18Strip trailing spaces [ci skip]Nobuyoshi Nakada
2020-08-18[ruby/reline] Get rid of loading pathname unnecessarilyNobuyoshi Nakada
https://github.com/ruby/reline/commit/9bd54b7f1c
2020-08-18[ruby/reline] Use the standard SPDX ID for license in gemspecMaciej Mensfeld
It is better to use SPDX ID for license field: https://guides.rubygems.org/specification-reference/#license= ref: https://spdx.org/licenses/Ruby.html https://github.com/ruby/reline/commit/8468a727e5
2020-08-18[ruby/reline] Remove duplicated line of codeaycabta
Co-authored-by: Quentin Sabah <quentin.sabah@gmail.com> https://github.com/ruby/reline/commit/5526e9f7ee
2020-08-18[ruby/reline] Keep original characters in inputrcaycabta
https://github.com/ruby/reline/commit/96583c6336
2020-08-18[ruby/reline] Support mode iconMark Delk
Co-authored-by: aycabta <aycabta@gmail.com> https://github.com/ruby/reline/commit/067b618123
2020-08-18[ruby/reline] Use single quotes for non-expanded string literalsaycabta
https://github.com/ruby/reline/commit/3bf7c7d722
2020-08-18[ruby/reline] Check Errno::EIOaycabta
Catch Errno::EIO what will be occurred if the console terminates I/O before Reline finishes rendering. https://github.com/ruby/reline/commit/e51eaa6d43
2020-08-18[ruby/reline] Add home/end mapping for urxvt and relativesTomás Pollak
https://github.com/ruby/reline/commit/c30b293f1c