mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-05-15 06:05:49 -06:00
Added rule "subroutine_reference" for PCRE editor.
Подсветка синтаксиса добавлена для этого правила PCRE.
This commit is contained in:
parent
96dde8b019
commit
c01b1118f0
2 changed files with 38 additions and 3 deletions
|
|
@ -41,6 +41,7 @@ ctlStyledText::ctlStyledText(wxWindow* parent, wxWindowID id, const wxPoint& pos
|
||||||
Create(parent, id, pos, size, style);
|
Create(parent, id, pos, size, style);
|
||||||
m_regparser.SetStyleControl(this);
|
m_regparser.SetStyleControl(this);
|
||||||
setDecorate();
|
setDecorate();
|
||||||
|
//RegExpParser::TEST();
|
||||||
}
|
}
|
||||||
void ctlStyledText::OnPositionStc(wxStyledTextEvent& event) {
|
void ctlStyledText::OnPositionStc(wxStyledTextEvent& event) {
|
||||||
|
|
||||||
|
|
@ -140,13 +141,14 @@ void RegExpParser::SetStyleControl(wxStyledTextCtrl* ctrl) {
|
||||||
for (int i = 0; i < sizeof(stylemap) / sizeof(stylemap[0]); i++) stylemap[i] = -1;
|
for (int i = 0; i < sizeof(stylemap) / sizeof(stylemap[0]); i++) stylemap[i] = -1;
|
||||||
wxColour bgdef = ctrl->GetBackgroundColour();
|
wxColour bgdef = ctrl->GetBackgroundColour();
|
||||||
wxColour fgdef = ctrl->GetForegroundColour();
|
wxColour fgdef = ctrl->GetForegroundColour();
|
||||||
tablestyle.push_back(styletextdef{ fgdef,wxColour("#ddd0fe") }); // 00 verb
|
tablestyle.push_back(styletextdef{ fgdef,wxColour("#ddd0fe") }); // 0 verb
|
||||||
tablestyle.push_back(styletextdef{ fgdef,wxColour("#fed1ff") }); // 1 capture (reed)
|
tablestyle.push_back(styletextdef{ fgdef,wxColour("#fed1ff") }); // 1 conditional_pattern
|
||||||
tablestyle.push_back(styletextdef{ fgdef,wxColour("#e3e3e3") }); // 2 backslash
|
tablestyle.push_back(styletextdef{ fgdef,wxColour("#e3e3e3") }); // 2 backslash
|
||||||
tablestyle.push_back(styletextdef{ fgdef,wxColour("#d3a776") }); // 3 class char
|
tablestyle.push_back(styletextdef{ fgdef,wxColour("#d3a776") }); // 3 class char
|
||||||
tablestyle.push_back(styletextdef{ fgdef,wxColour("#99beff") }); // 4 quantifier
|
tablestyle.push_back(styletextdef{ fgdef,wxColour("#99beff") }); // 4 quantifier
|
||||||
tablestyle.push_back(styletextdef{ wxColour("#989898"),bgdef }); // 5 comment
|
tablestyle.push_back(styletextdef{ wxColour("#989898"),bgdef }); // 5 comment
|
||||||
tablestyle.push_back(styletextdef{ fgdef,wxColour("#bae634") }); // 6 captute (green)
|
tablestyle.push_back(styletextdef{ fgdef,wxColour("#bae634") }); // 6 capture (green)
|
||||||
|
tablestyle.push_back(styletextdef{ fgdef,wxColour("#f5f45b") }); // 7 subroutine_reference
|
||||||
|
|
||||||
tablestyle.push_back(styletextdef{ fgdef,wxColour("#ed5c65") }); // last color. error bg
|
tablestyle.push_back(styletextdef{ fgdef,wxColour("#ed5c65") }); // last color. error bg
|
||||||
stylemap[0] = tablestyle.size() - 1; // error bg
|
stylemap[0] = tablestyle.size() - 1; // error bg
|
||||||
|
|
@ -169,6 +171,8 @@ void RegExpParser::SetStyleControl(wxStyledTextCtrl* ctrl) {
|
||||||
stylemap[defrule::capture] = 6;
|
stylemap[defrule::capture] = 6;
|
||||||
stylemap[defrule::capture_1] = 6;
|
stylemap[defrule::capture_1] = 6;
|
||||||
stylemap[defrule::conditional_pattern] = 1;
|
stylemap[defrule::conditional_pattern] = 1;
|
||||||
|
stylemap[defrule::subroutine_reference] = 7;
|
||||||
|
|
||||||
//wxLogNull logNo;
|
//wxLogNull logNo;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
int userstyle = wxSTC_STYLE_LASTPREDEFINED + 1;
|
int userstyle = wxSTC_STYLE_LASTPREDEFINED + 1;
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,7 @@ public:
|
||||||
character_class_atom,
|
character_class_atom,
|
||||||
character_class,
|
character_class,
|
||||||
conditional_pattern,
|
conditional_pattern,
|
||||||
|
subroutine_reference,
|
||||||
call_out,
|
call_out,
|
||||||
|
|
||||||
other,
|
other,
|
||||||
|
|
@ -119,7 +120,9 @@ public:
|
||||||
const char* const t7[] = { ".","\\V", "\\p{^ssa&}","\\psd" };
|
const char* const t7[] = { ".","\\V", "\\p{^ssa&}","\\psd" };
|
||||||
const char* const t8[] = { "[[:^digit:]]", "[[:digit:]]" };
|
const char* const t8[] = { "[[:^digit:]]", "[[:digit:]]" };
|
||||||
const char* const t9[] = { "(?(sd)ffff)","(?(-23)cond_expr|no_expr_cond)" };
|
const char* const t9[] = { "(?(sd)ffff)","(?(-23)cond_expr|no_expr_cond)" };
|
||||||
|
const char* const t10[] = { "(?1)"};
|
||||||
|
|
||||||
|
test_2(RegExpParser::defrule::pcre, t10, sizeof(t10) / sizeof(t10[0]));
|
||||||
test_2(RegExpParser::defrule::pcre, t5, sizeof(t5) / sizeof(t5[0]));
|
test_2(RegExpParser::defrule::pcre, t5, sizeof(t5) / sizeof(t5[0]));
|
||||||
test_2(RegExpParser::defrule::conditional_pattern, t9, sizeof(t9) / sizeof(t9[0]));
|
test_2(RegExpParser::defrule::conditional_pattern, t9, sizeof(t9) / sizeof(t9[0]));
|
||||||
test_2(RegExpParser::defrule::character_class, t8, sizeof(t8) / sizeof(t8[0]));
|
test_2(RegExpParser::defrule::character_class, t8, sizeof(t8) / sizeof(t8[0]));
|
||||||
|
|
@ -336,6 +339,7 @@ const RegExpParser::ERule rules[] = {
|
||||||
USE_RULE(RegExpParser::rule_type::alternative, RegExpParser::defrule::atomic_group),
|
USE_RULE(RegExpParser::rule_type::alternative, RegExpParser::defrule::atomic_group),
|
||||||
USE_RULE(RegExpParser::rule_type::alternative, RegExpParser::defrule::lookaround),
|
USE_RULE(RegExpParser::rule_type::alternative, RegExpParser::defrule::lookaround),
|
||||||
USE_RULE(RegExpParser::rule_type::alternative, RegExpParser::defrule::backreference),
|
USE_RULE(RegExpParser::rule_type::alternative, RegExpParser::defrule::backreference),
|
||||||
|
USE_RULE(RegExpParser::rule_type::alternative, RegExpParser::defrule::subroutine_reference),
|
||||||
USE_RULE(RegExpParser::rule_type::alternative, RegExpParser::defrule::conditional_pattern),
|
USE_RULE(RegExpParser::rule_type::alternative, RegExpParser::defrule::conditional_pattern),
|
||||||
USE_RULE(RegExpParser::rule_type::alternative, RegExpParser::defrule::comment),
|
USE_RULE(RegExpParser::rule_type::alternative, RegExpParser::defrule::comment),
|
||||||
USE_RULE(RegExpParser::rule_type::alternative, RegExpParser::defrule::capture),
|
USE_RULE(RegExpParser::rule_type::alternative, RegExpParser::defrule::capture),
|
||||||
|
|
@ -562,6 +566,33 @@ const RegExpParser::ERule rules[] = {
|
||||||
USE_RULE(RegExpParser::rule_type::zero_one, RegExpParser::defrule::digits),
|
USE_RULE(RegExpParser::rule_type::zero_one, RegExpParser::defrule::digits),
|
||||||
TEXTSIM(")"),
|
TEXTSIM(")"),
|
||||||
ZERO,
|
ZERO,
|
||||||
|
START_R_STYLE(RegExpParser::defrule::subroutine_reference, RegExpParser::rule_type::styled_ALL),
|
||||||
|
TEXTSIM("(?"),
|
||||||
|
START_A_R(RegExpParser::rule_type::none),
|
||||||
|
TEXTSIM("R"),
|
||||||
|
TEXT_TYPE(RegExpParser::rule_type::alternative | RegExpParser::rule_type::char_any | RegExpParser::rule_type::zero_one, "+-"),
|
||||||
|
USE_RULE(RegExpParser::rule_type::none, RegExpParser::defrule::digits),
|
||||||
|
TEXT_TYPE(RegExpParser::rule_type::alternative | RegExpParser::rule_type::text, "&"),
|
||||||
|
USE_RULE(RegExpParser::rule_type::none, RegExpParser::defrule::name),
|
||||||
|
TEXT_TYPE(RegExpParser::rule_type::alternative | RegExpParser::rule_type::text, "P>"),
|
||||||
|
USE_RULE(RegExpParser::rule_type::none, RegExpParser::defrule::name),
|
||||||
|
ZERO,
|
||||||
|
TEXTSIM(")"),
|
||||||
|
TEXT_TYPE(RegExpParser::rule_type::alternative | RegExpParser::rule_type::text, "\\g<"),
|
||||||
|
USE_RULE(RegExpParser::rule_type::none, RegExpParser::defrule::name),
|
||||||
|
TEXTSIM(">"),
|
||||||
|
TEXT_TYPE(RegExpParser::rule_type::alternative | RegExpParser::rule_type::text, "\\g\'"),
|
||||||
|
USE_RULE(RegExpParser::rule_type::none, RegExpParser::defrule::name),
|
||||||
|
TEXTSIM("\'"),
|
||||||
|
TEXT_TYPE(RegExpParser::rule_type::alternative | RegExpParser::rule_type::text, "\\g<"),
|
||||||
|
TEXT_TYPE(RegExpParser::rule_type::char_any | RegExpParser::rule_type::zero_one, "+-"),
|
||||||
|
USE_RULE(RegExpParser::rule_type::none, RegExpParser::defrule::digits),
|
||||||
|
TEXTSIM(">"),
|
||||||
|
TEXT_TYPE(RegExpParser::rule_type::alternative | RegExpParser::rule_type::text, "\\g\'"),
|
||||||
|
TEXT_TYPE(RegExpParser::rule_type::char_any | RegExpParser::rule_type::zero_one, "+-"),
|
||||||
|
USE_RULE(RegExpParser::rule_type::none, RegExpParser::defrule::digits),
|
||||||
|
TEXTSIM("\'"),
|
||||||
|
ZERO,
|
||||||
START_R(RegExpParser::defrule::conditional_pattern),
|
START_R(RegExpParser::defrule::conditional_pattern),
|
||||||
TEXTSIM("(?"),
|
TEXTSIM("(?"),
|
||||||
START_A_R(RegExpParser::rule_type::none),
|
START_A_R(RegExpParser::rule_type::none),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue