コード例 #1
0
        public void Parse_Empty()
        {
            var markupParser = new LetterWriterMarkupParser();
            var result       = markupParser.Parse("");

            result.TextRuns.Length.Is(0);
        }
コード例 #2
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");
        }
コード例 #3
0
        public void Parse_CharacterEntityReferences_In_Attribute_01()
        {
            var markupParser = new LetterWriterMarkupParser();
            var result       = markupParser.Parse("<ruby value='&amp;&#x0023;&#35;&quot;'>&amp;&#x0023;&#35;&quot;</ruby>");

            result.TextRuns.Length.Is(1);
            result.TextRuns[0].IsInstanceOf <TextCharactersRubyGroup>().Is(x => x.RawCharacters == "&##\"" && x.RawRubyCharacters == "&##\"");
        }
コード例 #4
0
        public void Parse_CharacterEntityReferences_01()
        {
            var markupParser = new LetterWriterMarkupParser();
            var result       = markupParser.Parse("&amp;&#x0023;&#35;&quot;");

            result.TextRuns.Length.Is(1);
            result.TextRuns[0].IsInstanceOf <TextCharacters>().Is(x => x.RawCharacters == "&##\"");
        }
コード例 #5
0
        protected override void Reset()
        {
            this.Font = Resources.GetBuiltinResource <Font>("Arial.ttf");

            this._cachedTextFormatter = null;
            this._markupParser        = null;
            this._visibleLength       = -1;
        }
コード例 #6
0
        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");
        }
コード例 #7
0
        protected override void OnValidate()
        {
            base.OnValidate();

            this._cachedTextFormatter = null;
            this._markupParser        = null;

            this.RefreshTextSourceIfNeeded();
            this.MarkAsReformatRequired();
        }
コード例 #8
0
        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");
        }
コード例 #9
0
        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");
        }
コード例 #10
0
        /// <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();
            }
        }
コード例 #11
0
 public void Setup()
 {
     this._formatter    = new ConsoleTextFormatter();
     this._markupParser = new ConsoleMarkupParser();
 }