public IHighlighting Run(IReference reference)
        {
            var resolveResult = reference.Resolve();

            if (resolveResult.Result.Candidates.Count > 1)
            {
                var candidates = resolveResult.Result.Candidates;
                var result     = new List <string>();
                foreach (var candidate in candidates)
                {
                    result.Add(Environment.NewLine + "  " + DeclaredElementPresenter.Format(ShaderLabLanguage.Instance,
                                                                                            ShaderLabDeclaredElementPresenterStyles.CANDIDATE_PRESENTER, candidate));
                }
                result.Sort();
                var message = result.AggregateString("");
                var range   = reference.GetDocumentRange();
                return(new MultipleResolveCandidatesError(range, message, reference));
            }

            return(null);
        }
Beispiel #2
0
 public override DocumentRange CalculateRange() => Reference.GetDocumentRange();
Beispiel #3
0
        protected virtual void HighlightReference(IElement element, IReference reference)
        {
            if (reference.ReferenceType == ReferenceType.TEXT
                || reference.ReferenceType == ReferenceType.REFERENCE_NAME
                || reference.ReferenceType == ReferenceType.LABEL)
            {
                ResolveResult resolveResult = reference.Resolve();

            //                TODO resolveResult.DeclaredElement == null property@name !!!

                if (resolveResult.DeclaredElement != null)
                {
                    DocumentRange range = reference.GetDocumentRange();
                    DocumentRange footerRange = XMLPSIUtils.GetFooterTagRange(element, range);
                    Highlight(range, resolveResult.DeclaredElement);
                    if (footerRange != DocumentRange.InvalidRange)
                        Highlight(footerRange, resolveResult.DeclaredElement);
                }
            }
        }
 public DocumentRange CalculateRange() => myReference.GetDocumentRange();