public override bool CanBuild(int start, StringRange content)
        {
            if (!content.IsStartOfLine(start))
                return false;

            bool isMatch = _expression.IsMatch(content.Document, start);
            return isMatch;
        }
        public override bool CanBuild(int start, StringRange content)
        {
            if (!content.IsStartOfLine(start))
                return false;

            bool starts = content.HasCharactersAt(start, _startsWith, ' ');

            return starts;
        }
        public void IsStartOfLine_ContentStart()
        {
            /* given */
            const string text = "0123456789";
            var stringRange = new StringRange(text);

            /* when */
            /* then */
            stringRange.IsStartOfLine(0).ShouldBeEquivalentTo(true);
        }
        public void IsStartOfLine_StartOfLine()
        {
            /* given */
            const string text = "0123456789\nSecond line";
            var stringRange = new StringRange(text);

            /* when */
            /* then */
            stringRange.IsStartOfLine(stringRange.StartOfNextLine(0)).ShouldBeEquivalentTo(true);
        }