/// <summary> /// Gets the list of templates available in the templates directory defined in package settings /// </summary> /// <returns>List of templates available in the templates directory defined in package settings (empty when no templates are available)</returns> public List <TemplateInfo> GetTemplates() { ThreadHelper.ThrowIfNotOnUIThread(); var retVal = new List <TemplateInfo>(); var templatesPath = RadProjectsExtensionOptions.ApplyVariables(Options?.TemplatesDir ?? RadProjectsExtensionOptions.DefaultTemplatesDir, Dte); Package.Output($"Checking templates in {templatesPath}..."); var templatesDir = new DirectoryInfo(templatesPath); var templateDirs = templatesDir.GetDirectories().Where(di => File.Exists(di.FullName.AddPath(TemplateInfoFileName))); foreach (var templateDir in templateDirs) { var templateFile = templateDir.FullName.AddPath(TemplateInfoFileName); var templateInfo = TemplateInfo.Load(templateFile); templateInfo.TemplateDir = templateDir.FullName; retVal.Add(templateInfo); } Package.Output($"Found {retVal.Count} templates in {templatesPath}"); return(retVal); }
/// <summary> /// CTOR /// </summary> /// <param name="package">Reference to the package</param> /// <param name="options">Package settings</param> /// <param name="dte">Visual Studio DTE object</param> public TemplateEngine(RadProjectsExtensionPackage package, RadProjectsExtensionOptions options, DTE2 dte) { Package = package; Options = options; Dte = dte; }