void UseSnippetExtractor() { // get files containing snippets var filesToParse = Directory.EnumerateFiles(@"C:\path", "*.*", SearchOption.AllDirectories) .Where(s => s.EndsWith(".vm") || s.EndsWith(".cs")); // setup version convention and extract snippets from files var snippetExtractor = new SnippetExtractor(InferVersion); var readSnippets = snippetExtractor.FromFiles(filesToParse); // Grouping var snippetGroups = SnippetGrouper.Group(readSnippets) .ToList(); // Merge with some markdown text var markdownProcessor = new MarkdownProcessor(); //In this case the text will be extracted from a file path ProcessResult result; using (var reader = File.OpenText(@"C:\path\myInputMarkdownFile.md")) using (var writer = File.CreateText(@"C:\path\myOutputMarkdownFile.md")) { result = markdownProcessor.Apply(snippetGroups, reader, writer); } // List of all snippets that the markdown file expected but did not exist in the input snippets var missingSnippets = result.MissingSnippets; // List of all snippets that the markdown file used var usedSnippets = result.UsedSnippets; }
void Run(string folder, string input, string expectedOutput) { var extractor = new SnippetExtractor(s => VersionRange.All); var snippets = extractor.FromFiles(Directory.EnumerateFiles(folder, "code.cs")); var snippetGroups = SnippetGrouper.Group(snippets) .ToList(); using (var reader = File.OpenText(input)) { var markdownProcessor = new MarkdownProcessor(alsoParseImportSyntax:true); var stringBuilder = new StringBuilder(); using (var writer = new StringWriter(stringBuilder)) { markdownProcessor.Apply(snippetGroups, reader, writer); } var expected = File.ReadAllText(expectedOutput).FixNewLines(); var fixNewLines = stringBuilder .ToString() .FixNewLines() .TrimTrailingNewLine(); Assert.AreEqual(expected, fixNewLines, folder); } }
public void Foo() { var extractor = new SnippetExtractor(InferVersion); var snippets = extractor.FromFiles(Directory.EnumerateFiles(@"C:\Code\docs.particular.net\Snippets", "*.cs",SearchOption.AllDirectories)); Trace.WriteLine(snippets.ToList()); }