diff options
| author | vitya-smirnov <[email protected]> | 2025-10-09 11:47:11 +0300 |
|---|---|---|
| committer | vitya-smirnov <[email protected]> | 2025-10-09 12:29:52 +0300 |
| commit | 724570b69c83f07a4402c1e5de524d3a9724374f (patch) | |
| tree | 6dbfccadcabc3c1e2b7565e39aa3107d5eaaebe8 /yql/essentials/sql/v1/highlight/sql_highlight.cpp | |
| parent | 03e69055c041c7bd87765d093463ab1941dc30db (diff) | |
YQL-20496: Improve YQL highlighting
commit_hash:edf72fd8386c41f858f677152612bd58680506a6
Diffstat (limited to 'yql/essentials/sql/v1/highlight/sql_highlight.cpp')
| -rw-r--r-- | yql/essentials/sql/v1/highlight/sql_highlight.cpp | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/yql/essentials/sql/v1/highlight/sql_highlight.cpp b/yql/essentials/sql/v1/highlight/sql_highlight.cpp index 72dd095ec3f..3f17934cef4 100644 --- a/yql/essentials/sql/v1/highlight/sql_highlight.cpp +++ b/yql/essentials/sql/v1/highlight/sql_highlight.cpp @@ -86,7 +86,7 @@ TUnit MakeUnit<EUnitKind::QuotedIdentifier>(Syntax& s) { .Kind = EUnitKind::QuotedIdentifier, .Patterns = { {s.Get("ID_QUOTED")}, - }, + {s.Concat({"COMMAT", "ID_PLAIN"})}}, .IsPlain = false, }; } @@ -103,6 +103,30 @@ TUnit MakeUnit<EUnitKind::BindParameterIdentifier>(Syntax& s) { } template <> +TUnit MakeUnit<EUnitKind::OptionIdentifier>(Syntax& s) { + return { + .Kind = EUnitKind::OptionIdentifier, + .Patterns = { + { + .Body = TStringBuilder() + << s.Get("ID_PLAIN") << "(\\." << s.Get("ID_PLAIN") << ")?", + .Before = TStringBuilder() << "PRAGMA" << s.Get("WS"), + .IsCaseInsensitive = true, + }, + { + .Body = s.Get("ID_PLAIN"), + .Before = TStringBuilder() << "WITH" << s.Get("WS"), + .IsCaseInsensitive = true, + }, + { + .Body = s.Get("ID_PLAIN"), + .After = " ?" + s.Get("EQUALS"), + .IsCaseInsensitive = true, + }}, + }; +} + +template <> TUnit MakeUnit<EUnitKind::TypeIdentifier>(Syntax& s) { TVector<NSQLTranslationV1::TRegexPattern> types; NJson::TJsonValue json = NJson::ReadJsonFastTree(NResource::Find("types.json")); @@ -148,6 +172,8 @@ TUnit MakeUnit<EUnitKind::Literal>(Syntax& s) { {s.Get("REAL")}, {s.Get("INTEGER_VALUE")}, {s.Get("DIGITS")}, + {.Body = "TRUE", .IsCaseInsensitive = true}, + {.Body = "FALSE", .IsCaseInsensitive = true}, }, }; } @@ -218,13 +244,14 @@ THighlighting MakeHighlighting(const NSQLReflect::TLexerGrammar& grammar) { THighlighting h; h.Units.emplace_back(MakeUnit<EUnitKind::Comment>(s)); h.Units.emplace_back(MakeUnit<EUnitKind::Punctuation>(s)); + h.Units.emplace_back(MakeUnit<EUnitKind::OptionIdentifier>(s)); h.Units.emplace_back(MakeUnit<EUnitKind::FunctionIdentifier>(s)); h.Units.emplace_back(MakeUnit<EUnitKind::TypeIdentifier>(s)); + h.Units.emplace_back(MakeUnit<EUnitKind::Literal>(s)); h.Units.emplace_back(MakeUnit<EUnitKind::Keyword>(s)); h.Units.emplace_back(MakeUnit<EUnitKind::QuotedIdentifier>(s)); h.Units.emplace_back(MakeUnit<EUnitKind::BindParameterIdentifier>(s)); h.Units.emplace_back(MakeUnit<EUnitKind::Identifier>(s)); - h.Units.emplace_back(MakeUnit<EUnitKind::Literal>(s)); h.Units.emplace_back(MakeUnit<EUnitKind::StringLiteral>(s)); h.Units.emplace_back(MakeUnit<EUnitKind::Whitespace>(s)); @@ -248,6 +275,9 @@ void Out<NSQLHighlight::EUnitKind>(IOutputStream& out, NSQLHighlight::EUnitKind case NSQLHighlight::EUnitKind::BindParameterIdentifier: out << "bind-parameter-identifier"; break; + case NSQLHighlight::EUnitKind::OptionIdentifier: + out << "option-identifier"; + break; case NSQLHighlight::EUnitKind::TypeIdentifier: out << "type-identifier"; break; |
