private void lookForNewSnippet(string text, int lineNumber) { var name = _scanner.DetermineName(text); if (name.IsNotEmpty()) { FoundSamples = true; var snippet = new Sample(name){ Language = _scanner.Language, File = _file.Path }; _readAction = (txt, num) => { if (_scanner.IsAtEnd(txt)) { _cache.AddOrReplace(snippet); _readAction = lookForNewSnippet; } else { snippet.Append(txt, num); } }; } }
public Sample Format(IFubuFile file, string languageClass = null) { var snippet = new Sample(file.Path){ Language = languageClass ?? "lang-" + Path.GetExtension(file.Path).Replace(".", "") }; file.ReadContents(stream => { using (var reader = new StreamReader(stream)) { int lineNumber = 0; string line; while ((line = reader.ReadLine()) != null) { lineNumber++; if (line.Contains(Samples.SAMPLE) || line.Contains(Samples.END)) { snippet.Append(string.Empty, lineNumber); } else { snippet.Append(line, lineNumber); } } } }); return snippet; }
public void append() { var snippet = new Sample("the sample"); snippet.Append("something", 5); snippet.Text.ShouldBe("something" + Environment.NewLine); snippet.Start.ShouldBe(5); snippet.End.ShouldBe(5); snippet.Append("else", 6); snippet.Append("and more", 7); snippet.Start.ShouldBe(5); snippet.End.ShouldBe(7); snippet.Text.ShouldBe(@"something{0}else{0}and more{0}".ToFormat(Environment.NewLine).TrimStart()); }
void ISampleCache.AddOrReplace(Sample sample) { _samples.AddOrReplace(sample); }
public void AddOrReplace(Sample sample) { _snippets[sample.Name] = sample; }
public SampleTag(Sample sample) : base("pre") { Add("code").AddClass("language-" + sample.Language).Text(Environment.NewLine + sample.Text); }