diff --git a/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs b/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs index b4a08922a4a..befb8d180a0 100644 --- a/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs @@ -93,6 +93,8 @@ public partial class DynamoViewModel : ViewModelBase, IDynamoViewModel internal DynamoMLDataPipelineExtension MLDataPipelineExtension { get; set; } + internal static Dictionary DefaultAutocompleteCandidates = new Dictionary(); + /// /// Collection of Right SideBar tab items: view extensions and docked windows. /// diff --git a/src/DynamoCoreWpf/ViewModels/Search/NodeAutoCompleteSearchViewModel.cs b/src/DynamoCoreWpf/ViewModels/Search/NodeAutoCompleteSearchViewModel.cs index c4f7732753d..3b60b9a4d59 100644 --- a/src/DynamoCoreWpf/ViewModels/Search/NodeAutoCompleteSearchViewModel.cs +++ b/src/DynamoCoreWpf/ViewModels/Search/NodeAutoCompleteSearchViewModel.cs @@ -185,15 +185,24 @@ private void InitializeDefaultAutoCompleteCandidates() // TODO: These are basic input types in Dynamo // This should be only served as a temporary default case. var queries = new List(){"String", "Number Slider", "Integer Slider", "Number", "Boolean", "Watch", "Watch 3D", "Python Script"}; - foreach (var query in queries) + var nodeNamesList = DynamoViewModel.DefaultAutocompleteCandidates.Keys.ToList(); + if (nodeNamesList.Where(queries.Contains).Any() == true) { - var foundNode = Search(query).Where(n => n.Name.Equals(query)).FirstOrDefault(); - if(foundNode != null) + DefaultResults = DynamoViewModel.DefaultAutocompleteCandidates.Values; + } + else + { + foreach (var query in queries) { - candidates.Add(foundNode); + var foundNode = Search(query).Where(n => n.Name.Equals(query)).FirstOrDefault(); + if (foundNode != null) + { + candidates.Add(foundNode); + DynamoViewModel.DefaultAutocompleteCandidates.Add(foundNode.Name, foundNode); + } } + DefaultResults = candidates; } - DefaultResults = candidates; } internal MLNodeAutoCompletionRequest GenerateRequestForMLAutocomplete()