public PositionMarkup(PositionMarkupDefinition definition, int index, GroupCollection groups) : base(definition) { Syntax = definition.Syntax; Index = index; CapturedValues = groups.Cast <Group>().Skip(1).Select(x => x.Value); }
private bool TryGetPositionMarkup( string markup, int index, PositionMarkupDefinition markupDefinition, out PositionMarkup positionMarkup, out TextSpan span) { var currentMarkup = markup.Substring(0, index + 1); // Note: syntax with regex currently does not exist, but allow it in the future Match match; if ((match = Regex.Match(currentMarkup, $"{Regex.Escape(markupDefinition.Syntax)}$")).Success) { span = GetTextSpanForSyntax(index, match.Value); positionMarkup = new PositionMarkup(markupDefinition, span.Start, match.Groups); return(true); } // Use defaults (values shouldn't be used) span = default(TextSpan); positionMarkup = null; return(false); }