public Template(string name, ITemplateFileHandler handler) { _handler = handler; Name = name.EndsWith(TemplateExtension) ? name.Substring(0, name.Length - ExtensionLength) : name; _builtInCode = Resources.Templates.ResourceManager.GetString(Name + "_Code"); IsUserDefined = string.IsNullOrWhiteSpace(_builtInCode); if (IsUserDefined) { var code = handler.Read(); if (!string.IsNullOrWhiteSpace(code)) { var regex = new Regex(@"^Attribute VB_Ext_KEY\s+=\s+""Rubberduck(Caption|Description)"",\s+""(.+)""", RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.CultureInvariant); var matches = regex.Matches(code); foreach (Match match in matches) { switch (match.Groups[1].Value) { case "Caption": Caption = match.Groups[2].Value; break; case "Description": Description = match.Groups[2].Value; break; } } } if (string.IsNullOrEmpty(Caption)) { Caption = Name; } if (string.IsNullOrEmpty(Description)) { Description = Name; } } else { VerifyFile(Name, handler); (Caption, Description) = GetBuiltInMetaData(Name); } }
public string Read() => _handler.Read();
public string Read() => _handler.Read() ?? _builtInCode;