public async Task <QuickInfoItem?> GetQuickInfoItemAsync(IAsyncQuickInfoSession session, CancellationToken cancellationToken) { SnapshotPoint?triggerPoint = session.GetTriggerPoint(_buffer?.CurrentSnapshot); if (triggerPoint.HasValue) { SnapshotSpan span = new(triggerPoint.Value.Snapshot, triggerPoint.Value.Position, 0); IMappingTagSpan <TokenTag> tag = _tags.GetTags(span).FirstOrDefault(t => t.Tag.GetTooltipAsync != null); if (tag != null && tag.Tag.GetTooltipAsync != null) { object?tooltip = await tag.Tag.GetTooltipAsync(triggerPoint.Value); if (tooltip == null) { return(null); } ContainerElement container = new(ContainerElementStyle.Stacked, tooltip); ITrackingSpan applicapleTo = _buffer !.CurrentSnapshot.CreateTrackingSpan(tag.Span.GetSpans(_buffer)[0], SpanTrackingMode.EdgeExclusive); return(new QuickInfoItem(applicapleTo, container)); } } return(null); }
internal void NewSnapshot(TickNumber tick) { if (tick <= Tick) { throw new ArgumentOutOfRangeException("New tick number must be greater than current tick:" + Tick); } Snapshot snapshot = (Snapshot)CurrentSnapshot.Clone(); Snapshots.Add(tick, snapshot); Tick = tick; }
public ITextSnapshot Insert(int position, string text) { var sb = new StringBuilder(); sb.Append(CurrentSnapshot.GetText(0, position)); sb.Append(text); sb.Append(CurrentSnapshot.GetText(position, CurrentSnapshot.Length - position)); TextChangeMock change = new TextChangeMock(position, 0, String.Empty, text); TextSnapshotMock nextSnapshot = ((TextSnapshotMock)CurrentSnapshot).CreateNextSnapshot(sb.ToString(), change); ApplyChange(nextSnapshot); return(CurrentSnapshot); }
public SimState(Snapshot initialSnapshot) { InitialSnapshot = (Snapshot)initialSnapshot.Clone(); Snapshots.Add(0, (Snapshot)initialSnapshot.Clone()); EntityID largestEntityID = 0; foreach (SimComponent component in CurrentSnapshot.GetComponents()) { if (component.EntityID > largestEntityID) { largestEntityID = component.EntityID; } } NextEntityID = largestEntityID + 1; }
public ITextSnapshot Replace(Span replaceSpan, string replaceWith) { var sb = new StringBuilder(); var oldText = CurrentSnapshot.GetText(replaceSpan); sb.Append(CurrentSnapshot.GetText(0, replaceSpan.Start)); sb.Append(replaceWith); sb.Append(CurrentSnapshot.GetText(replaceSpan.End, CurrentSnapshot.Length - replaceSpan.End)); TextChangeMock change = new TextChangeMock(replaceSpan.Start, replaceSpan.Length, oldText, replaceWith); TextSnapshotMock nextSnapshot = ((TextSnapshotMock)CurrentSnapshot).CreateNextSnapshot(sb.ToString(), change); ApplyChange(nextSnapshot); return(CurrentSnapshot); }
public void LoadSnapshotFromJson(string jsonString) { var json = JObject.Parse(jsonString); var data = json.ToObject <SnapshotModel>(); if (data.NodesCache != null) { SetCurrentSnapshotNodesCache(data.NodesCache); } if (data.DependenciesWorld != null) { foreach (var dependency in data.DependenciesWorld) { CurrentSnapshot.AddDependency(dependency.ItemSpec, dependency.Properties); } } }
public void UpdateDependencyInSnapshot(string itemSpec, IImmutableDictionary <string, string> properties) { CurrentSnapshot.UpdateDependency(itemSpec, properties); }
public void AddDependencyToSnapshot(string itemSpec, IImmutableDictionary <string, string> properties) { CurrentSnapshot.AddDependency(itemSpec, properties); }
private string GetText() { return CurrentSnapshot.GetText(); }
private NugetDependenciesChange ProcessResolvedChanges(IProjectSubscriptionUpdate projectSubscriptionUpdate, HashSet <IDependencyNode> rootTreeNodes) { var changes = projectSubscriptionUpdate.ProjectChanges; var resolvedChanges = ResolvedReferenceRuleNames.Where(x => changes.Keys.Contains(x)) .Select(ruleName => changes[ruleName]) .ToImmutableHashSet(); var dependenciesChange = new NugetDependenciesChange(); var newDependencies = new HashSet <DependencyMetadata>(); foreach (var change in resolvedChanges) { if (!change.Difference.AnyChanges) { continue; } foreach (string removedItemSpec in change.Difference.RemovedItems) { var metadata = CurrentSnapshot.RemoveDependency(removedItemSpec); var itemNode = rootTreeNodes.FirstOrDefault( x => x.Id.ItemSpec.Equals(removedItemSpec, StringComparison.OrdinalIgnoreCase)); if (itemNode != null) { dependenciesChange.RemovedNodes.Add(metadata); } } foreach (string changedItemSpec in change.Difference.ChangedItems) { var properties = GetProjectItemProperties(change.After, changedItemSpec); if (properties == null) { continue; } var metadata = CurrentSnapshot.UpdateDependency(changedItemSpec, properties); var itemNode = rootTreeNodes.FirstOrDefault( x => x.Id.ItemSpec.Equals(changedItemSpec, StringComparison.OrdinalIgnoreCase)); if (itemNode != null) { dependenciesChange.UpdatedNodes.Add(metadata); } } foreach (string addedItemSpec in change.Difference.AddedItems) { var properties = GetProjectItemProperties(change.After, addedItemSpec); if (properties == null) { continue; } var newDependency = CurrentSnapshot.AddDependency(addedItemSpec, properties); newDependencies.Add(newDependency); } } // Note: currently deisgn time build is limited and is not aware of conditional on TFM // PackageReference items: Unresolved PackageReference items for conditional TFMs are not sent. // Thus we will display conditional PackageReferences if they were resolved and are in assets.json. // This limitation should go away, when we have final design for cross target dependencies and // DesignTime build. var allTargetsDependencies = CurrentSnapshot.GetUniqueTopLevelDependencies(); if (allTargetsDependencies.Count == 0) { return(dependenciesChange); } var addedTopLevelDependencies = newDependencies.Where( x => allTargetsDependencies.Contains(x.ItemSpec)); foreach (var addedDependency in addedTopLevelDependencies) { dependenciesChange.AddedNodes.Add(addedDependency); } return(dependenciesChange); }
public void LineForPosition(int position, int expectedLine) { Assert.AreEqual(expectedLine, CurrentSnapshot.LineNumberForPosition(position)); }
public IEnumerable <SimComponent> GetComponents() { return(CurrentSnapshot.GetComponents()); }
public IEnumerable <T> GetComponents <T>() where T : SimComponent { return(CurrentSnapshot.GetComponents <T>()); }
internal void Update(IEnumerable <ComponentUpdate> updates) { CurrentSnapshot.Update(updates); }
TextSpan TextSpan(int start, int length) { return(CurrentSnapshot.GetSpan(start, length)); }
public void RemoveDependencyFromSnapshot(string itemSpec) { CurrentSnapshot.RemoveDependency(itemSpec); }
public HashSet <string> GetUniqueTopLevelDependencies() { return(CurrentSnapshot.GetUniqueTopLevelDependencies()); }
protected override SimpleInputSnapshot GetAvailableSnapshot() { CurrentSnapshot.Clear(); NativeWindow.ProcessEvents(); return(CurrentSnapshot); }