summaryrefslogtreecommitdiff
path: root/lib/irb/ruby-lex.rb
AgeCommit message (Collapse)Author
2020-02-12[ruby/irb] Fix auto indent with closed braceaycabta
A closed brace in auto-indent shouldn't affect the next brace in the same line, but it behaves like below: p() { } It's a bug. https://github.com/ruby/irb/commit/fbe59e344f
2020-01-14[ruby/irb] Fix crashing when multiple open braces per lineBen
https://github.com/ruby/irb/issues/55 If we had put multiple open braces on a line the with no closing brace spaces_of_nest array keeps getting '0' added to it. This means that when we pop off of this array we are saying that we should be in position zero for the next line. This is an issue because we don't always want to be in position 0 after a closing brace. Example: ``` [[[ ] ] ] ``` In the above example the 'spaces_of_nest' array looks like this after the first line is entered: [0,0,0]. We really want to be indented 4 spaces for the 1st closing brace 2 for the 2nd and 0 for the 3rd. i.e. we want it to be: [0,2,4]. We also saw this issue with a heredoc inside of an array. ``` [<<FOO] hello FOO ``` https://github.com/ruby/irb/commit/80c69c8272
2020-01-14[ruby/irb] Fix newline depth with multiple bracesBen
This commit fixes the check_newline_depth_difference method to multiple open braces on one line into account. Before this change we were subtracting from the depth in check_newline_depth_difference on every open brace. This is the right thing to do if the opening and closing brace are on the same line. For example in a method definition we have an opening and closing parentheses we want to add 1 to our depth, and then remove it. ``` def foo() end ``` However this isn't the correct behavior when the brace spans multiple lines. If a brace spans multiple lines we don't want to subtract from check_newline_depth_difference and we want to treat the braces the same way as we do `end` and allow check_corresponding_token_depth to pop the correct depth. Example of bad behavior: ``` def foo() [ ] puts 'bar' end ``` Example of desired behavior: ``` def foo() [ ] puts 'bar' end ``` https://github.com/ruby/irb/commit/7dc8af01e0
2019-12-22[ruby/irb] Make nesting level up for `1.times do`Yusuke Endoh
Follow up of the previous commit https://github.com/ruby/irb/commit/ab207353d3
2019-12-22[ruby/irb] Fix auto-indent for `1.times do`Yusuke Endoh
Fixes #47 https://github.com/ruby/irb/commit/6b8eca4635
2019-12-03Fix auto-indent behavior correctlyaycabta
2019-11-29Revert "Treat :@1, :@@1, @1, and @@1 correctly to check termination"aycabta
This reverts commit 5e275dd2af4d9d24cdb1cfc0f232f348dae9c2cd. ...The @1 type numberd parameter is reverted from Ruby syntax.
2019-11-25Remove e2mmap dependencyaycabta
2019-11-20Replace typo "bock" with "block"aycabta
2019-11-20A preceding token of "do" of block has EXPR_CMDARG or EXPR_ENDFNaycabta
meth do # the preceding token of "do" has EXPR_CMDARG end meth() do # the preceding token of "do" has EXPR_ENDFN end
2019-11-20Number sign comment (# bla bla) is a kind of newline characteraycabta
2019-11-13Suppress warnings except for when last evaluationaycabta
Co-authored-by: Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
2019-08-20Treat two types "do" correctlyaycabta
A "do" what has followed a token what has EXPR_CMDARG is for a block, and in other cases "do" is for "while", "until" or "for".
2019-07-27Use JRuby equivalent of RubyVM.compile.Charles Oliver Nutter
RubyVM is specific to CRuby and not supported on JRuby. This is the equivalent operation.
2019-07-03Check code_block_open for whether code continuesaycabta
2019-07-02Keyword token that follows EXPR_FNAME must be a method nameaycabta
2019-06-28Remove auto indent of continuation lineaycabta
2019-06-28Removed unused variableNobuyoshi Nakada
2019-06-27EXPR_LABEL also indicates non-continuation lineaycabta
Example: [ 1, # this is not continuation line 2 ]
2019-06-27EXPR_CMDARG also indicates the end of an expressionaycabta
2019-06-27Increase indent of continuation lineaycabta
v = 3 # auto indent
2019-06-26Decrease nesting level when closing token comes at a non-first token of lineaycabta
2019-06-26`ensure` is not a continuos lineNobuyoshi Nakada
2019-06-26Decrease indent at "elsif" tooNobuyoshi Nakada
2019-06-26Remove other debug printsNobuyoshi Nakada
2019-06-26Remove debug print...sorryaycabta
2019-06-25Treat auto indent with newline correctlyaycabta
2019-06-25Decrease indent when "else", "rescue", "ensure", "when", or "in" comeaycabta
2019-06-25Refactor calculation of corresponding token depthaycabta
2019-06-22Treat closing token with starting token at head of 2nd line correctlyaycabta
v = if true # starting token at head of 2nd line 3 end # closing token
2019-06-22Do auto indent only when closing token at first of lineaycabta
if true 3; end # this isn't auto-indented
2019-06-21Support irregular auto indentaycabta
v = if true 3 end # this "end" is auto-indented correctly
2019-06-19Use IRB.conf[:AUTO_INDENT] setting in multiline modeaycabta
2019-06-18Fix auto indent crash when blank inputaycabta
2019-06-18Implement auto indent for multilineaycabta
2019-06-16Implement line_no correctlyaycabta
2019-06-14Use Reline.prompt_proc in IRBaycabta
2019-06-13make sync-default-gems GEM=irbTakashi Kokubun
Upgrade IRB to https://github.com/ruby/irb/commit/41ea43a4a732e094acfa1b0fc1473fdcda9e6227 Mostly backport changes.
2019-06-12Treat "begin rescue end" correctlyaycabta
2019-05-30Check the end token of heredoc correctlyaycabta
2019-05-28Treat :@1, :@@1, @1, and @@1 correctly to check terminationaycabta
2019-05-28Supress duplicated warningKazuki Tsujimoto
2019-05-27Use IRB::InputMethod#eof? to quitaycabta
2019-05-27Support op, cvar, iver, gvar and kw that follow on symbeg in IRBaycabta
2019-05-25JSON like label ends by differs from the startaycabta
pp Ripper.lex('{ "a": 3 }') => [[[1, 0], :on_lbrace, "{", EXPR_BEG|EXPR_LABEL], [[1, 1], :on_sp, " ", EXPR_BEG|EXPR_LABEL], [[1, 2], :on_tstring_beg, "\"", EXPR_BEG|EXPR_LABEL], [[1, 3], :on_tstring_content, "a", EXPR_BEG|EXPR_LABEL], [[1, 4], :on_label_end, "\":", EXPR_BEG|EXPR_LABEL], [[1, 6], :on_sp, " ", EXPR_BEG|EXPR_LABEL], [[1, 7], :on_int, "3", EXPR_END], [[1, 8], :on_sp, " ", EXPR_END], [[1, 9], :on_rbrace, "}", EXPR_END]]
2019-05-25Use Reline as Reidline multiline editor in IRBaycabta
2019-05-21Symbol beginning token may take a constant tokenaycabta
2019-05-21IRB should eval and show an error when only `.` is inputtedaycabta
2019-04-30Use Ripper for IRBaycabta
The debug option of IRB is deleted because it's just for IRB's pure Ruby parser.
2019-04-23Revert "IRB is improved with Reline and RDoc, take 2"Nobuyoshi Nakada
Accidentally merged when 89271d4a3733bc5e70e9c56b4bd12f277e699c42 "Adjusted indents".