summaryrefslogtreecommitdiff
path: root/lib/irb/color.rb
AgeCommit message (Collapse)Author
2025-01-24Migrate irb and reline to the bundled gemsHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12624
2025-01-15[ruby/irb] Colorize backref token bold green like global variablestomoya ishida
(https://github.com/ruby/irb/pull/1065) https://github.com/ruby/irb/commit/0b60a5be1d
2024-05-01[ruby/irb] Let IRB::Color.colorable? always return true|falsetomoya ishida
(https://github.com/ruby/irb/pull/940) https://github.com/ruby/irb/commit/0bbe435ffe
2023-08-11[ruby/irb] Add black and white color to IRB::ColorStan Lo
(https://github.com/ruby/irb/pull/676) https://github.com/ruby/irb/commit/a2763acade
2023-04-05[ruby/irb] Drop Ruby 2.6 supportStan Lo
(https://github.com/ruby/irb/pull/555) * Remove all Ruby 2.6 support * Drop Ruby 2.6 specific testing conditions * Only run Ruby 2.7+ on CI * Bump Ruby requirement to 2.7+ https://github.com/ruby/irb/commit/3f714b616c
2023-02-12[ruby/irb] Fix colorize backtick symboltomoya ishida
(https://github.com/ruby/irb/pull/508) https://github.com/ruby/irb/commit/dd7f25cd45 Co-authored-by: Stan Lo <stan001212@gmail.com>
2022-10-18[ruby/irb] Assert lvars_code doesn't include \nTakashi Kokubun
Removing /\A.+\n/ could have an unexpected impact, depending on how RubyLex.generate_local_variables_assign_code is implemented. It feels like a too much assumption and the intention isn't immediately clear, so I added these changes. https://github.com/ruby/irb/commit/ccc07a35ce
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-09-22[ruby/irb] Rewrite on_scan proc to be more readable.tompng
https://github.com/ruby/irb/commit/da54e7f081
2022-09-22[ruby/irb] Scan every single characters in IRB::Color.scantompng
https://github.com/ruby/irb/commit/d14e56a65d
2022-06-28[ruby/irb] Color.colorable? needs to consider the condition when irb is not ↵st0012
loaded ruby/debug uses `irb/color` selectively: https://github.com/ruby/debug/blob/0ac22406bb8f65bc76f9f5576a00c729cac693af/lib/debug/color.rb#L4 And in that case, `IRB.conf` won't be defined. So Color.colorable? needs to consider that. This also fixes the Ruby trunk CI. https://github.com/ruby/irb/commit/b2cd07e795
2022-06-28[ruby/irb] Centralize coloring control (https://github.com/ruby/irb/pull/374)Stan Lo
* Use colorable: argument as the only coloring control * Centalize color controling logic at Color.colorable? There are 2 requirements for coloring output: 1. It's supported on the platform 2. The user wants it: `IRB.conf[:USE_COLORIZE] == true` Right now we check 1 and 2 separately whenever we colorize things. But it's error-prone because while 1 is the default of `colorable` parameter, 2 always need to manually checked. When 2 is overlooked, it causes issues like https://github.com/ruby/irb/pull/362 And there's 0 case where we may want to colorize even when the user disables it. So I think we should merge 2 into `Color.colorable?` so it can be automatically picked up. * Add tests for all inspect modes * Simplify inspectors' coloring logic * Replace use_colorize? with Color.colorable? * Remove Context#use_colorize cause it's redundant https://github.com/ruby/irb/commit/1c53023ac4
2022-01-17[ruby/irb] Use require_relative to require lib filesst0012
1. `require` can mislead Ruby to load system irb's files and cause constant redefined warnings as other code loads the same module/class from lib folder. 2. Most files already use `require_relative`. https://github.com/ruby/irb/commit/848d339f2e
2021-04-26[ruby/irb] Added `colorable` keyword optionNobuyoshi Nakada
Currently `IRB::Color.colorize` and `IRB::Color.colorize_code` refer `$stdin.tty?` internally. This patch adds `colorable` keyword option which overrides it. https://github.com/ruby/irb/commit/402e3f1907
2021-04-08[ruby/irb] Ripper::Lexer::Elem#state is defined since Ruby 2.5Nobuyoshi Nakada
And the required ruby version is 2.5 or later. https://github.com/ruby/irb/commit/ac496d4c78
2021-04-02[ruby/irb] Colorize `__END__` as keywordNobuyoshi Nakada
https://github.com/ruby/irb/commit/9b84018311
2021-01-18[ruby/irb] handle `__ENCODING__` as a keyword as wellNobuhiro IMAI
https://github.com/ruby/irb/commit/a6a33d908f
2021-01-05[ruby/irb] Ensure to restore $VERBOSENobuyoshi Nakada
https://github.com/ruby/irb/commit/cef474a76a
2020-12-28[ruby/irb] Remove unnecessary ignore_error in dispatch_seqTakashi Kokubun
Just forgotten in https://github.com/ruby/irb/commit/a5804c3560bb1de3ea8e40002635bff87f6a2825 https://github.com/ruby/irb/commit/e42e548793
2020-12-28[ruby/irb] Do not colorize partially-correct inspectTakashi Kokubun
This is to prevent a yellow-mixed output for ActiveSupport::TimeWithZone. Follows up https://github.com/ruby/irb/pull/159 and https://github.com/ruby/ruby/pull/3967. https://github.com/ruby/irb/commit/a5804c3560bb1de3ea8e40002635bff87f6a2825
2020-12-28irb: add more syntax errors colorizing support (#3967)Nobuhiro IMAI
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2020-12-28[ruby/irb] Enhance colored inspect outputTakashi Kokubun
https://github.com/ruby/irb/commit/dffcdb5269
2020-08-18[ruby/irb] Directly check if the method is available instead of versionNobuyoshi Nakada
https://github.com/ruby/irb/commit/3ea9fd9ed0
2020-07-22Add require 'irb/ruby-lex' to use RubyLexaycabta
2020-07-22[ruby/irb] Simplify RubyLex.compile_with_errors_suppressedaycabta
nobu-san reviewed, https://github.com/ruby/irb/pull/106#pullrequestreview-423400033 > How about lexer = Ripper::Lexer.new(";\n#{code}", nil, 0)? > Encoding pragma is effective only at the beginning. > And the semicolon and newline will be skipped because the position is before > the initial pos. I employ the way. Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> https://github.com/ruby/irb/commit/e593cc65b7
2020-07-22[ruby/irb] Suppress incomplete coding magic comment erroraycabta
https://github.com/ruby/irb/commit/6a457edbd1
2019-11-13Suppress warnings except for when last evaluationaycabta
Co-authored-by: Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
2019-11-10qsymbols and symbols should be colored as SymbolTakashi Kokubun
2019-11-10Colorize on_symbols_beg (%I)Takashi Kokubun
2019-11-10Colorize string quotes as boldTakashi Kokubun
like pry
2019-10-15Fixed the key to delete [Bug #16250]Nobuyoshi Nakada
https://github.com/ruby/ruby/commit/f94202fcc228d0348ca050a7b18a8f8a538a7305#commitcomment-35505076 Co-Authored-By: Ary Borenszweig <asterite@gmail.com>
2019-10-15Use compare_by_identity hash [Bug #16250]Nobuyoshi Nakada
2019-10-14Simplify circular reference check of IRB::ColorTakashi Kokubun
2019-10-14IRB colorize: take into account recursive arrays and hashes (#2555)Ary Borenszweig
[Bug #16250]
2019-06-13make sync-default-gems GEM=irbTakashi Kokubun
Upgrade IRB to https://github.com/ruby/irb/commit/41ea43a4a732e094acfa1b0fc1473fdcda9e6227 Mostly backport changes.
2019-06-12Ripper::Lexer: fallback parse error token to the previous oneNobuyoshi Nakada
2019-06-04Reflect behavior changes to argument nameTakashi Kokubun
0c459af7c233adb5f44022350bfe8fa132d8053e changed the meaning of `detect_compile_error`, and this commit lets it follow the change.
2019-06-04colorize_code must return escaped textTakashi Kokubun
This was needed before 0c459af7c233adb5f44022350bfe8fa132d8053e but it could be actually useless now. But I added this anyway just in case.
2019-06-04Colorize error charactersNobuyoshi Nakada
* lib/irb/color.rb (IRB::Color.scan): ignore "incomplete end of input" error only, to colorize invalid characters, e.g., control characters, and invalid symbols, as errors.
2019-05-31Fix typo :bug: [ci skip]Takashi Kokubun
2019-05-31Warn compile_error only when input is finishedTakashi Kokubun
Let's say we are in progress to write `"foo"`: ``` irb> "fo ``` at this moment, nothing is wrong. It would be just a normal way to write `"foo"`. Prior to this commit, the `fo` part was warned because of 5b64d7ac6e7cbf759b859428f125539e58bac0bd. But I think warning such a normal input is not valuable for users. However, we'd like to warn `:@1` or `@@1` which is also a syntax error. Then this commit switches the syntax highlight based on whether the input text is finished or not. When it's not finished yet, it does not warn compile_error.
2019-05-31Abstract away Ripper::Lexer#scan in IRB::Color#scanTakashi Kokubun
because 5b64d7ac6e7cbf759b859428f125539e58bac0bd made it hard to understand #colorize_code for me and this change is needed for my next commit.
2019-05-29Colorize errors moreNobuyoshi Nakada
* lib/irb/color.rb (IRB::Color.colorize_code): colorize `compile_error` part as same as `on_parse_error`.
2019-05-29Get rid of nested string interpolationsNobuyoshi Nakada
* lib/irb/color.rb (IRB::Color.colorize): get rid of nesting string interpolations not to confuse ruby-mode.el
2019-05-29ripper: Ripper::Lexer#scanNobuyoshi Nakada
* ext/ripper/lib/ripper/lexer.rb (Ripper::Lexer#scan): parses the code and returns the result elements including errors. [EXPERIMENTAL]
2019-05-29Colorize compile_error as same as on_parse_errorNobuyoshi Nakada
2019-05-29parse.y: flush invalid charNobuyoshi Nakada
2019-05-29Revert "Colorize error part more"Koichi Sasada
This reverts commit c7f3c222c9b82736c993419daa6bfb643e5c0793.
2019-05-29Colorize error part moreNobuyoshi Nakada
Colorize `compile_error` parts as well as `on_parse_error` parts.
2019-05-27Colorize error partNobuyoshi Nakada