public void Generate(IBuildContext context, ITextTemplatingEngine textTemplatingEngine, IProjectBase project) { var extension = '.' + context.Configuration.GetString(Constants.Configuration.GenerateCode.Extension, ".*").TrimStart('.'); var pathMatcher = Factory.PathMatcher(context.Configuration.GetString(Constants.Configuration.GenerateCode.Include), context.Configuration.GetString(Constants.Configuration.GenerateCode.Exclude)); foreach (var fileName in FileSystem.GetFiles(context.ProjectDirectory, "*" + extension, SearchOption.AllDirectories)) { if (!pathMatcher.IsMatch(fileName)) { continue; } context.Trace.TraceInformation(Msg.G1008, Texts.Generating_code, PathHelper.UnmapPath(context.ProjectDirectory, fileName)); try { var targetFileName = fileName.Left(fileName.Length - extension.Length); var template = FileSystem.ReadAllText(fileName); var output = textTemplatingEngine.Generate(template, project); if (string.IsNullOrEmpty(output)) { FileSystem.DeleteFile(targetFileName); continue; } if (output.IndexOf("<pagebreak", StringComparison.Ordinal) < 0) { FileSystem.WriteAllText(targetFileName, output); continue; } SplitOutputIntoFiles(output, fileName); } catch (TemplateParsingException ex) { foreach (var parserError in ex.ParserErrors) { context.Trace.TraceError(Msg.G1007, parserError.Message, fileName, new TextSpan(parserError.Location.LineIndex, parserError.Location.CharacterIndex, parserError.Length)); } } catch (TemplateCompilationException ex) { foreach (var compilationError in ex.CompilationErrors) { context.Trace.TraceError(Msg.G1007, compilationError, fileName, TextSpan.Empty); } } catch (Exception ex) { context.Trace.TraceError(Msg.G1007, ex.Message, fileName, TextSpan.Empty); } } }
internal TextTemplatingService(OrchestratorPackage package) { DTE dTE = package.GetDTE(); this.package = package; this.engine = new Microsoft.VisualStudio.TextTemplating.Engine(); this.serviceProvider = new ServiceProvider(dTE as Microsoft.VisualStudio.OLE.Interop.IServiceProvider); this.errorProvider = new ErrorListProvider(this.serviceProvider); this.errorProvider.MaintainInitialTaskOrder = true; dTE.Events.SolutionEvents.add_AfterClosing(new _dispSolutionEvents_AfterClosingEventHandler(this.SolutionEvents_AfterClosing)); }
private static string GetOutputExtension(DynamicTextTemplatingEngineHost host, ITextTemplatingEngine t4Engine, string templateContent) { string ignoredLanguage; string[] ignoreReferences; t4Engine.PreprocessTemplate(templateContent, host, "DummyClass", "DummyNamespace", out ignoredLanguage, out ignoreReferences); return(host.FileExtension ?? string.Empty); }
private static string GetOutputExtension(DynamicTextTemplatingEngineHost host, ITextTemplatingEngine t4Engine, string templateContent) { string ignoredLanguage; string[] ignoreReferences; t4Engine.PreprocessTemplate(templateContent, host, "DummyClass", "DummyNamespace", out ignoredLanguage, out ignoreReferences); return host.FileExtension ?? string.Empty; }
/// <summary> /// Initializes a new instance of the <see cref="DomainTextTransformer"/> class. /// </summary> /// <param name="appDomainManager">The app domain manager.</param> /// <param name="host">The host.</param> /// <param name="engine">The engine.</param> internal DomainTextTransformer(IAppDomainManager appDomainManager, ITextTransformerHost host, ITextTemplatingEngine engine) : base(host, engine) { _appDomainManager = appDomainManager; Initialize(); }
public TextTransformerImplementation(ITextTransformerHost host, ITextTemplatingEngine engine) : base(host, engine) { }
/// <summary> /// Initializes a new instance of the <see cref="TextTransformerBase"/> class. /// </summary> protected internal TextTransformerBase() { _host = ServiceLocator.Resolve<ITextTransformerHost, ITextTransformer>(this); _host.ClassDefinitionGenerated += HostClassDefinitionGeneratedHandler; _engine = new Engine(); }
/// <summary> /// Initializes a new instance of the <see cref="TextTransformerBase"/> class. /// </summary> internal TextTransformerBase(ITextTransformerHost host, ITextTemplatingEngine engine) { _host = host; _host.ClassDefinitionGenerated += HostClassDefinitionGeneratedHandler; _engine = engine; }
public GenerateCode([NotNull] IFileSystem fileSystem, [NotNull] ITextTemplatingEngine textTemplatingEngine, [NotNull, ImportMany, ItemNotNull] IEnumerable <ICodeGenerator> codeGenerators) : base("generate-code") { FileSystem = fileSystem; TextTemplatingEngine = textTemplatingEngine; CodeGenerators = codeGenerators; }
/// <summary> /// Initializes a new instance of the <see cref="TextTransformerBase"/> class. /// </summary> protected internal TextTransformerBase() { _host = ServiceLocator.Resolve <ITextTransformerHost, ITextTransformer>(this); _host.ClassDefinitionGenerated += HostClassDefinitionGeneratedHandler; _engine = new Engine(); }