Improved appearance of package file list underlines, U++ LOG macros now highlighted (default green)

git-svn-id: svn://ultimatepp.org/upp/trunk@618 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2008-11-07 11:15:08 +00:00
parent ec204cf931
commit 61af975ae0
7 changed files with 132 additions and 118 deletions

View file

@ -227,10 +227,11 @@ void CodeEditor::Bracket(int pos, HlSt& hls)
Index<String> CodeEditor::keyword[HIGHLIGHT_COUNT];
Index<String> CodeEditor::name[HIGHLIGHT_COUNT];
Index<String> CodeEditor::kw_upp_macros;
Index<String> CodeEditor::kw_sql_base;
Index<String> CodeEditor::kw_sql_bool;
Index<String> CodeEditor::kw_sql_func;
Index<String> CodeEditor::kw_upp;
int CodeEditor::kw_macros;
int CodeEditor::kw_logs;
int CodeEditor::kw_sql_base;
int CodeEditor::kw_sql_func;
const Index<String>& CodeEditor::CppKeywords()
{
@ -238,6 +239,13 @@ const Index<String>& CodeEditor::CppKeywords()
return keyword[0];
}
int CodeEditor::InitUpp(const char **q)
{
while(*q)
kw_upp.Add(*q++);
return kw_upp.GetCount();
}
void CodeEditor::InitKeywords()
{
if(keyword[0].GetCount() == 0)
@ -313,14 +321,17 @@ void CodeEditor::InitKeywords()
};
static const char *upp_macros[] = {
"CLASSNAME", "THISBACK", "THISBACK1", "THISBACK2", "THISBACK3",
"QUOTE", "XASSERT", "NEVER", "XNEVER", "CHECK", "XCHECK", "ASSERT", "RQUOTE",
"NAMESPACE_UPP", "END_UPP_NAMESPACE",
NULL
};
static const char *upp_logs[] = {
"LOG", "LOGF", "DUMP", "DUMPC", "DUMPCC", "DUMPCCC",
"LLOG", "LLOGF", "LDUMP", "LDUMPC", "LDUMPCC", "LDUMPCCC",
"DLOG", "DLOGF", "DDUMP", "DDUMPC", "DDUMPCC", "DDUMPCCC",
"LOGBEGIN", "LOGEND", "LOGBLOCK", "LOGHEXDUMP",
"QUOTE", "XASSERT", "NEVER", "XNEVER", "CHECK", "XCHECK", "ASSERT",
"RLOG", "RLOGBEGIN", "RLOGEND", "RLOGBLOCK", "RLOGHEXDUMP", "RQUOTE",
"RLOGSRCPOS", "RDUMP", "RDUMPC",
"NAMESPACE_UPP", "END_UPP_NAMESPACE",
"RLOG", "RLOGF", "RDUMP", "RDUMPC", "RDUMPCC", "RDUMPCCC",
"LOGBEGIN", "LOGEND", "LOGBLOCK", "LOGHEXDUMP", "LOGSRCPOS",
"RLOGBEGIN", "RLOGEND", "RLOGBLOCK", "RLOGHEXDUMP", "RLOGSRCPOS",
NULL
};
static const char *sql_base[] = {
@ -366,18 +377,11 @@ void CodeEditor::InitKeywords()
while(*q)
name[i].Add(*q++);
}
q = upp_macros;
while(*q)
kw_upp_macros.Add(*q++);
q = sql_base;
while(*q)
kw_sql_base.Add(*q++);
q = sql_func;
while(*q)
kw_sql_func.Add(*q++);
q = sql_bool;
while(*q)
kw_sql_bool.Add(*q++);
kw_macros = InitUpp(upp_macros);
kw_logs = InitUpp(upp_logs);
kw_sql_base = InitUpp(sql_base);
kw_sql_func = InitUpp(sql_func);
InitUpp(sql_bool);
}
}
@ -575,12 +579,14 @@ void CodeEditor::HighlightLine(int line, Vector<LineEdit::Highlight>& hl, int po
while(iscid(*q) && q < e)
id.Cat(*q++);
String iid = id;
int uq = kw_upp.Find(iid);
hls.Put(int(q - p), keyword[highlight].Find(iid) >= 0 ? hl_style[INK_KEYWORD] :
name[highlight].Find(iid) >= 0 ? hl_style[INK_UPP] :
kw_upp_macros.Find(iid) >= 0 ? hl_style[INK_UPPMACROS] :
kw_sql_base.Find(iid) >= 0 ? hl_style[INK_SQLBASE] :
kw_sql_func.Find(iid) >= 0 ? hl_style[INK_SQLFUNC] :
kw_sql_bool.Find(iid) >= 0 ? hl_style[INK_SQLBOOL] :
uq >= 0 ? uq < kw_macros ? hl_style[INK_UPPMACROS] :
uq < kw_logs ? hl_style[INK_UPPLOGS] :
uq < kw_sql_base ? hl_style[INK_SQLBASE] :
uq < kw_sql_func ? hl_style[INK_SQLFUNC] :
hl_style[INK_SQLBOOL] :
IsUpperString(iid) && !sm.macro ? hl_style[INK_UPPER] :
hl_style[INK_NORMAL]);
p = q;