public void Parse_Empty() { var markupParser = new LetterWriterMarkupParser(); var result = markupParser.Parse(""); result.TextRuns.Length.Is(0); }
public void Parse_Markup_01() { var markupParser = new LetterWriterMarkupParser(); var result = markupParser.Parse("<ruby color='white' value='Nanodesu'>なのです</ruby>"); result.TextRuns.Length.Is(1); result.TextRuns[0].IsInstanceOf <TextCharactersRubyGroup>().Is(x => x.RawCharacters == "なのです" && x.RawRubyCharacters == "Nanodesu"); }
public void Parse_CharacterEntityReferences_In_Attribute_01() { var markupParser = new LetterWriterMarkupParser(); var result = markupParser.Parse("<ruby value='&##"'>&##"</ruby>"); result.TextRuns.Length.Is(1); result.TextRuns[0].IsInstanceOf <TextCharactersRubyGroup>().Is(x => x.RawCharacters == "&##\"" && x.RawRubyCharacters == "&##\""); }
public void Parse_CharacterEntityReferences_01() { var markupParser = new LetterWriterMarkupParser(); var result = markupParser.Parse("&##""); result.TextRuns.Length.Is(1); result.TextRuns[0].IsInstanceOf <TextCharacters>().Is(x => x.RawCharacters == "&##\""); }
protected override void Reset() { this.Font = Resources.GetBuiltinResource <Font>("Arial.ttf"); this._cachedTextFormatter = null; this._markupParser = null; this._visibleLength = -1; }
public void Parse_Incompleted_Markup_Attribute_01() { var markupParser = new LetterWriterMarkupParser(); var result = markupParser.Parse("aa<ruby bb>cc</ruby>"); result.TextRuns.Length.Is(2); result.TextRuns[0].IsInstanceOf <TextCharacters>().Is(x => x.RawCharacters == "aa"); result.TextRuns[1].IsInstanceOf <TextCharactersRubyGroup>();//.Is(x => x.RawCharacters == "cc"); }
protected override void OnValidate() { base.OnValidate(); this._cachedTextFormatter = null; this._markupParser = null; this.RefreshTextSourceIfNeeded(); this.MarkAsReformatRequired(); }
public void TreatNewLineAsLineBreakDisabledTest() { var markupParser = new LetterWriterMarkupParser() { TreatNewLineAsLineBreak = false }; var result = markupParser.Parse("abc\ndef"); result.TextRuns.Length.Is(1); result.TextRuns[0].IsInstanceOf <TextCharacters>().Is(x => x.RawCharacters == "abcdef"); }
public void TreatNewLineAsLineBreakTest() { var markupParser = new LetterWriterMarkupParser() { TreatNewLineAsLineBreak = true }; var result = markupParser.Parse("abc\ndef"); result.TextRuns.Length.Is(3); result.TextRuns[0].IsInstanceOf <TextCharacters>().Is(x => x.RawCharacters == "abc"); result.TextRuns[1].IsInstanceOf <LineBreak>(); result.TextRuns[2].IsInstanceOf <TextCharacters>().Is(x => x.RawCharacters == "def"); }
/// <summary> /// テキストソース(マークアップパース結果)の更新が必要であれば行います。 /// </summary> protected void RefreshTextSourceIfNeeded(bool forceUpdate = false) { if (this._prevText != this._text || this._textSource == null || this._markupParser == null || this._markupParser.TreatNewLineAsLineBreak != this.TreatNewLineAsLineBreak || forceUpdate) { this._markupParser = this._markupParser ?? this.CreateMarkupParser(); this._markupParser.TreatNewLineAsLineBreak = this.TreatNewLineAsLineBreak; this._textSource = _markupParser.Parse(this.text); this._prevText = this._text; // フォーマット済みテキストも更新するお this.UpdateFormattedTextLines(); } }
public void Setup() { this._formatter = new ConsoleTextFormatter(); this._markupParser = new ConsoleMarkupParser(); }