private SDType CreateSDType(INamedTypeSymbol typeSymbol, SDNamespace sdNamespace) { var sdType = new SDType(typeSymbol.GetIdentifier(), typeSymbol.Name, sdNamespace) { Accessibility = typeSymbol.DeclaredAccessibility.ToString().ToLower(), IsAbstract = typeSymbol.IsAbstract, IsReferenceType = typeSymbol.IsReferenceType, IsSealed = typeSymbol.IsSealed, IsStatic = typeSymbol.IsStatic, IsProjectStranger = false, Kind = typeSymbol.TypeKind.ToString().ToLower() }; foreach (var reference in typeSymbol.DeclaringSyntaxReferences.ToList()) { var region = new SDRegion { Start = reference.Span.Start, End = reference.Span.End, Filename = reference.SyntaxTree.FilePath }; sdType.Regions.Add(region); } return(sdType); }
private void InsertNamespaceDescription(SDNamespace sdNamespace) { var description = sdNamespace.Descriptions.GetElementOrDefault(_docLanguage); if (description != null) { _wordTemplater.AppendMarkdown(new Markdown().Transform(description.Transform(new Helper(_sdProject).TransformLinkToken))); } }
public NamespaceViewModel(SDNamespace sdNamespace, ObservableCollection <string> excludedIdentifiers) : base(sdNamespace.Fullname, null, excludedIdentifiers) { Text = sdNamespace.Fullname; Image = "pack://application:,,,/SharpDox.Resources;component/Icons/Namespace_public.png"; foreach (var sdType in sdNamespace.Types) { Children.Add(new TypeViewModel(sdType, this, excludedIdentifiers)); } }
public NamespaceViewModel(SDNamespace sdNamespace, ICoreConfigSection sharpDoxConfig) : base(sdNamespace.Fullname, null, sharpDoxConfig) { Text = sdNamespace.Fullname; Image = "pack://application:,,,/SharpDox.GUI;component/Resources/Icons/Namespace_public.png"; foreach (var sdType in sdNamespace.Types) { Children.Add(new TypeViewModel(sdType, this, sharpDoxConfig)); } }
private void StructureParseNamespaces(CSharpProject project, SDRepository sdRepository) { var types = project.Compilation.MainAssembly.TopLevelTypeDefinitions.ToList(); for (int j = 0; j < types.Count; j++) { PostParseMessage(_parserStrings.ParsingNamespace + ": " + types[j].Namespace); var sdNamespace = new SDNamespace(types[j].Namespace); sdRepository.AddNamespace(sdNamespace); } }
public void InsertNamespace(SDNamespace sdNamespace, int navigationLevel) { _wordTemplater.AppendHeader(sdNamespace.Fullname, navigationLevel); InsertNamespaceDescription(sdNamespace); InsertNamespaceOverview(sdNamespace, navigationLevel + 1); InsertUseUsedBlock(sdNamespace, navigationLevel + 1); _wordTemplater.AppendPageBreak(); foreach (var sdType in sdNamespace.Types) { _typeBuilder.InsertType(sdType, navigationLevel + 1); } }
private void InsertUseUsedBlock(SDNamespace sdNamespace, int navigationLevel) { if (sdNamespace.Uses.Count > 0) { _wordTemplater.AppendHeader(_wordStrings.Uses, navigationLevel); sdNamespace.Uses.Select(u => u.Fullname).ToList().ForEach(u => _wordTemplater.AppendParagraph(u, "CenteredNoMargin")); } if (sdNamespace.UsedBy.Count > 0) { _wordTemplater.AppendHeader(_wordStrings.UsedBy, navigationLevel); sdNamespace.UsedBy.Select(u => u.Fullname).ToList().ForEach(u => _wordTemplater.AppendParagraph(u, "CenteredNoMargin")); } }
private SDType CreateSDType(ITypeSymbol typeSymbol, bool isProjectStranger) { SDNamespace sdNamespace = null; if (typeSymbol is IArrayTypeSymbol) { sdNamespace = ParserOptions.SDRepository.GetNamespaceByIdentifier(((IArrayTypeSymbol)typeSymbol).ElementType.ContainingNamespace.GetIdentifier()); sdNamespace = sdNamespace ?? new SDNamespace(((IArrayTypeSymbol)typeSymbol).ElementType.ContainingNamespace.GetIdentifier()) { IsProjectStranger = true }; } else { sdNamespace = ParserOptions.SDRepository.GetNamespaceByIdentifier(typeSymbol.ContainingNamespace.GetIdentifier()); sdNamespace = sdNamespace ?? new SDNamespace(typeSymbol.ContainingNamespace.GetIdentifier()) { IsProjectStranger = true }; } var sdType = new SDType(typeSymbol.GetIdentifier(), typeSymbol.Name, sdNamespace) { Accessibility = typeSymbol.DeclaredAccessibility.ToString().ToLower(), IsAbstract = typeSymbol.IsAbstract, IsReferenceType = typeSymbol.IsReferenceType, IsSealed = typeSymbol.IsSealed, IsStatic = typeSymbol.IsStatic, IsProjectStranger = isProjectStranger, Kind = typeSymbol.TypeKind.ToString().ToLower() }; var declaringReferences = !isProjectStranger?typeSymbol.DeclaringSyntaxReferences.ToList() : new List <SyntaxReference>(); foreach (var reference in declaringReferences) { var region = new SDRegion { Start = reference.Span.Start, End = reference.Span.End, Filename = reference.SyntaxTree.FilePath }; sdType.Regions.Add(region); } ParserOptions.SDRepository.AddType(sdType); return(sdType); }
internal void ParseMethodCalls(SDNamespace sdNamespace) { for (int i = 0; i < sdNamespace.Types.Count; i++) { foreach (var sdMethod in sdNamespace.Types[i].Methods) { HandleOnItemParseStart(sdMethod.Name, i, sdNamespace.Types.Count); var file = _solution.GetFile(sdNamespace.Types[i].Region.Filename); var methodAstNode = file.SyntaxTree.GetNodeContaining( new TextLocation(sdMethod.Region.BeginLine, sdMethod.Region.BeginColumn), new TextLocation(sdMethod.Region.EndLine, sdMethod.Region.EndColumn)); methodAstNode.AcceptVisitor(new MethodVisitor(_repository, sdMethod, sdNamespace.Types[i], file)); } } }
private SDType CreateSDType(INamedTypeSymbol typeSymbol, SDNamespace sdNamespace) { var sdType = new SDType(typeSymbol.GetIdentifier(), typeSymbol.Name, sdNamespace) { Accessibility = typeSymbol.DeclaredAccessibility.ToString().ToLower(), IsAbstract = typeSymbol.IsAbstract, IsReferenceType = typeSymbol.IsReferenceType, IsSealed = typeSymbol.IsSealed, IsStatic = typeSymbol.IsStatic, IsProjectStranger = false, Kind = typeSymbol.TypeKind.ToString().ToLower() }; sdType.Regions = GetRegions(typeSymbol); return(sdType); }
private void ParseNamespaces() { var pi = 0; for (int i = 0; i < _solution.Projects.Count; i++) { pi = i; var types = _solution.Projects[i].Compilation.MainAssembly.TopLevelTypeDefinitions.ToList(); for (int j = 0; j < types.Count; j++) { PostProgress(_sdBuildStrings.ParsingNamespace + ": " + types[j].Namespace, j, types.Count, pi, _solution.Projects.Count); var sdNamespace = new SDNamespace(types[j].Namespace); _repository.AddNamespace(sdNamespace); } } }
private SDType CreateSDType(ITypeSymbol typeSymbol, INamespaceSymbol namespaceSymbol) { var sdNamespace = new SDNamespace(namespaceSymbol.GetIdentifier()) { IsProjectStranger = true }; var sdType = new SDType(typeSymbol.GetIdentifier(), typeSymbol.Name, sdNamespace) { Accessibility = typeSymbol.DeclaredAccessibility.ToString().ToLower(), IsAbstract = typeSymbol.IsAbstract, IsReferenceType = typeSymbol.IsReferenceType, IsSealed = typeSymbol.IsSealed, IsStatic = typeSymbol.IsStatic, IsProjectStranger = true, Kind = typeSymbol.TypeKind.ToString().ToLower() }; return(sdType); }
private void InsertNamespaceOverview(SDNamespace sdNamespace, int navigationLevel) { _wordTemplater.AppendHeader(_wordStrings.Overview, navigationLevel); var headers = new List <string> { string.Empty, _wordStrings.Name, _wordStrings.Description }; var rows = new List <List <string> >(); foreach (var sdType in sdNamespace.Types) { var documentation = sdType.Documentations.GetElementOrDefault(_docLanguage); rows.Add(new List <string> { string.Format("<img width=\"16\" src=\"{0}\"/>", Icons.GetIconPath("class", sdType.Accessibility)), sdType.Name, documentation != null ? documentation.Summary.ToString() : string.Empty }); } _wordTemplater.AppendTable(headers, rows); }