From c594dc79aa4c4cce4af11ea4467f019a601ef0fa Mon Sep 17 00:00:00 2001 From: cxl Date: Tue, 28 Jul 2015 16:52:36 +0000 Subject: [PATCH] ide: ContextGoto fixed issue with local variables git-svn-id: svn://ultimatepp.org/upp/trunk@8762 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/CtrlLib/LineEdit.cpp | 32 +++++++++++++++++--------------- uppsrc/ide/ContextGoto.cpp | 4 ++-- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/uppsrc/CtrlLib/LineEdit.cpp b/uppsrc/CtrlLib/LineEdit.cpp index cef07918c..8a3c993b9 100644 --- a/uppsrc/CtrlLib/LineEdit.cpp +++ b/uppsrc/CtrlLib/LineEdit.cpp @@ -386,16 +386,16 @@ void LineEdit::Paint0(Draw& w) { } else if(h.chr == ' ') { - LLOG("Highlight -> space[" << q << "] paper = " << h.paper); - if(pass == 0 && x >= -fsz.cy) { - w.DrawRect(x, y, fsz.cx, fsz.cy, h.paper); - if(showspaces && h.paper != SColorHighlight && q < tx.GetLength()) - w.DrawRect(x + fsz.cx / 2, y + fsz.cy / 2, 2, 2, showcolor); - if(bordercolumn > 0 && bordercolumn >= gp && bordercolumn < gp + 1) - w.DrawRect((bordercolumn - sc.x) * fsz.cx, y, 1, fsz.cy, bordercolor); - } - q++; - gp++; + LLOG("Highlight -> space[" << q << "] paper = " << h.paper); + if(pass == 0 && x >= -fsz.cy) { + w.DrawRect(x, y, fsz.cx, fsz.cy, h.paper); + if(showspaces && h.paper != SColorHighlight && q < tx.GetLength()) + w.DrawRect(x + fsz.cx / 2, y + fsz.cy / 2, 2, 2, showcolor); + if(bordercolumn > 0 && bordercolumn >= gp && bordercolumn < gp + 1) + w.DrawRect((bordercolumn - sc.x) * fsz.cx, y, 1, fsz.cy, bordercolor); + } + q++; + gp++; } else { bool cjk = IsCJKIdeograph(h.chr); @@ -423,17 +423,19 @@ void LineEdit::Paint0(Draw& w) { int gpx = gp * fsz.cx - scx; w.DrawRect(gpx, y, sz.cx - gpx, fsz.cy, !rectsel && sell <= len && len < selh ? color[PAPER_SELECTED] - : (do_highlight ? hl.Top() : ih).paper); + : (do_highlight ? hl.Top() : ih).paper); if(bordercolumn > 0 && bordercolumn >= gp) w.DrawRect((bordercolumn - sc.x) * fsz.cx, y, 1, fsz.cy, bordercolor); } if(pass == 0 && showlines) { int yy = 2 * fsz.cy / 3; int x = gp * fsz.cx - scx; - w.DrawRect(x, y + yy, fsz.cx / 2, 1, showcolor); - if(fsz.cx > 2) - w.DrawRect(x + 1, y + yy - 1, 1, 3, showcolor); - w.DrawRect(x + fsz.cx / 2, y + yy / 2, 1, yy - yy / 2, showcolor); + w.DrawRect(x, y + yy, fsz.cx / 2, 1, showcolor); + if(fsz.cx > 2) + w.DrawRect(x + 1, y + yy - 1, 1, 3, showcolor); + if(fsz.cx > 5) + w.DrawRect(x + 2, y + yy - 2, 1, 5, showcolor); + w.DrawRect(x + fsz.cx / 2, y + yy / 2, 1, yy - yy / 2, showcolor); } if(pass == 0 && !IsNull(hline) && sell == selh && i == cursorline) { w.DrawRect(0, y, sz.cx, 1, hline); diff --git a/uppsrc/ide/ContextGoto.cpp b/uppsrc/ide/ContextGoto.cpp index 68227abb6..a3ce94180 100644 --- a/uppsrc/ide/ContextGoto.cpp +++ b/uppsrc/ide/ContextGoto.cpp @@ -176,7 +176,7 @@ void Ide::ContextGoto0(int pos) ci++; break; } - if(c == '}' || c == 0) + if(c == '}' || c == 0 || c == ';') break; ci++; } @@ -292,7 +292,7 @@ void Ide::ContextGoto0(int pos) todo.Append(f.GetBases()); } } - if(scope.GetCount() == 0) { + if(xp.GetCount() == 0) { q = parser.local.Find(id); if(q >= 0) { // Try locals AddHistory();