diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-04-01 21:09:32 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-04-02 10:52:53 +0900 |
commit | 79af8ce6d7f46e7e79180dbd6bef6681c1329bd9 (patch) | |
tree | f1aed1fd812e764f947a9af1aebda718a901e016 /lib/irb | |
parent | ecfa8dcdbaf60cbe878389439de9ac94bc82e034 (diff) | |
download | ruby-79af8ce6d7f46e7e79180dbd6bef6681c1329bd9.tar.gz |
[ruby/irb] Colorize `__END__` as keyword
https://github.com/ruby/irb/commit/9b84018311
Diffstat (limited to 'lib/irb')
-rw-r--r-- | lib/irb/color.rb | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/irb/color.rb b/lib/irb/color.rb index a054bb20f8..cfbb3cc668 100644 --- a/lib/irb/color.rb +++ b/lib/irb/color.rb @@ -64,6 +64,7 @@ module IRB # :nodoc: on_alias_error: [[RED, REVERSE], ALL], on_class_name_error:[[RED, REVERSE], ALL], on_param_error: [[RED, REVERSE], ALL], + on___end__: [[GREEN], ALL], } rescue NameError # Give up highlighting Ripper-incompatible older Ruby @@ -120,6 +121,7 @@ module IRB # :nodoc: symbol_state = SymbolState.new colored = +'' length = 0 + end_seen = false scan(code, allow_last_error: !complete) do |token, str, expr| # IRB::ColorPrinter skips colorizing fragments with any invalid token @@ -138,10 +140,11 @@ module IRB # :nodoc: end end length += str.bytesize + end_seen = true if token == :on___end__ end # give up colorizing incomplete Ripper tokens - if length != code.bytesize + unless end_seen or length == code.bytesize return Reline::Unicode.escape_for_print(code) end |