Backend/RiderPlugin/ForTea.RiderPlugin/ProtocolAware/Impl/T4HostOutputFileRefresher.cs (34 lines of code) (raw):

using System.Collections.Generic; using JetBrains.Annotations; using JetBrains.Application.Parts; using JetBrains.ForTea.RiderPlugin.TemplateProcessing.Managing.Impl; using JetBrains.IDE; using JetBrains.IDE.PerClientComponents; using JetBrains.ProjectModel; using JetBrains.RdBackend.Common.Features.Documents; using JetBrains.ReSharper.Feature.Services.Protocol; using JetBrains.Rider.Model; using JetBrains.Util; namespace JetBrains.ForTea.RiderPlugin.ProtocolAware.Impl { [SolutionPerClientComponent(Instantiation.DemandAnyThreadSafe)] public sealed class T4HostOutputFileRefresher : T4BasicOutputFileRefresher { public T4HostOutputFileRefresher(ISolution solution) : base(solution) { } public override void Refresh(IProjectFile output) { base.Refresh(output); SyncDocuments(output.Location); RefreshFiles(output.Location); } private void SyncDocuments([NotNull] VirtualFileSystemPath destinationLocation) => Solution.SyncDocumentsWithFiles(destinationLocation); private void RefreshFiles([NotNull] VirtualFileSystemPath destinationLocation) => Solution .GetProtocolSolution() .GetFileSystemModel() .RefreshPaths .Start(new RdFsRefreshRequest(new List<RdPath> { destinationLocation.ToRd() }, true)); } }