コード例 #1
0
        private bool IsCorrectEnding(MarkdownTag tag)
        {
            var previousChar = currentText[pointer - tag.Length - 1];
            var tagValue     = ReadUntil(IsTag, pointer - tag.Length);

            return(char.IsLetter(previousChar) && tagValue == tag.Value);
        }
コード例 #2
0
 private bool HasCorrectBounds(MarkdownTag tag)
 {
     if (tag == null)
     {
         return(false);
     }
     return(HasCorrectOpening(tag) && HasCorrectEnding(tag));
 }
コード例 #3
0
        private bool HasCorrectOpening(MarkdownTag tag)
        {
            if (pointer >= currentText.Length)
            {
                return(false);
            }
            if (pointer - tag.Length != 0 && currentText[pointer - tag.Length - 1] == '\\')
            {
                return(false);
            }

            return(char.IsLetter(currentText[pointer]));
        }
コード例 #4
0
        private string ParseTag(MarkdownTag tag)
        {
            if (tag is Text)
            {
                return(tag.Value);
            }
            if (tagsNesting.Any())
            {
                var previousTag = tagsNesting.Peek();
                if (IsCorrectEnding(previousTag))
                {
                    return(ParsePreviousTag());
                }
                if (previousTag != tag && !previousTag.CanContain(tag))
                {
                    return(tag.Value);
                }
            }

            return(ParseNewTag(tag));
        }
コード例 #5
0
        private bool HasCorrectEnding(MarkdownTag tag)
        {
            var index = pointer;

            while (index < currentText.Length)
            {
                index = currentText.IndexOf(tag.Value, index, StringComparison.Ordinal);
                if (index == -1)
                {
                    return(false);
                }
                var previousChar = currentText[index - 1];
                var tagValue     = ReadUntil(IsTag, index);
                index += tagValue.Length;
                if (char.IsLetter(previousChar) && tagValue == tag.Value)
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #6
0
 public TagEvent(int index, TagEventType type, MarkdownTag tag)
 {
     Index = index;
     Type  = type;
     Tag   = tag;
 }
コード例 #7
0
 public void Initialize()
 {
     MarkdownTag.Register();
 }
コード例 #8
0
 public void Dispose()
 {
     MarkdownTag.Unregister();
 }
コード例 #9
0
 private string ParseNewTag(MarkdownTag tag)
 {
     tagsNesting.Push(tag);
     return(tag.GetTranslation());
 }
コード例 #10
0
 public void OnDisable()
 {
     MenuButtons.instance.UnregisterButton(menuBtn);
     MarkdownTag.Unregister();
     Logger.log.Debug("Disabled");
 }
コード例 #11
0
 public void OnEnable()
 {
     Logger.log.Debug($"{CompileConstants.Manifest.Name} Enabled");
     MarkdownTag.Register();
     MenuButtons.instance.RegisterButton(menuBtn);
 }