Esempio n. 1
0
        private XElement ExtractExamples(IContextActionInfo contextAction, string caPath, string lang)
        {
            // temporarily disabled
            return(null);

            var testFileName = contextAction.MergeKey.Split('.').Last().RemoveFromEnd("Action") + ".cs";
            var goldFileName = testFileName + ".gold";
            var basePath     = Path.Combine(caPath, lang.NormalizeStringForAttribute().ToLower());
            var testFile     = Path.Combine(basePath, testFileName);

            if (!File.Exists(testFile))
            {
                return(null);
            }
            var goldFile = Path.Combine(basePath, goldFileName);

            if (!File.Exists(goldFile))
            {
                return(null);
            }

            var table = XmlHelpers.CreateTwoColumnTable("Before", "After", "50%");

            table.Add(new XElement("tr",
                                   new XElement("td", XmlHelpers.CreateCodeBlock(File.ReadAllText(testFile), lang)),
                                   new XElement("td", XmlHelpers.CreateCodeBlock(File.ReadAllText(goldFile), lang))));

            return(table);
        }
Esempio n. 2
0
        protected override string GenerateContent(IDataContext context, string outputFolder)
        {
            const string caTopicId        = "CA_Chunks";
            var          caLibrary        = XmlHelpers.CreateHmTopic(caTopicId);
            var          tablesByLanguage = new Dictionary <string, XElement>();
            var          sortedActions    = context.GetComponent <IContextActionTable>().AllActions.OrderBy(ca => ca.Name);
            var          caPath           = GeneralHelpers.GetCaPath(context);

            caLibrary.Root.Add(
                new XComment("Total context actions in ReSharper " +
                             GeneralHelpers.GetCurrentVersion() + ": " +
                             sortedActions.Count()));
            foreach (var ca in sortedActions)
            {
                var lang = ca.Group ?? "Unknown";

                if (!tablesByLanguage.ContainsKey(lang))
                {
                    tablesByLanguage.Add(lang,
                                         XmlHelpers.CreateTwoColumnTable("Name",
                                                                         "Description", "40%"));
                }

                var exampleTable = ExtractExamples(ca, caPath, lang);

                tablesByLanguage.GetValue(lang).Add(new XElement("tr",
                                                                 new XElement("td", new XElement("b", ca.Name)),
                                                                 new XElement("td",
                                                                              ca.Description ?? "", exampleTable,
                                                                              XmlHelpers.CreateInclude("CA_Static_Chunks",
                                                                                                       ca.MergeKey.NormalizeStringForAttribute()))));
            }

            foreach (var table in tablesByLanguage)
            {
                var languageChunk =
                    XmlHelpers.CreateChunk("ca_" +
                                           table.Key
                                           .NormalizeStringForAttribute());
                string langText = table.Key == "Common"
          ? "common use"
          : table.Key;
                languageChunk.Add(new XElement("p",
                                               "ReSharper provides the following context actions for " +
                                               langText + ":"));
                languageChunk.Add(table.Value);
                caLibrary.Root.Add(languageChunk);
            }

            caLibrary.Save(Path.Combine(outputFolder, caTopicId + ".xml"));
            return("Context actions");
        }