public MetadataDefinitionItemEntry(
     AbstractTableDataSourceFindUsagesContext context,
     RoslynDefinitionBucket definitionBucket,
     IThreadingContext threadingContext)
     : base(definitionBucket, context.Presenter)
 {
     _threadingContext = threadingContext;
 }
Exemplo n.º 2
0
 public DefinitionItemEntry(
     AbstractTableDataSourceFindUsagesContext context,
     RoslynDefinitionBucket definitionBucket,
     DocumentSpan documentSpan,
     Guid projectGuid,
     SourceText sourceText)
     : base(context, definitionBucket, documentSpan, projectGuid, sourceText)
 {
 }
Exemplo n.º 3
0
 public DefinitionItemEntry(
     AbstractTableDataSourceFindUsagesContext context,
     RoslynDefinitionBucket definitionBucket,
     string documentName,
     Guid projectGuid,
     SourceText lineText,
     MappedSpanResult mappedSpanResult)
     : base(context, definitionBucket, documentName, projectGuid, lineText, mappedSpanResult)
 {
 }
Exemplo n.º 4
0
 public RoslynDefinitionBucket(
     StreamingFindUsagesPresenter presenter,
     AbstractTableDataSourceFindUsagesContext context,
     DefinitionItem definitionItem)
     : base(name: definitionItem.DisplayParts.JoinText() + " " + definitionItem.GetHashCode(),
            sourceTypeIdentifier: context.SourceTypeIdentifier,
            identifier: context.Identifier)
 {
     _presenter     = presenter;
     DefinitionItem = definitionItem;
 }
Exemplo n.º 5
0
            public static RoslynDefinitionBucket Create(
                StreamingFindUsagesPresenter presenter,
                AbstractTableDataSourceFindUsagesContext context,
                DefinitionItem definitionItem)
            {
                var isPrimary = definitionItem.Properties.ContainsKey(DefinitionItem.Primary);

                // Sort the primary item above everything else.
                var name = $"{(isPrimary ? 0 : 1)} {definitionItem.DisplayParts.JoinText()} {definitionItem.GetHashCode()}";

                return(new RoslynDefinitionBucket(
                           name, expandedByDefault: true, presenter, context, definitionItem));
            }
Exemplo n.º 6
0
 public DocumentSpanEntry(
     AbstractTableDataSourceFindUsagesContext context,
     RoslynDefinitionBucket definitionBucket,
     DocumentSpan documentSpan,
     bool isDefinitionLocation,
     Guid projectGuid,
     SourceText sourceText,
     ClassifiedSpansAndHighlightSpan classifiedSpans)
     : base(context, definitionBucket, documentSpan, projectGuid, sourceText)
 {
     _isDefinitionLocation         = isDefinitionLocation;
     _classifiedSpansAndHighlights = classifiedSpans;
 }
Exemplo n.º 7
0
            protected AbstractDocumentSpanEntry(
                AbstractTableDataSourceFindUsagesContext context,
                RoslynDefinitionBucket definitionBucket,
                Guid projectGuid,
                SourceText lineText,
                MappedSpanResult mappedSpanResult
                ) : base(definitionBucket, context.Presenter)
            {
                _boxedProjectGuid = projectGuid;

                _lineText         = lineText;
                _mappedSpanResult = mappedSpanResult;
            }
Exemplo n.º 8
0
 public RoslynDefinitionBucket(
     string name,
     bool expandedByDefault,
     StreamingFindUsagesPresenter presenter,
     AbstractTableDataSourceFindUsagesContext context,
     DefinitionItem definitionItem)
     : base(name,
            sourceTypeIdentifier: context.SourceTypeIdentifier,
            identifier: context.Identifier,
            expandedByDefault: expandedByDefault)
 {
     _presenter     = presenter;
     DefinitionItem = definitionItem;
 }
Exemplo n.º 9
0
 public DocumentSpanEntry(
     AbstractTableDataSourceFindUsagesContext context,
     RoslynDefinitionBucket definitionBucket,
     DocumentSpan documentSpan,
     DocumentHighlighting.HighlightSpanKind spanKind,
     string documentName,
     Guid projectGuid,
     SourceText sourceText,
     ClassifiedSpansAndHighlightSpan classifiedSpans)
     : base(context, definitionBucket, documentSpan, documentName, projectGuid, sourceText)
 {
     _spanKind = spanKind;
     _classifiedSpansAndHighlights = classifiedSpans;
 }
Exemplo n.º 10
0
            protected AbstractDocumentSpanEntry(
                AbstractTableDataSourceFindUsagesContext context,
                RoslynDefinitionBucket definitionBucket,
                DocumentSpan documentSpan,
                Guid projectGuid,
                SourceText sourceText)
                : base(definitionBucket)
            {
                _context = context;

                _documentSpan     = documentSpan;
                _boxedProjectGuid = projectGuid;
                _sourceText       = sourceText;
            }
Exemplo n.º 11
0
            public static DocumentSpanEntry?TryCreate(
                AbstractTableDataSourceFindUsagesContext context,
                RoslynDefinitionBucket definitionBucket,
                DocumentSpan documentSpan,
                HighlightSpanKind spanKind,
                MappedSpanResult mappedSpanResult,
                ExcerptResult excerptResult,
                SourceText lineText,
                SymbolUsageInfo symbolUsageInfo,
                ImmutableDictionary <string, string> customColumnsData
                )
            {
                var document = documentSpan.Document;

                var(guid, projectName, projectFlavor) = GetGuidAndProjectInfo(document);
                var entry = new DocumentSpanEntry(
                    context,
                    definitionBucket,
                    projectName,
                    projectFlavor,
                    guid,
                    spanKind,
                    mappedSpanResult,
                    excerptResult,
                    lineText,
                    symbolUsageInfo,
                    customColumnsData
                    );

                // Because of things like linked files, we may have a reference up in multiple
                // different locations that are effectively at the exact same navigation location
                // for the user. i.e. they're the same file/span.  Showing multiple entries for these
                // is just noisy and gets worse and worse with shared projects and whatnot.  So, we
                // collapse things down to only show a single entry for each unique file/span pair.
                var winningEntry = definitionBucket.GetOrAddEntry(documentSpan, entry);

                // If we were the one that successfully added this entry to the bucket, then pass us
                // back out to be put in the ui.
                if (winningEntry == entry)
                {
                    return(entry);
                }

                // We were not the winner.  Add our flavor to the entry that already exists, but throw
                // away the item we created as we do not want to add it to the ui.
                winningEntry.AddFlavor(projectFlavor);
                return(null);
            }
Exemplo n.º 12
0
 public DocumentSpanEntry(
     AbstractTableDataSourceFindUsagesContext context,
     RoslynDefinitionBucket definitionBucket,
     HighlightSpanKind spanKind,
     string documentName,
     Guid projectGuid,
     MappedSpanResult mappedSpanResult,
     ExcerptResult excerptResult,
     SourceText lineText,
     ImmutableDictionary <string, string> customColumnsData)
     : base(context,
            definitionBucket,
            documentName,
            projectGuid,
            lineText,
            mappedSpanResult)
 {
     _spanKind          = spanKind;
     _excerptResult     = excerptResult;
     _customColumnsData = customColumnsData;
 }
Exemplo n.º 13
0
            private DocumentSpanEntry(
                AbstractTableDataSourceFindUsagesContext context,
                RoslynDefinitionBucket definitionBucket,
                string rawProjectName,
                string?projectFlavor,
                Guid projectGuid,
                HighlightSpanKind spanKind,
                MappedSpanResult mappedSpanResult,
                ExcerptResult excerptResult,
                SourceText lineText,
                SymbolUsageInfo symbolUsageInfo,
                ImmutableDictionary <string, string> customColumnsData)
                : base(context, definitionBucket, projectGuid, lineText, mappedSpanResult)
            {
                _spanKind             = spanKind;
                _excerptResult        = excerptResult;
                _symbolReferenceKinds = symbolUsageInfo.ToSymbolReferenceKinds();
                _customColumnsData    = customColumnsData;

                _rawProjectName = rawProjectName;
                this.AddFlavor(projectFlavor);
            }