mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Support some unhandled syntax highlight
Heredoc, %i, :Foo, { 'a': ... }, ... :'a' is still half-broken.
This commit is contained in:
parent
a4d44b08ec
commit
98be203704
2 changed files with 12 additions and 2 deletions
|
@ -21,21 +21,25 @@ module IRB # :nodoc:
|
||||||
begin
|
begin
|
||||||
TOKEN_SEQ_EXPRS = {
|
TOKEN_SEQ_EXPRS = {
|
||||||
on_CHAR: [[BLUE, BOLD], [Ripper::EXPR_END]],
|
on_CHAR: [[BLUE, BOLD], [Ripper::EXPR_END]],
|
||||||
on_const: [[BLUE, BOLD, UNDERLINE], [Ripper::EXPR_ARG, Ripper::EXPR_CMDARG]],
|
on_const: [[BLUE, BOLD, UNDERLINE], [Ripper::EXPR_ARG, Ripper::EXPR_CMDARG, Ripper::EXPR_ENDFN]],
|
||||||
on_embexpr_beg: [[RED], [Ripper::EXPR_BEG, Ripper::EXPR_END]],
|
on_embexpr_beg: [[RED], [Ripper::EXPR_BEG, Ripper::EXPR_END]],
|
||||||
on_embexpr_end: [[RED], [Ripper::EXPR_END, Ripper::EXPR_ENDFN, Ripper::EXPR_CMDARG]],
|
on_embexpr_end: [[RED], [Ripper::EXPR_END, Ripper::EXPR_ENDFN, Ripper::EXPR_CMDARG]],
|
||||||
on_embvar: [[RED], [Ripper::EXPR_BEG]],
|
on_embvar: [[RED], [Ripper::EXPR_BEG]],
|
||||||
|
on_heredoc_beg: [[RED], [Ripper::EXPR_BEG]],
|
||||||
|
on_heredoc_end: [[RED], [Ripper::EXPR_BEG]],
|
||||||
on_ident: [[BLUE, BOLD], [Ripper::EXPR_ENDFN]],
|
on_ident: [[BLUE, BOLD], [Ripper::EXPR_ENDFN]],
|
||||||
on_int: [[BLUE, BOLD], [Ripper::EXPR_END]],
|
on_int: [[BLUE, BOLD], [Ripper::EXPR_END]],
|
||||||
on_float: [[MAGENTA, BOLD], [Ripper::EXPR_END]],
|
on_float: [[MAGENTA, BOLD], [Ripper::EXPR_END]],
|
||||||
on_kw: [[GREEN], [Ripper::EXPR_ARG, Ripper::EXPR_CLASS, Ripper::EXPR_BEG, Ripper::EXPR_END, Ripper::EXPR_FNAME]],
|
on_kw: [[GREEN], [Ripper::EXPR_ARG, Ripper::EXPR_CLASS, Ripper::EXPR_BEG, Ripper::EXPR_END, Ripper::EXPR_FNAME]],
|
||||||
on_label: [[MAGENTA], [Ripper::EXPR_LABELED]],
|
on_label: [[MAGENTA], [Ripper::EXPR_LABELED]],
|
||||||
|
on_label_end: [[RED], [Ripper::EXPR_BEG]],
|
||||||
on_qwords_beg: [[RED], [Ripper::EXPR_BEG]],
|
on_qwords_beg: [[RED], [Ripper::EXPR_BEG]],
|
||||||
|
on_qsymbols_beg: [[RED], [Ripper::EXPR_BEG]],
|
||||||
on_regexp_beg: [[RED, BOLD], [Ripper::EXPR_BEG]],
|
on_regexp_beg: [[RED, BOLD], [Ripper::EXPR_BEG]],
|
||||||
on_regexp_end: [[RED, BOLD], [Ripper::EXPR_BEG]],
|
on_regexp_end: [[RED, BOLD], [Ripper::EXPR_BEG]],
|
||||||
on_symbeg: [[BLUE, BOLD], [Ripper::EXPR_FNAME]],
|
on_symbeg: [[BLUE, BOLD], [Ripper::EXPR_FNAME]],
|
||||||
on_tstring_beg: [[RED], [Ripper::EXPR_BEG, Ripper::EXPR_END, Ripper::EXPR_ARG, Ripper::EXPR_CMDARG]],
|
on_tstring_beg: [[RED], [Ripper::EXPR_BEG, Ripper::EXPR_END, Ripper::EXPR_ARG, Ripper::EXPR_CMDARG]],
|
||||||
on_tstring_content: [[RED], [Ripper::EXPR_BEG, Ripper::EXPR_END, Ripper::EXPR_ARG, Ripper::EXPR_CMDARG]],
|
on_tstring_content: [[RED], [Ripper::EXPR_BEG, Ripper::EXPR_END, Ripper::EXPR_ARG, Ripper::EXPR_CMDARG, Ripper::EXPR_FNAME]],
|
||||||
on_tstring_end: [[RED], [Ripper::EXPR_END]],
|
on_tstring_end: [[RED], [Ripper::EXPR_END]],
|
||||||
}
|
}
|
||||||
rescue NameError
|
rescue NameError
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# frozen_string_literal: false
|
# frozen_string_literal: false
|
||||||
require 'test/unit'
|
require 'test/unit'
|
||||||
require 'irb/color'
|
require 'irb/color'
|
||||||
|
require 'rubygems'
|
||||||
require 'stringio'
|
require 'stringio'
|
||||||
|
|
||||||
module TestIRB
|
module TestIRB
|
||||||
|
@ -36,6 +37,11 @@ module TestIRB
|
||||||
"4.5.6" => "4.5.6",
|
"4.5.6" => "4.5.6",
|
||||||
"[1]]]" => "[1]]]",
|
"[1]]]" => "[1]]]",
|
||||||
"\e[0m\n" => "^[[#{BLUE}#{BOLD}0#{CLEAR}m\n",
|
"\e[0m\n" => "^[[#{BLUE}#{BOLD}0#{CLEAR}m\n",
|
||||||
|
"%w[a b]" => "#{RED}%w[#{CLEAR}#{RED}a#{CLEAR} #{RED}b#{CLEAR}#{RED}]#{CLEAR}",
|
||||||
|
"%i[c d]" => "#{RED}%i[#{CLEAR}#{RED}c#{CLEAR} #{RED}d#{CLEAR}#{RED}]#{CLEAR}",
|
||||||
|
"{'a': 1}" => "{#{RED}'#{CLEAR}#{RED}a#{CLEAR}#{RED}':#{CLEAR} #{BLUE}#{BOLD}1#{CLEAR}}",
|
||||||
|
":Struct" => "#{BLUE}#{BOLD}:#{CLEAR}#{BLUE}#{BOLD}#{UNDERLINE}Struct#{CLEAR}",
|
||||||
|
"<<EOS\nhere\nEOS" => "#{RED}<<EOS#{CLEAR}\n#{RED}here#{CLEAR}\n#{RED}EOS#{CLEAR}",
|
||||||
}.each do |code, result|
|
}.each do |code, result|
|
||||||
actual = with_term { IRB::Color.colorize_code(code) }
|
actual = with_term { IRB::Color.colorize_code(code) }
|
||||||
assert_equal(result, actual, "Case: colorize_code(#{code.dump})\nResult: #{humanized_literal(actual)}")
|
assert_equal(result, actual, "Case: colorize_code(#{code.dump})\nResult: #{humanized_literal(actual)}")
|
||||||
|
|
Loading…
Add table
Reference in a new issue