public void ObjectChanged() { object o = model.CurrentObject; if (o != null && tracking != null) { Tracking.Pair span = null; if (o is AST) { AST ast = (AST)o; FindSpan fs = new FindSpan(tracking); ASTVisitor visit = new ASTVisitor(fs.Visitor); ast.visit(visit); span = fs.pair; } if (span != null) { rtb.SelectionLength = 0; rtb.SelectionStart = span.begin; rtb.SelectionLength = span.end - span.begin; rtb.HideSelection = false; } else { rtb.HideSelection = true; } } else { rtb.HideSelection = true; } }
public void Visitor(AST ast) { Tracking.Pair pair = tracking.Span(ast); if (pair != null && pair.begin <= lo && pair.end >= hi) { this.FoundObject = ast; } }
public void Visitor(AST ast) { Tracking.Pair span = tracking.Span(ast); if (span != null) { if (pair == null) { pair = span; } else { if (pair.begin > span.begin) { pair.begin = span.begin; } if (pair.end < span.end) { pair.end = span.end; } } } }