public static string ExtractSnippet()

in src/Sarif.Viewer.VisualStudio.Core/Sarif/Location.Extensions.cs [52:92]


        public static string ExtractSnippet(this Location location, Run run, FileRegionsCache fileRegionsCache)
        {
            PhysicalLocation physicalLocation = location.PhysicalLocation;
            ArtifactLocation artifactLocation = location.PhysicalLocation?.ArtifactLocation;
            Region region = location.PhysicalLocation?.Region;
            Uri uri = location.PhysicalLocation?.ArtifactLocation?.Uri;

            if (uri == null || region == null || region.IsBinaryRegion || physicalLocation == null)
            {
                return string.Empty;
            }

            if (region.Snippet != null)
            {
                return region.Snippet.Text;
            }

            if (artifactLocation.Uri == null && artifactLocation.Index >= 0)
            {
                // Uri is not stored at result level, but we have an index to go look in run.Artifacts
                // we must pick the ArtifactLocation details from run.artifacts array
                Artifact artifactFromRun = run.Artifacts[artifactLocation.Index];
                artifactLocation = artifactFromRun.Location;
            }

            // If we can resolve a file location to a newly constructed
            // absolute URI, we will prefer that
            if (!artifactLocation.TryReconstructAbsoluteUri(run.OriginalUriBaseIds, out Uri resolvedUri))
            {
                resolvedUri = artifactLocation.Uri;
            }

            if (!resolvedUri.IsAbsoluteUri)
            {
                return string.Empty;
            }

            fileRegionsCache ??= new FileRegionsCache();
            Region expandedRegion = fileRegionsCache.PopulateTextRegionProperties(region, resolvedUri, populateSnippet: true);
            return expandedRegion.Snippet != null ? expandedRegion.Snippet.Text : string.Empty;
        }