Ejemplo n.º 1
0
        protected internal override void VisitAttributeName(AttributeName node)
        {
            base.VisitAttributeName(node);

            if (node.Span.Start <= this.position && this.position <= node.Span.End)
            {
                Debug.Assert(this.currentDirective != null, "currentDirective");
                var directiveDescriptor = DirectiveDescriptor.GetDirectiveDescriptor(this.currentDirective.GetType());

                var completions = new List <Completion>();
                foreach (AttributeDescriptor attribute in directiveDescriptor.Attributes.Values)
                {
                    if (!this.currentDirective.Attributes.ContainsKey(attribute.DisplayName))
                    {
                        completions.Add(CreateAttributeCompletion(attribute));
                    }
                }

                if (completions.Count > 0)
                {
                    this.Completions = completions;
                    this.Node        = node;
                }
            }
        }
Ejemplo n.º 2
0
        protected internal override void VisitAttributeValue(AttributeValue node)
        {
            base.VisitAttributeValue(node);

            if (node.Span.Start <= this.position && this.position <= node.Span.End)
            {
                Debug.Assert(this.currentDirective != null, "currentDirective");
                Debug.Assert(this.currentAttribute != null, "currentAttribute");
                DirectiveDescriptor directiveDescriptor = DirectiveDescriptor.GetDirectiveDescriptor(this.currentDirective.GetType());
                AttributeDescriptor attributeDescriptor;
                if (directiveDescriptor.Attributes.TryGetValue(this.currentAttribute.Name, out attributeDescriptor))
                {
                    this.Completions = new List <Completion>(attributeDescriptor.Values.Values.Select(CreateAttributeValueCompletion));
                    this.Node        = node;
                }
            }
        }