private void TrackTagHelperBlock(TagHelperBlockBuilder builder)
        {
            _currentTagHelperTracker = new TagHelperBlockTracker(builder);
            _trackerStack.Push(_currentTagHelperTracker);

            TrackBlock(builder);
        }
        private void TrackTagHelperBlock(TagHelperBlockBuilder builder)
        {
            _currentTagHelperTracker = new TagHelperBlockTracker(_tagHelperPrefix, builder);
            PushTrackerStack(_currentTagHelperTracker);

            TrackBlock(builder);
        }
        private void BuildCurrentlyTrackedTagHelperBlock(Block endTag)
        {
            // Track the original end tag so the editor knows where each piece of the TagHelperBlock lies
            // for formatting.
            _trackerStack.Pop().Builder.SourceEndTag = endTag;

            _currentTagHelperTracker = _trackerStack.Count > 0 ? _trackerStack.Peek() : null;

            BuildCurrentlyTrackedBlock();
        }
        private static void OnAllowedChildrenTagError(
            TagHelperBlockTracker tracker,
            Block tagBlock,
            ErrorSink errorSink)
        {
            var tagName = GetTagName(tagBlock);
            var allowedChildrenString = string.Join(", ", tracker.AllowedChildren);
            var errorMessage          = RazorResources.FormatTagHelperParseTreeRewriter_InvalidNestedTag(
                tagName,
                tracker.Builder.TagName,
                allowedChildrenString);

            errorSink.OnError(tagBlock.Start, errorMessage, tagBlock.Length);
        }
示例#5
0
        private static void OnAllowedChildrenTagError(
            TagHelperBlockTracker tracker,
            string tagName,
            Block tagBlock,
            ErrorSink errorSink)
        {
            var allowedChildrenString = string.Join(", ", tracker.AllowedChildren);
            var errorMessage          = LegacyResources.FormatTagHelperParseTreeRewriter_InvalidNestedTag(
                tagName,
                tracker.TagName,
                allowedChildrenString);
            var errorStart = GetTagDeclarationErrorStart(tagBlock);

            errorSink.OnError(errorStart, errorMessage, tagName.Length);
        }
        private static void OnAllowedChildrenTagError(
            TagHelperBlockTracker tracker,
            string tagName,
            Block tagBlock,
            ErrorSink errorSink)
        {
            var allowedChildrenString = string.Join(", ", tracker.AllowedChildren);
            var errorStart            = GetTagDeclarationErrorStart(tagBlock);

            errorSink.OnError(
                RazorDiagnosticFactory.CreateTagHelper_InvalidNestedTag(
                    new SourceSpan(errorStart, tagName.Length),
                    tagName,
                    tracker.TagName,
                    allowedChildrenString));
        }
        private void BuildCurrentlyTrackedTagHelperBlock(Block endTag)
        {
            Debug.Assert(_trackerStack.Any(tracker => tracker.IsTagHelper));

            // We need to pop all trackers until we reach our TagHelperBlock. We can throw away any non-TagHelper
            // trackers because they don't need to be well-formed.
            TagHelperBlockTracker tagHelperTracker;

            do
            {
                tagHelperTracker = PopTrackerStack() as TagHelperBlockTracker;
            }while (tagHelperTracker == null);

            // Track the original end tag so the editor knows where each piece of the TagHelperBlock lies
            // for formatting.
            tagHelperTracker.Builder.SourceEndTag = endTag;

            _currentTagHelperTracker =
                (TagHelperBlockTracker)_trackerStack.FirstOrDefault(tagBlockTracker => tagBlockTracker.IsTagHelper);

            BuildCurrentlyTrackedBlock();
        }
        private void TrackTagHelperBlock(TagHelperBlockBuilder builder)
        {
            _currentTagHelperTracker = new TagHelperBlockTracker(builder);
            PushTrackerStack(_currentTagHelperTracker);

            TrackBlock(builder);
        }
        private void BuildCurrentlyTrackedTagHelperBlock(Block endTag)
        {
            Debug.Assert(_trackerStack.Any(tracker => tracker.IsTagHelper));

            // We need to pop all trackers until we reach our TagHelperBlock. We can throw away any non-TagHelper
            // trackers because they don't need to be well-formed.
            TagHelperBlockTracker tagHelperTracker;
            do
            {
                tagHelperTracker = PopTrackerStack() as TagHelperBlockTracker;
            }
            while (tagHelperTracker == null);

            // Track the original end tag so the editor knows where each piece of the TagHelperBlock lies
            // for formatting.
            tagHelperTracker.Builder.SourceEndTag = endTag;

            _currentTagHelperTracker =
                (TagHelperBlockTracker)_trackerStack.FirstOrDefault(tagBlockTracker => tagBlockTracker.IsTagHelper);

            BuildCurrentlyTrackedBlock();
        }
        private static void OnAllowedChildrenTagError(
            TagHelperBlockTracker tracker,
            string tagName,
            Block tagBlock,
            ErrorSink errorSink)
        {
            var allowedChildrenString = string.Join(", ", tracker.AllowedChildren);
            var errorMessage = RazorResources.FormatTagHelperParseTreeRewriter_InvalidNestedTag(
                tagName,
                tracker.TagName,
                allowedChildrenString);
            var errorStart = GetTagDeclarationErrorStart(tagBlock);

            errorSink.OnError(errorStart, errorMessage, tagName.Length);
        }
示例#11
0
        private void BuildCurrentlyTrackedTagHelperBlock(Block endTag)
        {
            // Track the original end tag so the editor knows where each piece of the TagHelperBlock lies
            // for formatting.
            _trackerStack.Pop().Builder.SourceEndTag = endTag;

            _currentTagHelperTracker = _trackerStack.Count > 0 ? _trackerStack.Peek() : null;

            BuildCurrentlyTrackedBlock();
        }