void UpdateOutliningRegionTags(SyntaxTreeAndSnapshot syntaxTreeAndSnapshot) { _outliningRegionTags.Clear(); var outliningDefinitions = OutliningProvider.Default.GetOutliningDefinitions(syntaxTreeAndSnapshot.SyntaxTree.Root); _outliningRegionTags.AddRange(ToRegionTags(outliningDefinitions, syntaxTreeAndSnapshot)); }
public static ImmutableList <NavigationBarItem> Build(SyntaxTreeAndSnapshot codeGenerationUnitAndSnapshot) { var syntaxRoot = codeGenerationUnitAndSnapshot?.SyntaxTree.Root as GuiDescriptionSyntax; return(NavigatableSections.GetItems(syntaxRoot) .Select(item => new NavigationBarItem( displayName: item.DisplayName, imageMoniker: GdImageMonikers.GetMoniker(item.Glyph), extent: item.Extent, navigationPoint: item.NavigationPoint)) .ToImmutableList()); }
public static ImmutableList <NavigationBarItem> Build(SyntaxTreeAndSnapshot codeGenerationUnitAndSnapshot) { ThreadHelper.ThrowIfNotOnUIThread(); if (codeGenerationUnitAndSnapshot == null) { return(ImmutableList <NavigationBarItem> .Empty); } return(new[] { new NavigationBarItem( displayName: codeGenerationUnitAndSnapshot.Snapshot.TextBuffer.GetContainingProject()?.Name ?? ProjectMapper.MiscellaneousFiles, imageMoniker: KnownMonikers.CSProjectNode) }.ToImmutableList()); }
IEnumerable <ITagSpan <IOutliningRegionTag> > ToRegionTags(IEnumerable <OutliningDefinition> outliningDefinitions, SyntaxTreeAndSnapshot syntaxTreeAndSnapshot) { foreach (var outliningDefinition in outliningDefinitions) { var foldingExtent = outliningDefinition.FoldingExtent; var previewExtent = outliningDefinition.PreviewExtent; var foldingSpan = new SnapshotSpan(new SnapshotPoint(syntaxTreeAndSnapshot.Snapshot, foldingExtent.Start), length: foldingExtent.Length); var previewSpan = new SnapshotSpan(new SnapshotPoint(syntaxTreeAndSnapshot.Snapshot, previewExtent.Start), length: previewExtent.Length); var tag = new OutliningRegionTag( isDefaultCollapsed: outliningDefinition.IsDefaultCollapsed, isImplementation: outliningDefinition.IsImplementation, collapsedForm: outliningDefinition.CollapsedText, collapsedHintForm: _codeContentControlProvider.CreateContentControlForOutlining(previewSpan)); yield return(new TagSpan <IOutliningRegionTag>(foldingSpan, tag)); } }