Ejemplo n.º 1
0
        internal SyntaxVisualizerContainer(SyntaxVisualizerToolWindow parent)
        {
            InitializeComponent();

            this.parent = parent;

            InitializeRunningDocumentTable();

            var shellService = GetService <IVsShell, SVsShell>(GlobalServiceProvider);

            if (shellService != null)
            {
                // Only enable this feature if the Visual Studio package for DGML is installed.
#pragma warning disable VSTHRD010 // Invoke single-threaded types on Main thread
                shellService.IsPackageInstalled(GuidList.GuidProgressionPkg, out var canDisplayDirectedSyntaxGraph);
#pragma warning restore VSTHRD010 // Invoke single-threaded types on Main thread
                if (Convert.ToBoolean(canDisplayDirectedSyntaxGraph))
                {
                    syntaxVisualizer.SyntaxNodeDirectedGraphRequested   += DisplaySyntaxNodeDgml;
                    syntaxVisualizer.SyntaxTokenDirectedGraphRequested  += DisplaySyntaxTokenDgml;
                    syntaxVisualizer.SyntaxTriviaDirectedGraphRequested += DisplaySyntaxTriviaDgml;
                }
            }

            UpdateThemedColors();

            syntaxVisualizer.SyntaxNodeNavigationToSourceRequested   += node => NavigateToSource(node.Span);
            syntaxVisualizer.SyntaxTokenNavigationToSourceRequested  += token => NavigateToSource(token.Span);
            syntaxVisualizer.SyntaxTriviaNavigationToSourceRequested += trivia => NavigateToSource(trivia.Span);
        }
        internal SyntaxVisualizerContainer(SyntaxVisualizerToolWindow parent)
        {
            InitializeComponent();

            this.parent = parent;

            InitializeRunningDocumentTable();

            var shellService = GetService <IVsShell, SVsShell>(GlobalServiceProvider);

            if (shellService != null)
            {
                int canDisplayDirectedSyntaxGraph;

                // Only enable this feature if the Visual Studio package for DGML is installed.
                shellService.IsPackageInstalled(GuidList.GuidProgressionPkg, out canDisplayDirectedSyntaxGraph);
                if (Convert.ToBoolean(canDisplayDirectedSyntaxGraph))
                {
                    syntaxVisualizer.SyntaxNodeDirectedGraphRequested   += DisplaySyntaxNodeDgml;
                    syntaxVisualizer.SyntaxTokenDirectedGraphRequested  += DisplaySyntaxTokenDgml;
                    syntaxVisualizer.SyntaxTriviaDirectedGraphRequested += DisplaySyntaxTriviaDgml;
                }
            }

            syntaxVisualizer.SyntaxNodeNavigationToSourceRequested   += node => NavigateToSource(node.Span);
            syntaxVisualizer.SyntaxTokenNavigationToSourceRequested  += token => NavigateToSource(token.Span);
            syntaxVisualizer.SyntaxTriviaNavigationToSourceRequested += trivia => NavigateToSource(trivia.Span);
        }