private Declaration CreateProjectDeclaration(QualifiedModuleName projectQualifiedName, VBProject project) { var qualifiedName = projectQualifiedName.QualifyMemberName(project.Name); var projectId = qualifiedName.QualifiedModuleName.ProjectId; var projectDeclaration = new ProjectDeclaration(qualifiedName, project.Name); var references = _projectReferences.Where(projectContainingReference => projectContainingReference.ContainsKey(projectId)); foreach (var reference in references) { int priority = reference[projectId]; projectDeclaration.AddProjectReference(reference.ReferencedProjectId, priority); } return projectDeclaration; }
public DeclarationSymbolsListener( QualifiedModuleName qualifiedName, Accessibility componentAccessibility, vbext_ComponentType type, IEnumerable<CommentNode> comments, IEnumerable<IAnnotation> annotations, IDictionary<Tuple<string, DeclarationType>, Attributes> attributes, HashSet<ReferencePriorityMap> projectReferences) { _qualifiedName = qualifiedName; _comments = comments; _annotations = annotations; _attributes = attributes; var declarationType = type == vbext_ComponentType.vbext_ct_StdModule ? DeclarationType.Module : DeclarationType.Class; var project = _qualifiedName.Component.Collection.Parent; var projectQualifiedName = new QualifiedModuleName(project); _projectReferences = projectReferences; _projectDeclaration = CreateProjectDeclaration(projectQualifiedName, project); var key = Tuple.Create(_qualifiedName.ComponentName, declarationType); var moduleAttributes = attributes.ContainsKey(key) ? attributes[key] : new Attributes(); _moduleDeclaration = new Declaration( _qualifiedName.QualifyMemberName(_qualifiedName.Component.Name), _projectDeclaration, _projectDeclaration, _qualifiedName.Component.Name, false, false, componentAccessibility, declarationType, null, Selection.Home, false, FindAnnotations(), moduleAttributes); SetCurrentScope(); }
public DeclarationSymbolsListener(QualifiedModuleName qualifiedName, Accessibility componentAccessibility, vbext_ComponentType type) { _qualifiedName = qualifiedName; var declarationType = type == vbext_ComponentType.vbext_ct_StdModule ? DeclarationType.Module //: result.Component.Type == vbext_ComponentType.vbext_ct_MSForm // ? DeclarationType.UserForm // : result.Component.Type == vbext_ComponentType.vbext_ct_Document // ? DeclarationType.Document : DeclarationType.Class; SetCurrentScope(); _declarations.Add(new Declaration(_qualifiedName.QualifyMemberName(_qualifiedName.Component.Name), _qualifiedName.Project.Name, _qualifiedName.Component.Name, false, false, componentAccessibility, declarationType, null, Selection.Home)); if (type == vbext_ComponentType.vbext_ct_MSForm) { DeclareControlsAsMembers(qualifiedName.Component); } }