コード例 #1
0
        internal static void AddSuggestionsForFunctions(IntellisenseData.IntellisenseData intellisenseData)
        {
            // TASK: 76039: Intellisense: Update intellisense to filter suggestions based on the expected type of the text being typed in UI
            Contracts.AssertValue(intellisenseData);

            foreach (TexlFunction function in intellisenseData.Binding.NameResolver.Functions)
            {
                string qualifiedName  = function.QualifiedName;
                int    highlightStart = qualifiedName.IndexOf(intellisenseData.MatchingStr, StringComparison.OrdinalIgnoreCase);
                int    highlightEnd   = intellisenseData.MatchingStr.Length;
                if (intellisenseData.ShouldSuggestFunction(function))
                {
                    if (IsMatch(qualifiedName, intellisenseData.MatchingStr))
                    {
                        AddFunctionOverloads(qualifiedName, intellisenseData.Suggestions, new IntellisenseSuggestion(function, intellisenseData.BoundTo, new UIString(qualifiedName, 0, highlightEnd)));
                    }
                    else if (highlightStart > -1)
                    {
                        AddFunctionOverloads(qualifiedName, intellisenseData.SubstringSuggestions, new IntellisenseSuggestion(function, intellisenseData.BoundTo, new UIString(qualifiedName, highlightStart, highlightStart + highlightEnd)));
                    }
                }
            }
        }