private void snippetLinkTimer_Tick(object sender, EventArgs e)
{
_snippetLinkTimer.Enabled = false;
Range sr = Scintilla.Selection.Range;
if (_snippetLinks.IsActive)
{
SnippetLink oldActiveSnippetLink = _snippetLinks.ActiveSnippetLink;
SnippetLinkRange oldActiveRange = _snippetLinks.ActiveRange;
if (oldActiveRange != null && (oldActiveRange.IntersectsWith(sr) || oldActiveRange.Equals(sr)))
{
Scintilla.BeginInvoke(new MethodInvoker(delegate()
{
cascadeSnippetLinkRangeChange(oldActiveSnippetLink, oldActiveRange);
foreach (SnippetLink sl in _snippetLinks.Values)
foreach (Range r in sl.Ranges)
{
if (sl == _snippetLinks.ActiveSnippetLink)
{
r.ClearIndicator(Scintilla.Snippets.InactiveSnippetIndicator);
r.SetIndicator(Scintilla.Snippets.ActiveSnippetIndicator);
}
else
{
r.SetIndicator(Scintilla.Snippets.InactiveSnippetIndicator);
r.ClearIndicator(Scintilla.Snippets.ActiveSnippetIndicator);
}
}
if (_pendingUndo)
{
_pendingUndo = false;
Scintilla.UndoRedo.EndUndoAction();
}
Scintilla.NativeInterface.Colourise(0, -1);
}));
}
}
}