protected override CompletionItem CreateItem(
            string displayText, string displayTextSuffix, string insertionText,
            List <ISymbol> symbols, SyntaxContext context, bool preselect, SupportedPlatformData supportedPlatformData)
        {
            var rules         = GetCompletionItemRules(symbols, context, preselect);
            var matchPriority = preselect ? ComputeSymbolMatchPriority(symbols[0]) : MatchPriority.Default;

            rules = rules.WithMatchPriority(matchPriority);

            if (context.IsRightSideOfNumericType)
            {
                rules = rules.WithSelectionBehavior(CompletionItemSelectionBehavior.SoftSelection);
            }
            else if (preselect)
            {
                rules = rules.WithSelectionBehavior(PreselectedItemSelectionBehavior);
            }

            return(SymbolCompletionItem.CreateWithNameAndKind(
                       displayText: displayText,
                       displayTextSuffix: displayTextSuffix,
                       symbols: symbols,
                       rules: rules,
                       contextPosition: context.Position,
                       insertionText: insertionText,
                       filterText: GetFilterText(symbols[0], displayText, context),
                       supportedPlatforms: supportedPlatformData));
        }
        protected override CompletionItem CreateItem(string displayText, string insertionText, List <ISymbol> symbols, SyntaxContext context, bool preselect, SupportedPlatformData supportedPlatformData)
        {
            var matchPriority = preselect ? ComputeSymbolMatchPriority(symbols[0]) : MatchPriority.Default;
            var rules         = GetCompletionItemRules(symbols, context, preselect);

            if (preselect)
            {
                rules = rules.WithSelectionBehavior(PreselectedItemSelectionBehavior);
            }

            return(SymbolCompletionItem.CreateWithNameAndKind(
                       displayText: displayText,
                       insertionText: insertionText,
                       filterText: GetFilterText(symbols[0], displayText, context),
                       contextPosition: context.Position,
                       symbols: symbols,
                       supportedPlatforms: supportedPlatformData,
                       matchPriority: matchPriority,
                       rules: rules));
        }