Example #1
0
        public override void WriteIssue(IssueRecord issue)
        {
            Result resultItem = new Result();

            MapRuleToResult(issue.Issue.Rule, ref resultItem);
            AddRuleToSarifRule(issue.Issue.Rule);

            CodeAnalysis.Sarif.Location loc = new CodeAnalysis.Sarif.Location();
            loc.AnalysisTarget = new PhysicalLocation(new Uri(issue.Filename),
                                                      null,
                                                      new Region(issue.Issue.StartLocation.Line,
                                                                 issue.Issue.StartLocation.Column,
                                                                 issue.Issue.EndLocation.Line,
                                                                 issue.Issue.EndLocation.Column,
                                                                 issue.Issue.Boundary.Index,
                                                                 issue.Issue.Boundary.Length
                                                                 ));
            resultItem.Snippet = issue.TextSample;

            if (issue.Issue.Rule.Fixes != null)
            {
                resultItem.Fixes = GetFixits(issue);
            }

            resultItem.Locations = new List <CodeAnalysis.Sarif.Location>();
            resultItem.Locations.Add(loc);
            _results.Add(resultItem);
        }
Example #2
0
        public override void WriteIssue(IssueRecord issue)
        {
            Result resultItem = new Result();

            MapRuleToResult(issue.Issue.Rule, ref resultItem);
            AddRuleToSarifRule(issue.Issue.Rule);

            CodeAnalysis.Sarif.Location loc = new CodeAnalysis.Sarif.Location();
            loc.PhysicalLocation = new PhysicalLocation()
            {
                Address = new Address()
                {
                    FullyQualifiedName = Path.GetFullPath(issue.Filename)
                },
                Region = new Region()
                {
                    StartLine   = issue.Issue.StartLocation.Line,
                    StartColumn = issue.Issue.StartLocation.Column,
                    EndLine     = issue.Issue.EndLocation.Line,
                    EndColumn   = issue.Issue.EndLocation.Column,
                    CharOffset  = issue.Issue.Boundary.Index,
                    CharLength  = issue.Issue.Boundary.Length,
                    Snippet     = new ArtifactContent()
                    {
                        Text     = issue.TextSample,
                        Rendered = new MultiformatMessageString(issue.TextSample, $"`{issue.TextSample}`", null),
                    },
                    SourceLanguage = issue.Language
                }
            };

            if (issue.Issue.Rule.Fixes != null)
            {
                resultItem.Fixes = GetFixits(issue);
            }

            resultItem.Locations = new List <CodeAnalysis.Sarif.Location>();
            resultItem.Locations.Add(loc);
            _results.Push(resultItem);
        }