From 2233383ebc25eb400fa7cad7412699e157093e45 Mon Sep 17 00:00:00 2001 From: Chidozie Ononiwu Date: Fri, 19 Jul 2024 09:48:14 -0700 Subject: [PATCH] Implement SkippDiff --- .../APIView/APIViewWeb/Helpers/CodeFileHelpers.cs | 10 ++++++++++ .../APIViewWeb/LeanModels/ReviewRevisionPageModels.cs | 1 + .../APIView/APIViewWeb/Managers/CodeFileManager.cs | 6 +++--- src/dotnet/APIView/apiview.yml | 2 +- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/dotnet/APIView/APIViewWeb/Helpers/CodeFileHelpers.cs b/src/dotnet/APIView/APIViewWeb/Helpers/CodeFileHelpers.cs index cb83f57bb77c..3e8db8b72758 100644 --- a/src/dotnet/APIView/APIViewWeb/Helpers/CodeFileHelpers.cs +++ b/src/dotnet/APIView/APIViewWeb/Helpers/CodeFileHelpers.cs @@ -394,6 +394,11 @@ private static void BuildTokensForDiffNodes(CodePanelData codePanelData, CodePan { var token = beforeTokens[beforeIndex++]; + if (codePanelRawData.ApplySkipDiff && token.TagsObj.Contains(StructuredToken.SKIPP_DIFF)) + { + continue; + } + if (token.Kind == StructuredTokenKind.LineBreak) { break; @@ -429,6 +434,11 @@ private static void BuildTokensForDiffNodes(CodePanelData codePanelData, CodePan { var token = afterTokens[afterIndex++]; + if (codePanelRawData.ApplySkipDiff && token.TagsObj.Contains(StructuredToken.SKIPP_DIFF)) + { + continue; + } + if (token.Kind == StructuredTokenKind.LineBreak) { break; diff --git a/src/dotnet/APIView/APIViewWeb/LeanModels/ReviewRevisionPageModels.cs b/src/dotnet/APIView/APIViewWeb/LeanModels/ReviewRevisionPageModels.cs index 237d97622a11..9b8133fff32c 100644 --- a/src/dotnet/APIView/APIViewWeb/LeanModels/ReviewRevisionPageModels.cs +++ b/src/dotnet/APIView/APIViewWeb/LeanModels/ReviewRevisionPageModels.cs @@ -67,6 +67,7 @@ public class CodePanelRawData public List APIForest { get; set; } = new List(); public CodeDiagnostic[] Diagnostics { get; set; } = new CodeDiagnostic[0]; public string Language { get; set; } + public bool ApplySkipDiff { get; set; } } public class CodePanelRowData diff --git a/src/dotnet/APIView/APIViewWeb/Managers/CodeFileManager.cs b/src/dotnet/APIView/APIViewWeb/Managers/CodeFileManager.cs index 48339a640074..af3e486a2917 100644 --- a/src/dotnet/APIView/APIViewWeb/Managers/CodeFileManager.cs +++ b/src/dotnet/APIView/APIViewWeb/Managers/CodeFileManager.cs @@ -9,7 +9,6 @@ using APIViewWeb.Managers.Interfaces; using APIViewWeb.Models; using APIViewWeb.Repositories; -using Microsoft.CodeAnalysis.Host; namespace APIViewWeb.Managers { @@ -208,11 +207,12 @@ public async Task AreAPICodeFilesTheSame(RenderedCodeFile codeFileA, Rende if (LanguageServiceHelpers.UseTreeStyleParser(codeFileA.CodeFile.Language)) { - var diffTree =CodeFileHelpers.ComputeAPIForestDiff(codeFileA.CodeFile.APIForest, codeFileB.CodeFile.APIForest); + var diffTree = CodeFileHelpers.ComputeAPIForestDiff(codeFileA.CodeFile.APIForest, codeFileB.CodeFile.APIForest); var codePanelRawData = new CodePanelRawData() { APIForest = diffTree, - Language = codeFileA.CodeFile.Language + Language = codeFileA.CodeFile.Language, + ApplySkipDiff = true }; var result = await CodeFileHelpers.GenerateCodePanelDataAsync(codePanelRawData); return !result.HasDiff; diff --git a/src/dotnet/APIView/apiview.yml b/src/dotnet/APIView/apiview.yml index daaf802ab418..6630b40d8ac9 100644 --- a/src/dotnet/APIView/apiview.yml +++ b/src/dotnet/APIView/apiview.yml @@ -4,7 +4,7 @@ parameters: default: 'https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-net/nuget/v3/index.json' - name: CSharpAPIParserVersion type: string - default: '1.0.0-dev.20240716.16' + default: '1.0.0-dev.20240719.1' trigger: branches: