Skip to content

Commit

Permalink
[VS Code] Fix project.razor.json serialization issue (#8489)
Browse files Browse the repository at this point in the history
  • Loading branch information
allisonchou authored Mar 23, 2023
1 parent 343e753 commit d26d207
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@

using Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Document;
using Microsoft.CodeAnalysis.Razor.ProjectSystem;
using Microsoft.CodeAnalysis.Razor.Workspaces.Serialization;
using Newtonsoft.Json;

namespace Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Project;

Expand Down Expand Up @@ -33,6 +35,12 @@ internal OmniSharpProjectSnapshot(IProjectSnapshot projectSnapshot)
return internalDocumentSnapshot;
}

public void Serialize(string publishFilePath, JsonSerializer serializer, StreamWriter writer)
{
var projectRazorJson = new ProjectRazorJson(publishFilePath, InternalProjectSnapshot);
serializer.Serialize(writer, projectRazorJson);
}

internal static OmniSharpProjectSnapshot? Convert(IProjectSnapshot? projectSnapshot)
{
if (projectSnapshot is null)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT license. See License.txt in the project root for license information.

using System.Runtime.CompilerServices;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Project.OmniSharpProjectSnap
Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Project.OmniSharpProjectSnapshot.FilePath.get -> string!
Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Project.OmniSharpProjectSnapshot.GetDocument(string! filePath) -> Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Document.OmniSharpDocumentSnapshot?
Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Project.OmniSharpProjectSnapshot.ProjectWorkspaceState.get -> Microsoft.CodeAnalysis.Razor.ProjectSystem.ProjectWorkspaceState?
Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Project.OmniSharpProjectSnapshot.Serialize(string! publishFilePath, Newtonsoft.Json.JsonSerializer! serializer, System.IO.StreamWriter! writer) -> void
Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Project.OmniSharpProjectSnapshotManager
Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Project.OmniSharpProjectSnapshotManager.Changed -> System.EventHandler<Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Project.OmniSharpProjectChangeEventArgs!>?
Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Project.OmniSharpProjectSnapshotManager.DocumentAdded(Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Project.OmniSharpHostProject! hostProject, Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Document.OmniSharpHostDocument! hostDocument) -> void
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
using System.Composition;
using System.IO;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.Razor.Workspaces.Serialization;
using Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Project;
using Microsoft.AspNetCore.Razor.ExternalAccess.OmniSharp.Serialization;
using Microsoft.Extensions.Logging;
Expand Down Expand Up @@ -94,7 +95,7 @@ protected virtual void SerializeToFile(OmniSharpProjectSnapshot projectSnapshot,
// by the time we move the tempfile into its place
using (var writer = tempFileInfo.CreateText())
{
_serializer.Serialize(writer, projectSnapshot);
projectSnapshot.Serialize(publishFilePath, _serializer, writer);
}

var fileInfo = new FileInfo(publishFilePath);
Expand Down

0 comments on commit d26d207

Please sign in to comment.