diff --git a/samples/ruby.rb b/samples/ruby.rb index ba42f46..580dc57 100644 --- a/samples/ruby.rb +++ b/samples/ruby.rb @@ -43,7 +43,7 @@ UNINITCORE = %{ # Unicode identifiers (valid in Ruby) 变量 = 0x5_4eddaee -π = 3.14_159e+2, ?\u0234, ?\,, ?\x0A, ?s, trued, falsess +π = 3.14_159e+2, ?\u0234, ?\,, ?\x0A, ?s, true, false 挨拶 = -> { "こんに \n ちは" } # Method using unicode variable names diff --git a/src/syntax/ruby.cc b/src/syntax/ruby.cc index ca7359c..c29f0ce 100644 --- a/src/syntax/ruby.cc +++ b/src/syntax/ruby.cc @@ -801,15 +801,15 @@ std::shared_ptr ruby_parse(std::vector *tokens, } else { uint32_t start = i; if (i + 3 < len && text[i] == 't' && text[i + 1] == 'r' && - text[i + 2] == 'u' && text[i + 3] == 'e' && i + 4 < len && - !identifier_char(text[i + 4])) { + text[i + 2] == 'u' && text[i + 3] == 'e' && + ((i + 4 < len && !identifier_char(text[i + 4])) || i + 4 == len)) { i += 4; tokens->push_back({start, i, TokenKind::True}); continue; } if (i + 4 < len && text[i] == 'f' && text[i + 1] == 'a' && text[i + 2] == 'l' && text[i + 3] == 's' && text[i + 4] == 'e' && - i + 5 < len && !identifier_char(text[i + 5])) { + ((i + 5 < len && !identifier_char(text[i + 5])) || i + 5 == len)) { i += 5; tokens->push_back({start, i, TokenKind::False}); continue; diff --git a/themes/default.json b/themes/default.json index 09a49c2..0cbd02b 100644 --- a/themes/default.json +++ b/themes/default.json @@ -25,7 +25,7 @@ "fg": "#7AE93C" }, "False": { - "fg": "#F03138" + "fg": "#EF5168" }, "Char": { "fg": "#FFAF70"