public override void EnterVsNew(VBAParser.VsNewContext context) { _skipIdentifiers = true; var identifiers = context.valueStmt().GetRuleContexts <VBAParser.ImplicitCallStmt_InStmtContext>(); var lastIdentifier = identifiers.Last(); var name = lastIdentifier.GetText(); var matches = _declarations[name].Where(d => d.DeclarationType == DeclarationType.Class).ToList(); var result = matches.Count <= 1 ? matches.SingleOrDefault() : GetClosestScopeDeclaration(matches, context, DeclarationType.Class); if (result == null) { return; } var reference = new IdentifierReference(_qualifiedName, result.IdentifierName, lastIdentifier.GetSelection(), context, result); result.AddReference(reference); }
public override void ExitVsNew(VBAParser.VsNewContext context) { _skipIdentifiers = false; }