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); }
private bool HasCorrectBounds(MarkdownTag tag) { if (tag == null) { return(false); } return(HasCorrectOpening(tag) && HasCorrectEnding(tag)); }
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])); }
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)); }
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); }
public TagEvent(int index, TagEventType type, MarkdownTag tag) { Index = index; Type = type; Tag = tag; }
public void Initialize() { MarkdownTag.Register(); }
public void Dispose() { MarkdownTag.Unregister(); }
private string ParseNewTag(MarkdownTag tag) { tagsNesting.Push(tag); return(tag.GetTranslation()); }
public void OnDisable() { MenuButtons.instance.UnregisterButton(menuBtn); MarkdownTag.Unregister(); Logger.log.Debug("Disabled"); }
public void OnEnable() { Logger.log.Debug($"{CompileConstants.Manifest.Name} Enabled"); MarkdownTag.Register(); MenuButtons.instance.RegisterButton(menuBtn); }