protected AbstractSymbolDefinitionTextWriter( SymbolFilterOptions filter, DefinitionListFormat format = null, SymbolDocumentationProvider documentationProvider = null, INamedTypeSymbol hierarchyRoot = null) : base(filter, format, documentationProvider, hierarchyRoot) { }
internal TypeDocumentationModel( INamedTypeSymbol typeSymbol, SymbolFilterOptions filter) { Symbol = typeSymbol; Filter = filter; }
public ListSymbolsCommand( ListSymbolsCommandLineOptions options, SymbolFilterOptions symbolFilterOptions, WrapListOptions wrapListOptions, SymbolDefinitionListLayout layout, SymbolDefinitionPartFilter ignoredParts, in ProjectFilter projectFilter) : base(projectFilter)
public SymbolDefinitionJsonWriter( JsonWriter writer, SymbolFilterOptions filter = null, DefinitionListFormat format = null, SymbolDocumentationProvider documentationProvider = null) : base(filter, format, documentationProvider) { _writer = writer; }
public SymbolDefinitionJsonWriter( JsonWriter writer, SymbolFilterOptions filter = null, DefinitionListFormat format = null, SymbolDocumentationProvider documentationProvider = null, INamedTypeSymbol hierarchyRoot = null) : base(filter, format, documentationProvider, hierarchyRoot) { _writer = writer; }
public SymbolDefinitionHtmlWriter( XmlWriter writer, SymbolFilterOptions filter = null, DefinitionListFormat format = null, SymbolDocumentationProvider documentationProvider = null, DocumentationDisplayMode documentationDisplayMode = DocumentationDisplayMode.ToolTip) : base(filter, format, documentationProvider) { _writer = writer; DocumentationDisplayMode = documentationDisplayMode; }
public SymbolDefinitionHtmlWriter( XmlWriter writer, SymbolFilterOptions filter = null, DefinitionListFormat format = null, SymbolDocumentationProvider documentationProvider = null, INamedTypeSymbol hierarchyRoot = null, SourceReferenceProvider sourceReferenceProvider = null, DocumentationDisplayMode documentationDisplayMode = DocumentationDisplayMode.ToolTip) : base(filter, format, documentationProvider, hierarchyRoot) { _writer = writer; SourceReferenceProvider = sourceReferenceProvider; DocumentationDisplayMode = documentationDisplayMode; }
protected SymbolDefinitionWriter( SymbolFilterOptions filter = null, DefinitionListFormat format = null, SymbolDocumentationProvider documentationProvider = null, INamedTypeSymbol hierarchyRoot = null) { Filter = filter ?? SymbolFilterOptions.Default; Format = format ?? DefinitionListFormat.Default; DocumentationProvider = documentationProvider; HierarchyRoot = hierarchyRoot; _definitionNameFormat = new SymbolDisplayFormat(typeQualificationStyle: SymbolDisplayTypeQualificationStyle.NameOnly); }
public static TypeHierarchy Create( IEnumerable <IAssemblySymbol> assemblies, SymbolFilterOptions filter = null, IComparer <INamedTypeSymbol> comparer = null) { Func <INamedTypeSymbol, bool> predicate = null; if (filter != null) { predicate = t => filter.IsMatch(t); } IEnumerable <INamedTypeSymbol> types = assemblies.SelectMany(a => a.GetTypes(predicate)); return(Create(types, comparer)); }
internal DocumentationModel( IEnumerable <Compilation> compilations, SymbolFilterOptions filter, IEnumerable <string> additionalXmlDocumentationPaths = null) { Compilations = compilations.ToImmutableArray(); Assemblies = compilations.Select(f => f.Assembly).ToImmutableArray(); Filter = filter; _symbolData = new Dictionary <ISymbol, SymbolDocumentationData>(); _xmlDocumentations = new Dictionary <IAssemblySymbol, XmlDocumentation>(); if (additionalXmlDocumentationPaths != null) { _additionalXmlDocumentationPaths = additionalXmlDocumentationPaths.ToImmutableArray(); } }
internal DocumentationModel( Compilation compilation, IEnumerable <IAssemblySymbol> assemblies, SymbolFilterOptions filter, IEnumerable <string> additionalXmlDocumentationPaths = null) { Compilations = ImmutableArray.Create(compilation); Assemblies = ImmutableArray.CreateRange(assemblies); Filter = filter; _symbolData = new Dictionary <ISymbol, SymbolDocumentationData>(); _xmlDocumentations = new Dictionary <IAssemblySymbol, XmlDocumentation>(); if (additionalXmlDocumentationPaths != null) { _additionalXmlDocumentationPaths = additionalXmlDocumentationPaths.ToImmutableArray(); } }
protected SymbolDefinitionWriter( SymbolFilterOptions filter = null, DefinitionListFormat format = null, SymbolDocumentationProvider documentationProvider = null) { Filter = filter ?? SymbolFilterOptions.Default; Format = format ?? DefinitionListFormat.Default; DocumentationProvider = documentationProvider; _typeDefinitionNameFormat = new SymbolDisplayFormat( typeQualificationStyle: (Layout == SymbolDefinitionListLayout.TypeHierarchy) ? SymbolDisplayTypeQualificationStyle.NameAndContainingTypesAndNamespaces : SymbolDisplayTypeQualificationStyle.NameOnly, genericsOptions: SymbolDisplayGenericsOptions.IncludeTypeParameters); _memberDefinitionNameFormat = new SymbolDisplayFormat( typeQualificationStyle: SymbolDisplayTypeQualificationStyle.NameOnly, genericsOptions: SymbolDisplayGenericsOptions.IncludeTypeParameters, miscellaneousOptions: SymbolDisplayMiscellaneousOptions.UseSpecialTypes); }
public static bool HasAttributes(ISymbol symbol, SymbolFilterOptions filter) { if (IsMatch(symbol)) { return(true); } switch (symbol.Kind) { case SymbolKind.NamedType: { var typeSymbol = (INamedTypeSymbol)symbol; if (typeSymbol.TypeKind == TypeKind.Delegate && HasAttributes(typeSymbol.DelegateInvokeMethod?.Parameters ?? ImmutableArray <IParameterSymbol> .Empty)) { return(true); } break; } case SymbolKind.Event: { var eventSymbol = (IEventSymbol)symbol; if (IsMatch(eventSymbol.AddMethod)) { return(true); } if (IsMatch(eventSymbol.RemoveMethod)) { return(true); } break; } case SymbolKind.Method: { var methodSymbol = (IMethodSymbol)symbol; if (HasAttributes(methodSymbol.Parameters)) { return(true); } break; } case SymbolKind.Property: { var propertySymbol = (IPropertySymbol)symbol; if (HasAttributes(propertySymbol.Parameters)) { return(true); } if (IsMatch(propertySymbol.GetMethod)) { return(true); } if (IsMatch(propertySymbol.SetMethod)) { return(true); } break; } } return(false); bool HasAttributes(ImmutableArray <IParameterSymbol> parameters) { return(parameters.Any(f => IsMatch(f))); } bool IsMatch(ISymbol s) { if (s != null) { foreach (AttributeData attribute in s.GetAttributes()) { if (filter.IsMatch(s, attribute)) { return(true); } } } return(false); } }
private static async Task <int> ListSymbolsAsync(ListSymbolsCommandLineOptions options) { if (!options.TryGetProjectFilter(out ProjectFilter projectFilter)) { return(1); } if (!TryParseOptionValueAsEnum(options.Depth, ParameterNames.Depth, out DocumentationDepth depth, DocumentationDepth.Member)) { return(1); } if (!TryParseOptionValueAsEnumFlags(options.WrapList, ParameterNames.WrapList, out WrapListOptions wrapListOptions)) { return(1); } if (!TryParseMetadataNames(options.IgnoredAttributes, out ImmutableArray <MetadataName> ignoredAttributes)) { return(1); } if (!TryParseMetadataNames(options.IgnoredSymbols, out ImmutableArray <MetadataName> ignoredSymbols)) { return(1); } if (!TryParseOptionValueAsEnumFlags(options.IgnoredParts, ParameterNames.IgnoredParts, out SymbolDefinitionPartFilter ignoredParts)) { return(1); } if (!TryParseOptionValueAsEnum(options.Layout, ParameterNames.Layout, out SymbolDefinitionListLayout layout, SymbolDefinitionListLayout.NamespaceList)) { return(1); } if (!TryParseOptionValueAsEnumFlags(options.Visibility, ParameterNames.Visibility, out VisibilityFilter visibilityFilter, SymbolFilterOptions.Default.Visibility)) { return(1); } ImmutableArray <SymbolFilterRule> rules = (ignoredSymbols.Any()) ? ImmutableArray.Create <SymbolFilterRule>(new IgnoredNameSymbolFilterRule(ignoredSymbols)) : ImmutableArray <SymbolFilterRule> .Empty; ImmutableArray <AttributeFilterRule> attributeRules = ImmutableArray.Create <AttributeFilterRule>( IgnoredAttributeNameFilterRule.Default, new IgnoredAttributeNameFilterRule(ignoredAttributes)); var symbolFilterOptions = new SymbolFilterOptions( visibility: visibilityFilter, symbolGroups: GetSymbolGroupFilter(), rules: rules, attributeRules: attributeRules); var command = new ListSymbolsCommand( options: options, symbolFilterOptions: symbolFilterOptions, wrapListOptions: wrapListOptions, layout: layout, ignoredParts: ignoredParts, projectFilter: projectFilter); CommandResult result = await command.ExecuteAsync(options.Path, options.MSBuildPath, options.Properties); return((result.Kind == CommandResultKind.Success) ? 0 : 1); SymbolGroupFilter GetSymbolGroupFilter() { switch (depth) { case DocumentationDepth.Member: return(SymbolGroupFilter.TypeOrMember); case DocumentationDepth.Type: return(SymbolGroupFilter.Type); case DocumentationDepth.Namespace: return(SymbolGroupFilter.None); default: throw new InvalidOperationException(); } } }
protected AbstractSymbolDefinitionTextWriter( SymbolFilterOptions filter, DefinitionListFormat format = null, SymbolDocumentationProvider documentationProvider = null) : base(filter, format, documentationProvider) { }