static void GenerateInternal (IProgressMonitor monitor, ProjectFile file, SingleFileCustomToolResult result) { if (file.Project.SupportedLanguages.All (l => l != "C#")) { const string msg = "Razor templates are only supported in C# projects"; result.Errors.Add (new CompilerError (file.Name, -1, -1, null, msg)); monitor.Log.WriteLine (msg); return; } var host = new PreprocessedRazorHost (file.FilePath); var defaultOutputName = file.FilePath.ChangeExtension (".cs"); var ns = CustomToolService.GetFileNamespace (file, defaultOutputName); host.DefaultNamespace = ns; CompilerErrorCollection errors; var code = host.GenerateCode (out errors); result.Errors.AddRange (errors); var writer = new MonoDevelop.DesignerSupport.CodeBehindWriter (); writer.WriteFile (defaultOutputName, code); writer.WriteOpenFiles (); result.GeneratedFilePath = defaultOutputName; foreach (var err in result.Errors) { monitor.Log.WriteLine (err); } }
static void GenerateInternal(IProgressMonitor monitor, ProjectFile file, SingleFileCustomToolResult result) { if (file.Project.SupportedLanguages.All(l => l != "C#")) { const string msg = "Razor templates are only supported in C# projects"; result.Errors.Add(new CompilerError(file.Name, -1, -1, null, msg)); monitor.Log.WriteLine(msg); return; } var host = new PreprocessedRazorHost(file.FilePath); var defaultOutputName = file.FilePath.ChangeExtension(".cs"); var ns = CustomToolService.GetFileNamespace(file, defaultOutputName); host.DefaultNamespace = ns; CompilerErrorCollection errors; var code = host.GenerateCode(out errors); result.Errors.AddRange(errors); var writer = new MonoDevelop.DesignerSupport.CodeBehindWriter(); writer.WriteFile(defaultOutputName, code); writer.WriteOpenFiles(); result.GeneratedFilePath = defaultOutputName; foreach (var err in result.Errors) { monitor.Log.WriteLine(err); } }