diff --git a/tools/MonoDevelop.Figma/.figma/ea4pU30ht61lUJXcr0TFIF/Views/FigmaPackageWindow.cs b/tools/MonoDevelop.Figma/.figma/ea4pU30ht61lUJXcr0TFIF/Views/FigmaPackageWindow.cs index c2054071..19ade915 100644 --- a/tools/MonoDevelop.Figma/.figma/ea4pU30ht61lUJXcr0TFIF/Views/FigmaPackageWindow.cs +++ b/tools/MonoDevelop.Figma/.figma/ea4pU30ht61lUJXcr0TFIF/Views/FigmaPackageWindow.cs @@ -1,6 +1,7 @@ /* */ using System; +using System.IO; using System.Linq; using System.Threading.Tasks; using AppKit; @@ -9,6 +10,7 @@ using FigmaSharp.Controls.Cocoa.Services; using FigmaSharp.Helpers; using FigmaSharp.Models; +using MonoDevelop.Core; using MonoDevelop.Figma.Services; using MonoDevelop.Ide; using MonoDevelop.Projects; @@ -120,12 +122,43 @@ async Task GenerateBundle (string fileId, FigmaFileVersion version, string names await currentProject.AddFigmaBundleViewAsync (figmaBundleView, savesInProject: false); } + CopyCodeTemplates(currentBundle, namesSpace); + await IdeApp.ProjectOperations.SaveAsync(currentProject); IdeApp.Workbench.StatusBar.EndProgress (); IdeApp.Workbench.StatusBar.AutoPulse = false; } + void CopyCodeTemplates(FigmaBundle bundle, string namesSpace) + { + FilePath assemblyLocation = typeof(FigmaPackageWindow).Assembly.Location; + FilePath templateFileName = assemblyLocation.ParentDirectory.Combine("Templates", "Resources.template.cs"); + + FilePath destinationFileName = bundle.ResourcesDirectoryPath; + destinationFileName = destinationFileName.Combine("Resources.cs"); + + if (currentProject.PathExistsInProject(destinationFileName)) + { + LoggingService.LogInfo("Resources.template.cs file already exists in project"); + return; + } + + if (File.Exists(destinationFileName)) + { + LoggingService.LogInfo("Resources.template.cs file already exists not replacing"); + return; + } + + string text = File.ReadAllText(templateFileName); + text = text.Replace("NAMESPACE", namesSpace); + + File.WriteAllText(destinationFileName, text); + + var projectFile = new ProjectFile(destinationFileName, BuildAction.Compile); + currentProject.AddFile(projectFile); + } + private void CancelButton_Activated (object sender, EventArgs e) { this.Close (); diff --git a/tools/MonoDevelop.Figma/MonoDevelop.Figma.csproj b/tools/MonoDevelop.Figma/MonoDevelop.Figma.csproj index 252891ef..3300a27a 100644 --- a/tools/MonoDevelop.Figma/MonoDevelop.Figma.csproj +++ b/tools/MonoDevelop.Figma/MonoDevelop.Figma.csproj @@ -133,6 +133,10 @@ + + Templates\Resources.template.cs + PreserveNewest + diff --git a/tools/MonoDevelop.Figma/Properties/Manifest.addin.xml b/tools/MonoDevelop.Figma/Properties/Manifest.addin.xml index 8e87a2ae..8ae87aaa 100644 --- a/tools/MonoDevelop.Figma/Properties/Manifest.addin.xml +++ b/tools/MonoDevelop.Figma/Properties/Manifest.addin.xml @@ -5,6 +5,7 @@ +