private void BuildLanguageBlockCollection() { var tokenizer = new MdTokenizer(); var tokens = tokenizer.Tokenize(TextBuffer.CurrentSnapshot.GetText()); var rCodeTokens = tokens.Where(t => { var mct = t as MarkdownCodeToken; return(mct != null && mct.LeadingSeparatorLength > 1); }); // TODO: incremental updates Blocks.Clear(); _separators.Clear(); foreach (MarkdownCodeToken t in rCodeTokens) { // Verify that code block is properly terminated. // If not, it ends at the end of the buffer. var text = t.GetText(TextBuffer.CurrentSnapshot); _separators.Add(new TextRange(t.Start, t.LeadingSeparatorLength)); // ```r{ or `r if (t.IsWellFormed) { // Count backticks Blocks.Add(TextRange.FromBounds(t.Start + t.LeadingSeparatorLength, t.End - t.TrailingSeparatorLength)); _separators.Add(new TextRange(t.End - t.TrailingSeparatorLength, t.TrailingSeparatorLength)); } else { Blocks.Add(TextRange.FromBounds(t.Start + t.LeadingSeparatorLength, t.End)); } } }
private void BuildLanguageBlockCollection() { var tokenizer = new MdTokenizer(); var tokens = tokenizer.Tokenize(TextBuffer.CurrentSnapshot.GetText()); var rCodeTokens = tokens.Where(t => { var mct = t as MarkdownCodeToken; return mct != null && mct.LeadingSeparatorLength > 1; }); // TODO: incremental updates Blocks.Clear(); _separators.Clear(); foreach (MarkdownCodeToken t in rCodeTokens) { // Verify that code block is properly terminated. // If not, it ends at the end of the buffer. var text = t.GetText(TextBuffer.CurrentSnapshot); _separators.Add(new TextRange(t.Start, t.LeadingSeparatorLength)); // ```r{ or `r if (t.IsWellFormed) { // Count backticks Blocks.Add(TextRange.FromBounds(t.Start + t.LeadingSeparatorLength, t.End - t.TrailingSeparatorLength)); _separators.Add(new TextRange(t.End - t.TrailingSeparatorLength, t.TrailingSeparatorLength)); } else { Blocks.Add(TextRange.FromBounds(t.Start + t.LeadingSeparatorLength, t.End)); } } }
private void BuildLanguageBlockCollection() { var tokenizer = new MdTokenizer(); var tokens = tokenizer.Tokenize(TextBuffer.CurrentSnapshot.GetText()); var rCodeTokens = tokens.Where(t => t.TokenType == MarkdownTokenType.Code); // TODO: incremental updates Blocks.Clear(); _separators.Clear(); foreach (var t in rCodeTokens) { // Verify that code block is properly terminated. // If not, it ends at the end of the buffer. _separators.Add(new TextRange(t.Start, 5)); if (t.IsWellFormed) { Blocks.Add(TextRange.FromBounds(t.Start + 3, t.End - 3)); _separators.Add(new TextRange(t.End - 3, 3)); } else { Blocks.Add(TextRange.FromBounds(t.Start + 3, t.End)); } } }
public string Render(string paragraph) { var tokenizer = new MdTokenizer(); var tokens = tokenizer.Tokenize(paragraph); var renderer = new HTMLRenderer(); return(renderer.Render(tokens)); }
public void BuildTest(string content, int expectedTokens) { var tokenizer = new MdTokenizer(); var tokens = tokenizer.Tokenize(content); var rCodeTokens = tokens.Where(t => t.TokenType == MarkdownTokenType.Code); rCodeTokens.Should().HaveCount(expectedTokens); }
private RCodeSeparatorCollection BuildCollection(string markdown) { var tokenizer = new MdTokenizer(); var tokens = tokenizer.Tokenize(markdown); var rCodeTokens = tokens.Where(t => t.TokenType == MarkdownTokenType.Code); var coll = new RCodeSeparatorCollection(); foreach (var t in rCodeTokens) { coll.Add(new TextRange(t.Start, 5)); coll.Add(new TextRange(t.End - 3, 3)); } return(coll); }
private void BuildLanguageBlockCollection() { var tokenizer = new MdTokenizer(); var tokens = tokenizer.Tokenize(TextBuffer.CurrentSnapshot.GetText()); var rCodeTokens = tokens.Where(t => t.TokenType == MarkdownTokenType.Code); // TODO: incremental updates Blocks.Clear(); _separators.Clear(); foreach (var t in rCodeTokens) { Blocks.Add(new TextRange(t.Start + 3, t.Length - 6)); _separators.Add(new TextRange(t.Start, 5)); _separators.Add(new TextRange(t.End - 3, 3)); } }
private RCodeSeparatorCollection BuildCollection(string markdown) { var tokenizer = new MdTokenizer(); var tokens = tokenizer.Tokenize(markdown); var rCodeTokens = tokens.Where(t => t.TokenType == MarkdownTokenType.Code); var coll = new RCodeSeparatorCollection(); foreach (var t in rCodeTokens) { coll.Add(new TextRange(t.Start, 5)); coll.Add(new TextRange(t.End - 3, 3)); } return coll; }
public void SetUp() { tokenizer = new MdTokenizer(); }