mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-09-05 17:44:55 -06:00
ide: .log file highlighting
git-svn-id: svn://ultimatepp.org/upp/trunk@7774 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
d6e5740da6
commit
8358cb32fa
7 changed files with 67 additions and 1 deletions
47
uppsrc/CodeEditor/LogSyntax.cpp
Normal file
47
uppsrc/CodeEditor/LogSyntax.cpp
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
#include "CodeEditor.h"
|
||||
|
||||
NAMESPACE_UPP
|
||||
|
||||
void LogSyntax::Highlight(const wchar *s, const wchar *end, HighlightOutput& hls, CodeEditor *editor, int line, int pos)
|
||||
{
|
||||
const HlStyle& ink = hl_style[INK_NORMAL];
|
||||
const HlStyle& paper = hl_style[PAPER_NORMAL];
|
||||
HlStyle err = hl_style[INK_ERROR];
|
||||
err.bold = true;
|
||||
bool hl_line = false;
|
||||
while(s < end) {
|
||||
if(IsDigit(*s)) {
|
||||
const wchar *s0 = s;
|
||||
bool fp = false;
|
||||
while(IsDigit(*s) || *s == '.' || *s == 'e') {
|
||||
fp = fp || *s == '.' || *s == 'e';
|
||||
s++;
|
||||
}
|
||||
hls.Put(int(s - s0), hl_style[fp ? INK_CONST_FLOAT : INK_CONST_INT]);
|
||||
}
|
||||
else
|
||||
if(IsAlpha(*s)) {
|
||||
static Index<String> rws;
|
||||
ONCELOCK {
|
||||
rws << "error" << "errors" << "warning" << "warnings" << "failed" << "exit" << "fatal"
|
||||
<< "failure" << "rejected";
|
||||
}
|
||||
String w;
|
||||
while(IsAlNum(*s))
|
||||
w.Cat(ToLower(*s++));
|
||||
bool hl = rws.Find(w) >= 0;
|
||||
hls.Put(w.GetCount(), hl ? err : ink);
|
||||
hl_line = hl_line || hl;
|
||||
}
|
||||
else {
|
||||
bool hl = findarg(*s, '[', ']', '(', ')', ':', '-', '=', '{', '}', '/', '<', '>', '*', '#', '@') >= 0;
|
||||
hls.Put(1, hl ? hl_style[INK_OPERATOR] : ink);
|
||||
s++;
|
||||
}
|
||||
|
||||
}
|
||||
if(hl_line)
|
||||
hls.SetPaper(0, hls.GetCount(), hl_style[PAPER_WARNING].color);
|
||||
}
|
||||
|
||||
END_UPP_NAMESPACE
|
||||
Loading…
Add table
Add a link
Reference in a new issue