public void FindOverridables(IType cls, List <IMember> classMembers, List <IMember> interfaceMembers, bool includeOverridenClassMembers, bool includeOverridenInterfaceMembers) { ProjectDom pctx = GetParserContext(cls); List <IType> visited = new List <IType> (); cls = pctx.ResolveType(cls); FindOverridables(pctx, cls, cls, classMembers, interfaceMembers, visited, includeOverridenClassMembers, includeOverridenInterfaceMembers); }
internal void SetupResolver(DomLocation resolvePosition) { this.resolvePosition = resolvePosition; this.resultTable.Clear(); callingType = GetTypeAtCursor(unit, fileName, resolvePosition); if (callingType != null) { callingMember = GetMemberAt(callingType, fileName, resolvePosition); callingType = dom.ResolveType(callingType); if (callingMember == null) { DomLocation posAbove = resolvePosition; posAbove.Line--; callingMember = GetMemberAt(callingType, fileName, posAbove); } } if (memberCompilationUnit != null) { return; } if (callingMember != null && !setupLookupTableVisitor) { string wrapper = CreateWrapperClassForMember(callingMember, fileName, editor); using (ICSharpCode.NRefactory.IParser parser = ICSharpCode.NRefactory.ParserFactory.CreateParser(lang, new StringReader(wrapper))) { parser.Parse(); memberCompilationUnit = parser.CompilationUnit; lookupTableVisitor.VisitCompilationUnit(parser.CompilationUnit, null); lookupVariableLine = CallingMember.Location.Line - 2; setupLookupTableVisitor = true; } } else if (editor != null) { string wrapper = editor.Text; using (ICSharpCode.NRefactory.IParser parser = ICSharpCode.NRefactory.ParserFactory.CreateParser(lang, new StringReader(wrapper))) { parser.Parse(); memberCompilationUnit = parser.CompilationUnit; lookupTableVisitor.VisitCompilationUnit(parser.CompilationUnit, null); lookupVariableLine = 0; setupLookupTableVisitor = true; } } }