Example #1
0
 internal CompletionSourceConnectionResult(bool sourceUsesSuggestionMode,
                                           SuggestionItemOptions requestedSuggestionItemOptions,
                                           InitialSelectionHint initialSelectionHint,
                                           ImmutableArray <CompletionItem> initialCompletionItems,
                                           bool isCanceled = false)
 {
     SourceUsesSuggestionMode       = sourceUsesSuggestionMode;
     RequestedSuggestionItemOptions = requestedSuggestionItemOptions;
     InitialSelectionHint           = initialSelectionHint;
     InitialCompletionItems         = initialCompletionItems;
     IsCanceled = isCanceled;
 }
        /// <summary>
        /// Returns completion items applicable to the value portion of the key-value pair
        /// </summary>
        private CompletionContext GetContextForValue(string key)
        {
            // Provide a few items based on the key
            ImmutableArray <CompletionItem> itemsBasedOnKey = ImmutableArray <CompletionItem> .Empty;

            if (!string.IsNullOrEmpty(key))
            {
                var matchingElement = Catalog.Elements.FirstOrDefault(n => n.Name == key);
                if (matchingElement != null)
                {
                    var itemsBuilder = ImmutableArray.CreateBuilder <CompletionItem>();
                    itemsBuilder.Add(new CompletionItem(matchingElement.Name, this));
                    itemsBuilder.Add(new CompletionItem(matchingElement.Symbol, this));
                    itemsBuilder.Add(new CompletionItem(matchingElement.AtomicNumber.ToString(), this));
                    itemsBuilder.Add(new CompletionItem(matchingElement.AtomicWeight.ToString(), this));
                    itemsBasedOnKey = itemsBuilder.ToImmutable();
                }
            }
            // We would like to allow user to type anything, so we create SuggestionItemOptions
            var suggestionOptions = new SuggestionItemOptions("Value of your choice", $"Please enter value for key {key}");

            return(new CompletionContext(itemsBasedOnKey, suggestionOptions));
        }
Example #3
0
 internal SuggestionModeCompletionItemSource(SuggestionItemOptions options)
 {
     _options = options ?? throw new ArgumentNullException(nameof(options));
 }