Skip to content

Commit

Permalink
fix: unc file paths (#316)
Browse files Browse the repository at this point in the history
  • Loading branch information
ShawkyZ authored Oct 18, 2024
1 parent d5636c9 commit 62cbd5b
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 11 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System;
using Newtonsoft.Json.Linq;

namespace Snyk.VisualStudio.Extension.Language
namespace Snyk.VisualStudio.Extension.Extension
{
public static class JTokenExtension
{
Expand Down
12 changes: 12 additions & 0 deletions Snyk.VisualStudio.Extension.2022/Extension/UriExtensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using System;

namespace Snyk.VisualStudio.Extension.Extension;

public static class UriExtensions
{
public static string UncAwareAbsolutePath(this Uri uri)
{
if (uri == null) return string.Empty;
return uri.IsUnc ? uri.LocalPath : uri.AbsolutePath;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using Snyk.Common.Authentication;
using Snyk.VisualStudio.Extension.Extension;
using Snyk.VisualStudio.Extension.Service;
using StreamJsonRpc;

Expand Down Expand Up @@ -36,9 +37,9 @@ public async Task OnPublishDiagnostics316(JToken arg)
var parsedUri = new Uri(uri.ToString());
if (diagnosticsArray == null || diagnosticsArray.Count == 0)
{
snykCodeIssueDictionary.TryRemove(parsedUri.AbsolutePath, out _);
snykOssIssueDictionary.TryRemove(parsedUri.AbsolutePath, out _);
snykIaCIssueDictionary.TryRemove(parsedUri.AbsolutePath, out _);
snykCodeIssueDictionary.TryRemove(parsedUri.UncAwareAbsolutePath(), out _);
snykOssIssueDictionary.TryRemove(parsedUri.UncAwareAbsolutePath(), out _);
snykIaCIssueDictionary.TryRemove(parsedUri.UncAwareAbsolutePath(), out _);
return;
}

Expand All @@ -60,13 +61,13 @@ public async Task OnPublishDiagnostics316(JToken arg)
switch (source)
{
case "code":
snykCodeIssueDictionary.TryAdd(parsedUri.AbsolutePath, dataList);
snykCodeIssueDictionary.TryAdd(parsedUri.UncAwareAbsolutePath(), dataList);
break;
case "oss":
snykOssIssueDictionary.TryAdd(parsedUri.AbsolutePath, dataList);
snykOssIssueDictionary.TryAdd(parsedUri.UncAwareAbsolutePath(), dataList);
break;
case "iac":
snykIaCIssueDictionary.TryAdd(parsedUri.AbsolutePath, dataList);
snykIaCIssueDictionary.TryAdd(parsedUri.UncAwareAbsolutePath(), dataList);
break;
default:
throw new InvalidProductTypeException();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using Newtonsoft.Json.Linq;
using Serilog;
using Snyk.Common;
using Snyk.VisualStudio.Extension.Extension;

namespace Snyk.VisualStudio.Extension.Language
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,11 @@
<LangVersion>latest</LangVersion>
</PropertyGroup>
<ItemGroup>
<Compile Include="Extension\JTokenExtension.cs" />
<Compile Include="Extension\UriExtensions.cs" />
<Compile Include="Language\CustomInitializationOptions.cs" />
<Compile Include="Language\ILanguageClientManager.cs" />
<Compile Include="Language\InvalidProductTypeException.cs" />
<Compile Include="Language\JTokenExtension.cs" />
<Compile Include="Language\LsConstants.cs" />
<Compile Include="Language\LsAnalysisResult.cs" />
<Compile Include="Language\SatisfyImportExtension.cs" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ public IDictionary<string, IEnumerable<Issue>> OssResult
var lowSeverityCount = 0;
var currentFolder = ThreadHelper.JoinableTaskFactory.Run(async () =>
await SnykVSPackage.ServiceProvider.SolutionService.GetSolutionFolderAsync()).Replace("\\","/");
foreach (var kv in value.Where(x=>x.Key.Contains(currentFolder)))
foreach (var kv in value.Where(x=>x.Key.Replace("\\", "/").Contains(currentFolder)))
{
var filePath = kv.Key;
var issueList = kv.Value.ToList();
Expand Down Expand Up @@ -188,7 +188,7 @@ public IDictionary<string, IEnumerable<Issue>> IacResults
var lowSeverityCount = 0;
var currentFolder = ThreadHelper.JoinableTaskFactory.Run(async () =>
await SnykVSPackage.ServiceProvider.SolutionService.GetSolutionFolderAsync()).Replace("\\", "/");
foreach (var kv in value.Where(x => x.Key.Contains(currentFolder)))
foreach (var kv in value.Where(x => x.Key.Replace("\\", "/").Contains(currentFolder)))
{
var filePath = kv.Key;
var issues = kv.Value.ToList();
Expand Down Expand Up @@ -373,7 +373,7 @@ private void AppendSnykCodeIssues(RootTreeNode rootNode, IDictionary<string, IEn
rootNode.Clean();
var currentFolder = ThreadHelper.JoinableTaskFactory.Run(async () =>
await SnykVSPackage.ServiceProvider.SolutionService.GetSolutionFolderAsync()).Replace("\\", "/");
foreach (var kv in analysisResult.Where(x => x.Key.Contains(currentFolder)))
foreach (var kv in analysisResult.Where(x => x.Key.Replace("\\", "/").Contains(currentFolder)))
{
var filePath = kv.Key;
var issueList = kv.Value.ToList();
Expand Down

0 comments on commit 62cbd5b

Please sign in to comment.