public virtual void GoToSource(VSOBJGOTOSRCTYPE gotoSourceType, [NotNull] ITrackingPoint triggerPoint) { Requires.NotNull(triggerPoint, nameof(triggerPoint)); Task <IEnumerable <INavigateToTarget> > task = GoToSourceAsync(gotoSourceType, triggerPoint).HandleNonCriticalExceptions(); var resultContinuation = task.ContinueWith(HandleGoToSourceResult, TaskContinuationOptions.OnlyOnRanToCompletion).HandleNonCriticalExceptions(); }
public override IEnumerable<INavigateToTarget> GoToSourceImpl(VSOBJGOTOSRCTYPE gotoSourceType, ITrackingPoint triggerPoint) { if (triggerPoint == null) return new INavigateToTarget[0]; return base.GoToSourceImpl(gotoSourceType, triggerPoint); }
public override IEnumerable <INavigateToTarget> GoToSourceImpl(VSOBJGOTOSRCTYPE gotoSourceType, ITrackingPoint triggerPoint) { if (triggerPoint == null) { return(new INavigateToTarget[0]); } return(base.GoToSourceImpl(gotoSourceType, triggerPoint)); }
public override IEnumerable <INavigateToTarget> GoToSourceImpl(VSOBJGOTOSRCTYPE gotoSourceType, [NotNull] ITrackingPoint triggerPoint) { Requires.NotNull(triggerPoint, nameof(triggerPoint)); if (triggerPoint == null) { return(new INavigateToTarget[0]); } ITextSnapshot currentSnapshot = triggerPoint.TextBuffer.CurrentSnapshot; SnapshotPoint point = triggerPoint.GetPoint(currentSnapshot); foreach (var span in this.ClassificationTagAggregator.GetTags(new SnapshotSpan(point, point))) { if (!span.Tag.ClassificationType.IsOfType(AntlrClassificationTypeNames.LexerRule) && !span.Tag.ClassificationType.IsOfType(AntlrClassificationTypeNames.ParserRule)) { continue; } NormalizedSnapshotSpanCollection spans = span.Span.GetSpans(currentSnapshot); if (spans.Count == 1) { SnapshotSpan span2 = spans[0]; SnapshotSpan span3 = span.Span.GetSpans(span.Span.AnchorBuffer)[0]; if (span2.Length == span3.Length) { SnapshotSpan span4 = spans[0]; if (span4.Contains(point)) { string ruleName = span2.GetText(); var rules = BackgroundParser.RuleSpans; KeyValuePair <ITrackingSpan, ITrackingPoint> value; if (rules != null && rules.TryGetValue(ruleName, out value)) { return new INavigateToTarget[] { new SnapshotSpanNavigateToTarget(TextView, new SnapshotSpan(value.Value.GetPoint(currentSnapshot), value.Value.GetPoint(currentSnapshot))) } } ; } } } } return(new INavigateToTarget[0]); }
public override IEnumerable <INavigateToTarget> GoToSourceImpl(VSOBJGOTOSRCTYPE gotoSourceType, ITrackingPoint triggerPoint) { if (triggerPoint == null) { return(new INavigateToTarget[0]); } ITextSnapshot currentSnapshot = triggerPoint.TextBuffer.CurrentSnapshot; SnapshotPoint point = triggerPoint.GetPoint(currentSnapshot); foreach (var span in this.ClassificationTagAggregator.GetTags(new SnapshotSpan(point, point))) { if (!span.Tag.ClassificationType.IsOfType(AntlrClassificationTypeNames.LexerRule) && !span.Tag.ClassificationType.IsOfType(AntlrClassificationTypeNames.ParserRule)) { continue; } NormalizedSnapshotSpanCollection spans = span.Span.GetSpans(currentSnapshot); if (spans.Count == 1) { SnapshotSpan span2 = spans[0]; SnapshotSpan span3 = span.Span.GetSpans(span.Span.AnchorBuffer)[0]; if (span2.Length == span3.Length) { SnapshotSpan span4 = spans[0]; if (span4.Contains(point)) { string ruleName = span2.GetText(); var rules = EditorNavigationSourceAggregator.GetNavigationTargets().ToArray(); var rule = rules.FirstOrDefault(x => string.Equals(x.Name, ruleName)); if (rule != null) { var snapshot = rule.Seek.Snapshot; var trackingSeek = snapshot.CreateTrackingSpan(rule.Seek.Span, SpanTrackingMode.EdgeExclusive); var seek = trackingSeek.GetSpan(TextView.TextBuffer.CurrentSnapshot); return(new INavigateToTarget[] { new SnapshotSpanNavigateToTarget(TextView, seek) }); } } } } } return(new INavigateToTarget[0]); }
public virtual IEnumerable <INavigateToTarget> GoToSourceImpl(VSOBJGOTOSRCTYPE gotoSourceType, ITrackingPoint triggerPoint) { Contract.Ensures(Contract.Result <IEnumerable <INavigateToTarget> >() != null); return(new INavigateToTarget[0]); }
public virtual Task <IEnumerable <INavigateToTarget> > GoToSourceAsync(VSOBJGOTOSRCTYPE gotoSourceType, ITrackingPoint triggerPoint) { return(Task.Factory.StartNew(() => GoToSourceImpl(gotoSourceType, triggerPoint))); }
public override IEnumerable<INavigateToTarget> GoToSourceImpl(VSOBJGOTOSRCTYPE gotoSourceType, ITrackingPoint triggerPoint) { if (triggerPoint == null) return new INavigateToTarget[0]; ITextSnapshot currentSnapshot = triggerPoint.TextBuffer.CurrentSnapshot; SnapshotPoint point = triggerPoint.GetPoint(currentSnapshot); foreach (var span in this.ClassificationTagAggregator.GetTags(new SnapshotSpan(point, point))) { if (!span.Tag.ClassificationType.IsOfType(AntlrClassificationTypeNames.LexerRule) && !span.Tag.ClassificationType.IsOfType(AntlrClassificationTypeNames.ParserRule)) { continue; } NormalizedSnapshotSpanCollection spans = span.Span.GetSpans(currentSnapshot); if (spans.Count == 1) { SnapshotSpan span2 = spans[0]; SnapshotSpan span3 = span.Span.GetSpans(span.Span.AnchorBuffer)[0]; if (span2.Length == span3.Length) { SnapshotSpan span4 = spans[0]; if (span4.Contains(point)) { string ruleName = span2.GetText(); var rules = BackgroundParser.RuleSpans; KeyValuePair<ITrackingSpan, ITrackingPoint> value; if (rules != null && rules.TryGetValue(ruleName, out value)) return new INavigateToTarget[] { new SnapshotSpanNavigateToTarget(TextView, new SnapshotSpan(value.Value.GetPoint(currentSnapshot), value.Value.GetPoint(currentSnapshot))) }; } } } } return new INavigateToTarget[0]; }
public virtual IEnumerable<INavigateToTarget> GoToSourceImpl(VSOBJGOTOSRCTYPE gotoSourceType, ITrackingPoint triggerPoint) { Contract.Ensures(Contract.Result<IEnumerable<INavigateToTarget>>() != null); return new INavigateToTarget[0]; }
public virtual Task<IEnumerable<INavigateToTarget>> GoToSourceAsync(VSOBJGOTOSRCTYPE gotoSourceType, ITrackingPoint triggerPoint) { return Task.Factory.StartNew(() => GoToSourceImpl(gotoSourceType, triggerPoint)); }
public virtual void GoToSource(VSOBJGOTOSRCTYPE gotoSourceType, ITrackingPoint triggerPoint) { Task<IEnumerable<INavigateToTarget>> task = GoToSourceAsync(gotoSourceType, triggerPoint).HandleNonCriticalExceptions(); var resultContinuation = task.ContinueWith(HandleGoToSourceResult, TaskContinuationOptions.OnlyOnRanToCompletion).HandleNonCriticalExceptions(); }
public virtual IEnumerable <INavigateToTarget> GoToSourceImpl(VSOBJGOTOSRCTYPE gotoSourceType, [NotNull] ITrackingPoint triggerPoint) { Requires.NotNull(triggerPoint, nameof(triggerPoint)); return(new INavigateToTarget[0]); }
public virtual Task <IEnumerable <INavigateToTarget> > GoToSourceAsync(VSOBJGOTOSRCTYPE gotoSourceType, [NotNull] ITrackingPoint triggerPoint) { Requires.NotNull(triggerPoint, nameof(triggerPoint)); return(Task.Factory.StartNew(() => GoToSourceImpl(gotoSourceType, triggerPoint))); }