# Class DefaultAutocompleter OptimaJet.Workflow.Core.Runtime.CodeAutocomplete.DefaultAutocompleter Provides the default [ICodeAutocompleter](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.CodeAutocomplete/ICodeAutocompleter/) implementation. Namespace: [OptimaJet.Workflow.Core.Runtime.CodeAutocomplete](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.CodeAutocomplete/) ```csharp public class DefaultAutocompleter : ICodeAutocompleter ``` ## Type Hierarchy - DefaultAutocompleter Current type - Implemented interfaces - [ICodeAutocompleter](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.CodeAutocomplete/ICodeAutocompleter/) ## Constructors `public DefaultAutocompleter(Action log)` Initializes a new instance of [DefaultAutocompleter](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.CodeAutocomplete/DefaultAutocompleter/) with a default type searcher. ### Parameters | Name | Type | Description | | --- | --- | --- | | `log` | `Action` | Logging callback used for non-fatal autocomplete errors. | `public DefaultAutocompleter(Action log, ITypeSearcher typeSearcher)` Initializes a new instance of [DefaultAutocompleter](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.CodeAutocomplete/DefaultAutocompleter/). ### Parameters | Name | Type | Description | | --- | --- | --- | | `log` | `Action` | Logging callback used for non-fatal autocomplete errors. | | `typeSearcher` | `ITypeSearcher` | Type searcher used to discover and resolve CLR types. | ## Properties `public string AutocompleterName { get; }` Gets the name that identifies the default autocompleter. `public bool Initialized { get; }` Gets a value indicating whether initialization has completed. ## Methods `public HashSet Get(string pattern, IEnumerable usings, IEnumerable variables)` Gets autocomplete items that match the specified pattern. ### Parameters | Name | Type | Description | | --- | --- | --- | | `pattern` | `String` | Text to search for, for example `System.Thr`. | | `usings` | `IEnumerable` | Active namespace prefixes used for resolution. | | `variables` | `IEnumerable` | Context variables to include in completion results. | ### Returns | Type | Description | | --- | --- | | `HashSet` | A set of matching [AutocompleteItem](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.CodeAutocomplete/AutocompleteItem/) instances. | `public void InitIfNotInitialized()` Initializes the autocompleter lazily and performs one-time root setup. ### Remarks The method is guarded by a lock and can be called multiple times safely. `public void AddVariables(IEnumerable variables)` Adds variables to the autocompleter root. ### Parameters | Name | Type | Description | | --- | --- | --- | | `variables` | `IEnumerable` | Variables to add to available completion candidates. | ## Fields `public static string DefaultAutocompleterName` Default autocompleter name. ## Remarks Call [DefaultAutocompleter.InitIfNotInitialized()](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.CodeAutocomplete/DefaultAutocompleter/) before calling [DefaultAutocompleter.Get(string, IEnumerable, IEnumerable)](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.CodeAutocomplete/DefaultAutocompleter/) or [DefaultAutocompleter.AddVariables(IEnumerable)](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.CodeAutocomplete/DefaultAutocompleter/) so the autocomplete tree is built before use. [Previous CodeAutocompleteProvider](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.CodeAutocomplete/CodeAutocompleteProvider/) [Next ICodeAutocompleteProvider](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime.CodeAutocomplete/ICodeAutocompleteProvider/)