public override async ValueTask OnReferenceFoundAsync(SourceReferenceItem reference) { using (await _semaphore.DisposableWaitAsync(CancellationToken).ConfigureAwait(false)) { // Each reference should be associated with a definition. If this somehow isn't the // case, we bail out early. if (!_definitionToId.TryGetValue(reference.Definition, out var definitionId)) { return; } // If the definition hasn't been reported yet, add it to our list of references to report. if (_definitionsWithoutReference.TryGetValue(definitionId, out var definition)) { _workQueue.AddWork(definition); _definitionsWithoutReference.Remove(definitionId); } _id++; // Creating a new VSReferenceItem for the reference var referenceItem = await GenerateVSReferenceItemAsync( _id, definitionId, _document, _position, reference.SourceSpan, reference.AdditionalProperties, _metadataAsSourceFileService, definitionText : null, definitionGlyph : Glyph.None, reference.SymbolUsageInfo, reference.IsWrittenTo, CancellationToken).ConfigureAwait(false); if (referenceItem != null) { _workQueue.AddWork(referenceItem); } } }
public VSTypeScriptSourceReferenceItem( VSTypeScriptDefinitionItem definition, VSTypeScriptDocumentSpan sourceSpan, VSTypeScriptSymbolUsageInfo symbolUsageInfo) { UnderlyingObject = new SourceReferenceItem(definition.UnderlyingObject, sourceSpan.ToDocumentSpan(), symbolUsageInfo.UnderlyingObject); }
public override async Task OnReferenceFoundAsync(SourceReferenceItem reference) { using (await _semaphore.DisposableWaitAsync(CancellationToken).ConfigureAwait(false)) { // Each reference should be associated with a definition. If this somehow isn't the // case, we bail out early. if (!_definitionToId.TryGetValue(reference.Definition, out var definitionId)) { return; } _id++; // Creating a new VSReferenceItem for the reference var referenceItem = await GenerateVSReferenceItemAsync( _id, definitionId, _document, _position, reference.SourceSpan, reference.AdditionalProperties, _metadataAsSourceFileService, definitionText : null, reference.SymbolUsageInfo, CancellationToken).ConfigureAwait(false); if (referenceItem != null) { AddToReferencesToReport_MustBeCalledUnderLock(referenceItem); } } }
public override Task OnReferenceFoundAsync(SourceReferenceItem reference) { lock (_gate) { _referenceItems.Add(reference); } return(SpecializedTasks.EmptyTask); }
public override Task OnReferenceFoundAsync(SourceReferenceItem reference) { lock (_gate) { _referenceItems.Add(reference); } return(Task.CompletedTask); }
public override Task OnReferenceFoundAsync(SourceReferenceItem reference) { // Normal references go into both sets of entries. return(OnEntryFoundAsync( reference.Definition, bucket => CreateDocumentLocationEntryAsync( bucket, reference.SourceSpan, isDefinitionLocation: false), addToEntriesWithDeclarations: true, addToEntriesWithoutDeclarations: true)); }
protected override Task OnReferenceFoundWorkerAsync(SourceReferenceItem reference) { // Normal references go into both sets of entries. return(OnEntryFoundAsync( reference.Definition, bucket => CreateDocumentSpanEntryAsync( bucket, reference.SourceSpan, isDefinitionLocation: false), addToEntriesWhenGroupingByDefinition: true, addToEntriesWhenNotGroupingByDefinition: true)); }
public Task OnReferenceFoundAsync(SourceReferenceItem reference) { var definitionItem = GetOrAddDefinitionItemId(reference.Definition); return(_endPoint.InvokeAsync(nameof(OnReferenceFoundAsync), new object[] { SerializableSourceReferenceItem.Dehydrate(definitionItem, reference), }, CancellationToken)); }
protected override Task OnReferenceFoundWorkerAsync(SourceReferenceItem reference) { // Normal references go into both sets of entries. return(OnEntryFoundAsync( reference.Definition, bucket => CreateDocumentSpanEntryAsync( bucket, reference.SourceSpan, reference.IsWrittenTo ? HighlightSpanKind.WrittenReference : HighlightSpanKind.Reference, reference.ReferenceInfo), addToEntriesWhenGroupingByDefinition: true, addToEntriesWhenNotGroupingByDefinition: true)); }
protected override Task OnReferenceFoundWorkerAsync(SourceReferenceItem reference) { // Normal references go into both sets of entries. return(OnEntryFoundAsync( reference.Definition, bucket => TryCreateDocumentSpanEntryAsync( bucket, reference.SourceSpan, reference.IsWrittenTo ? HighlightSpanKind.WrittenReference : HighlightSpanKind.Reference, reference.AdditionalPropertiesWithMultipleValues, reference.FindUsagesProperties), addToEntriesWhenGroupingByDefinition: true, addToEntriesWhenNotGroupingByDefinition: true)); }
protected override ValueTask OnReferenceFoundWorkerAsync(SourceReferenceItem reference) { // Normal references go into both sets of entries. We ensure an entry for the definition, and an entry // for the reference itself. return(OnEntryFoundAsync( reference.Definition, bucket => TryCreateDocumentSpanEntryAsync( bucket, reference.SourceSpan, reference.IsWrittenTo ? HighlightSpanKind.WrittenReference : HighlightSpanKind.Reference, reference.SymbolUsageInfo, reference.AdditionalProperties), addToEntriesWhenGroupingByDefinition: true, addToEntriesWhenNotGroupingByDefinition: true)); }
public override Task OnReferenceFoundAsync(SourceReferenceItem reference) { var loc = reference.SourceSpan; var fileName = loc.Document.FilePath; var offset = loc.SourceSpan.Start; string projectedName; int projectedOffset; var workspace = loc.Document.Project.Solution.Workspace as MonoDevelopWorkspace; if (workspace != null && workspace.TryGetOriginalFileFromProjection(fileName, offset, out projectedName, out projectedOffset)) { fileName = projectedName; offset = projectedOffset; } var sr = new MemberReference(loc, fileName, offset, loc.SourceSpan.Length); if (antiDuplicatesSet.Add(sr)) { sr.ReferenceUsageType = reference.IsWrittenTo ? ReferenceUsageType.Write : ReferenceUsageType.Read; } return(Task.CompletedTask); }
public sealed override Task OnReferenceFoundAsync(SourceReferenceItem reference) { UpdateCustomColumnsVisibility(reference.AdditionalPropertiesWithMultipleValues); return(OnReferenceFoundWorkerAsync(reference)); }
// We should never be called in a context where we get references. protected override Task OnReferenceFoundWorkerAsync(SourceReferenceItem reference) => throw new InvalidOperationException();
public override void OnReferenceFound(SourceReferenceItem reference) { OnEntryFound(reference.Definition, (db, c) => CreateDocumentLocationEntryAsync( db, reference.SourceSpan, isDefinitionLocation: false, cancellationToken: c)); }
// We should never be called in a context where we get references. protected override ValueTask OnReferenceFoundWorkerAsync(SourceReferenceItem reference, CancellationToken cancellationToken) => throw new InvalidOperationException();
public override Task OnReferenceFoundAsync(SourceReferenceItem reference) { return(OnEntryFoundAsync(reference.Definition, bucket => CreateDocumentLocationEntryAsync( bucket, reference.SourceSpan, isDefinitionLocation: false))); }
public Task OnReferenceFoundAsync(SourceReferenceItem reference) => _underlyingContext.OnReferenceFoundAsync(reference);
public sealed override Task OnReferenceFoundAsync(SourceReferenceItem reference) { UpdateCustomColumnsVisibility(reference.ReferenceInfo); return(OnReferenceFoundWorkerAsync(reference)); }
public sealed override Task OnReferenceFoundAsync(SourceReferenceItem reference) { return(OnReferenceFoundWorkerAsync(reference)); }
public virtual void OnReferenceFound(SourceReferenceItem reference) { }
public virtual Task OnReferenceFoundAsync(SourceReferenceItem reference) => SpecializedTasks.EmptyTask;
protected abstract Task OnReferenceFoundWorkerAsync(SourceReferenceItem reference);
public sealed override Task OnReferenceFoundAsync(SourceReferenceItem reference) => OnReferenceFoundWorkerAsync(reference);