当前位置: 首页>>代码示例>>C#>>正文


C# SyntaxNode.GetDiagnostics方法代码示例

本文整理汇总了C#中SyntaxNode.GetDiagnostics方法的典型用法代码示例。如果您正苦于以下问题:C# SyntaxNode.GetDiagnostics方法的具体用法?C# SyntaxNode.GetDiagnostics怎么用?C# SyntaxNode.GetDiagnostics使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SyntaxNode的用法示例。


在下文中一共展示了SyntaxNode.GetDiagnostics方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: VerifyErrorCode

        private void VerifyErrorCode(SyntaxNode node, params DiagnosticId[] expected)
        {
            var actual = node.GetDiagnostics().Select(e => e.DiagnosticId).ToList();

            // no error
            if ((expected.Length == 0) && (actual.Count == 0))
            {
                return;
            }

            // Parser might give more errors than expected & that's fine
            Assert.That(actual.Count, Is.GreaterThanOrEqualTo(expected.Length));
            Assert.That(actual.Count, Is.LessThanOrEqualTo(int.MaxValue));

            // necessary?
            if (actual.Count < expected.Length)
                return;

            foreach (var i in expected)
                Assert.Contains(i, actual); // no order
        }
开发者ID:Samana,项目名称:HlslTools,代码行数:21,代码来源:PreprocessorTests.cs

示例2: AddNode

        private static void AddNode(ItemCollection items, SyntaxNode node, string prefix)
        {
            var tooltip = string.Join(Environment.NewLine, node.GetDiagnostics().Select(x => x.ToString()));
            var treeViewItem = new TreeViewItem
            {
                Background = (node.ContainsDiagnostics) ? Brushes.Pink : Brushes.Transparent,
                Foreground = (node.IsToken) ? Brushes.DarkGreen : (node.Ancestors().Any(a => a.IsToken) ? Brushes.DarkRed : Brushes.Blue),
                Header = $"{prefix}{node.Kind} [{node.SourceRange.Start}..{node.SourceRange.End})",
                ToolTip = string.IsNullOrEmpty(tooltip) ? null : tooltip,
                Tag = node
            };

            foreach (var childNode in node.ChildNodes)
                AddNode(treeViewItem.Items, childNode, string.Empty);

            if (node.IsToken)
            {
                var token = (SyntaxToken) node;
                foreach (var childNode in token.LeadingTrivia)
                    AddNode(treeViewItem.Items, childNode, "Lead: ");
                foreach (var childNode in token.TrailingTrivia)
                    AddNode(treeViewItem.Items, childNode, "Trail: ");
            }

            items.Add(treeViewItem);
        }
开发者ID:davidlee80,项目名称:HlslTools,代码行数:26,代码来源:SyntaxVisualizerToolWindowControl.xaml.cs


注:本文中的SyntaxNode.GetDiagnostics方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。