private void BenchmarkAutocompleteProvider(IAutocompleteProvider provider) { var warAndPeacePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "war_and_peace.txt"); if (!File.Exists(warAndPeacePath)) { return; } Console.WriteLine("Benchmarking {0}", provider.GetType().GetFriendlyName()); var passage = File.ReadAllText(warAndPeacePath); var prefixInput = "th"; var stopwatch = Stopwatch.StartNew(); provider.Train(passage); stopwatch.Stop(); Console.WriteLine("{0} ms to train war_and_peace.txt", stopwatch.ElapsedMilliseconds); stopwatch = Stopwatch.StartNew(); int n = 1000; for (int i = 0; i < n; i++) { var candidates = provider.GetWords(prefixInput).ToList(); } stopwatch.Stop(); Console.WriteLine("{0} ms to get autocompletions {1} times for '{2}'.", stopwatch.ElapsedMilliseconds, n, prefixInput); long bytesCount = VeryRoughEstimateOfMemoryConsumption(provider); Console.WriteLine("Trained provider uses roughly {0} KB.", bytesCount / 1024); Console.WriteLine(); }
public AvalonEditCodeEditor(ISharedViewState sharedViewState, IAutocompleteProvider autocompleteProvider) { _sharedViewState = sharedViewState; _autocompleteProvider = autocompleteProvider; completionDatas = CompletionDataConverter.ConvertAutocompleteItemsToCompletionDatas( _autocompleteProvider.ScriptingAutocompleteItems.ToArray()); InitializeComponent(); _documents = new Dictionary <string, TextDocument>(); TextArea.TextView.LineTransformers.Add(_offsetColorizer); }
public SearchController( IComposerContext composerContext, ISearchViewService searchViewService, IInventoryLocationProvider inventoryLocationProvider, ISearchTermsTransformationProvider searchTermsTransformationProvider, IAutocompleteProvider autocompleteProvider) { ComposerContext = composerContext ?? throw new ArgumentNullException(nameof(composerContext)); SearchViewService = searchViewService ?? throw new ArgumentNullException(nameof(searchViewService)); InventoryLocationProvider = inventoryLocationProvider ?? throw new ArgumentNullException(nameof(inventoryLocationProvider)); SearchTermsTransformationProvider = searchTermsTransformationProvider ?? throw new ArgumentNullException(nameof(searchTermsTransformationProvider)); AutocompleteProvider = autocompleteProvider ?? throw new ArgumentNullException(nameof(autocompleteProvider)); }
public void TestSuggestions() { var providers = new IAutocompleteProvider[] { new PrefixDictionaryAutocompleteProvider(), new TrieAutocompleteProvider <DictionaryTrie>(), new TrieAutocompleteProvider <ArrayTrie>(), new TrieAutocompleteProvider <ListTrie>(), }; var suggestionGroups = providers.Select(GetBasicSuggestions); foreach (var suggestionGroup in suggestionGroups) { var suggestionLine = string.Join(", ", suggestionGroup.Select(x => $"{x.Word} ({x.Confidence})")); Console.WriteLine(suggestionLine); } }
public ExpressionTextBox(ISharedViewState sharedViewState, IAutocompleteProvider autocompleteProvider) { _sharedViewState = sharedViewState; _autocompleteProvider = autocompleteProvider; KeyPress += ExpressionTextBox_KeyPress; _autocompleteMenu = new AutocompleteMenu.AutocompleteMenu(_sharedViewState); _autocompleteMenu.SetAutocompleteMenu(this, _autocompleteMenu); GotFocus += ExpressionTextBox_GotFocus; MouseDoubleClick += Control_MouseDoubleClick; SetFont(Settings.Default.ExpressionFont); SizeChanged += (o, e) => { _autocompleteMenu.MaximumSize = new Size(Size.Width, _autocompleteMenu.MaximumSize.Height); }; Settings.Default.PropertyChanged += (o, e) => { switch (e.PropertyName) { case nameof(Settings.Default.FunctionsOrder): RefreshAutoComplete(); break; case nameof(Settings.Default.ExpressionFont): SetFont(Settings.Default.ExpressionFont); break; } }; if (!DesignMode) { RefreshAutoComplete(); _sharedViewState.PropertyChanged += (o, e) => { if (e.PropertyName == nameof(SharedViewState.IsExponent)) { _showCaret(); } }; } }
public SearchController( IComposerContext composerContext, ISearchViewService searchViewService, IInventoryLocationProvider inventoryLocationProvider, ISearchTermsTransformationProvider searchTermsTransformationProvider, IAutocompleteProvider autocompleteProvider, ISearchUrlProvider searchUrlProvider, ICategoryBrowsingViewService categoryBrowsingViewService, IBaseSearchCriteriaProvider baseSearchCriteriaProvider, ICategoryBrowsingUrlProvider categoryBrowsingUrlProvider) { ComposerContext = composerContext ?? throw new ArgumentNullException(nameof(composerContext)); SearchViewService = searchViewService ?? throw new ArgumentNullException(nameof(searchViewService)); CategoryBrowsingViewService = categoryBrowsingViewService ?? throw new ArgumentNullException(nameof(categoryBrowsingViewService)); InventoryLocationProvider = inventoryLocationProvider ?? throw new ArgumentNullException(nameof(inventoryLocationProvider)); SearchTermsTransformationProvider = searchTermsTransformationProvider ?? throw new ArgumentNullException(nameof(searchTermsTransformationProvider)); AutocompleteProvider = autocompleteProvider ?? throw new ArgumentNullException(nameof(autocompleteProvider)); SearchUrlProvider = searchUrlProvider ?? throw new ArgumentNullException(nameof(searchUrlProvider)); BaseSearchCriteriaProvider = baseSearchCriteriaProvider ?? throw new ArgumentNullException(nameof(baseSearchCriteriaProvider)); CategoryBrowsingUrlProvider = categoryBrowsingUrlProvider ?? throw new ArgumentNullException(nameof(categoryBrowsingUrlProvider)); }
public ScintillaCodeEditorControl(ISharedViewState sharedViewState, IAutocompleteProvider autocompleteProvider) { _sharedViewState = sharedViewState; _autocompleteProvider = autocompleteProvider; _autocompleteMenu = new AutocompleteMenu.AutocompleteMenu(sharedViewState) { TargetControlWrapper = new ScintillaWrapper(this), MaximumSize = new Size(500, 180).DpiScale() }; _autocompleteMenu.SetAutocompleteItems(_autocompleteProvider.ScriptingAutocompleteItems); //_autocompleteMenu.CaptureFocus = true; InitializeComponent(); // this.BorderStyle=BorderStyle.None; Dock = DockStyle.Fill; _documents = new Dictionary <string, Document>(); SizeChanged += (o, e) => { _autocompleteMenu.MaximumSize = new Size(Size.Width, _autocompleteMenu.MaximumSize.Height); }; }
public MainWindow() { InitializeComponent(); _autocomplete = new AutocompleteProvider(); }
public ConstantsCommand(ITextProvider expressionTextProvider, IScriptProvider scriptingTextProvider, IScriptProvider customFunctionsTextProvider, ISharedViewState sharedViewState, IAutocompleteProvider autocompleteProvider, IClickedMouseButtonsProvider clickedMouseButtonsProvider, IShowFunctionDetails showFunctionDetails) : base(MenuStrings.constantsToolStripMenuItem_Text, new Dictionary <string, string>() { { "MathematicalConstants", MenuStrings.mathematicalConstantsToolStripMenuItem_Text }, { "PhysicalConstants", MenuStrings.physicalConstantsToolStripMenuItem_Text } }, expressionTextProvider, scriptingTextProvider, customFunctionsTextProvider, sharedViewState, autocompleteProvider, clickedMouseButtonsProvider, showFunctionDetails) { }
public FunctionsCommand(ITextProvider expressionTextProvider, IScriptProvider scriptingTextProvider, IScriptProvider customFunctionsTextProvider, ISharedViewState sharedViewState, IAutocompleteProvider autocompleteProvider, IClickedMouseButtonsProvider clickedMouseButtonsProvider, IShowFunctionDetails showFunctionDetails) : base(MenuStrings.functionsToolStripMenuItem_Text, new Dictionary <string, string>() { { "ElementaryFunctions", MenuStrings.elementaryFunctionsToolStripMenuItem_Text }, { "SpecialFunctions", MenuStrings.specialFunctionsToolStripMenuItem_Text } }, expressionTextProvider, scriptingTextProvider, customFunctionsTextProvider, sharedViewState, autocompleteProvider, clickedMouseButtonsProvider, showFunctionDetails) { }
private static List <IToolbarCommand> BuildFunctionsOrConstantsCommands(string key, ITextProvider expressionTextProvider, IScriptProvider scriptingTextProvider, IScriptProvider customFunctionsTextProvider, ISharedViewState sharedViewState, IAutocompleteProvider autocompleteProvider, IClickedMouseButtonsProvider mouseButtonsProvider, IShowFunctionDetails showFunctionDetails) { var dict = new Dictionary <string, IToolbarCommand>(); foreach (var f in autocompleteProvider.ExpressionAutocompleteItems) { if (f.Details.IsNullOrEmpty() || f.Details.Type != key) { continue; } //TODO: remove this code when made sure it does nothing: if (f.Details.Category == "") { f.Details.Category = "_empty_"; } if (!dict.ContainsKey(f.Details.Category)) { //var cat = new ToolStripMenuItem(f.Value.Category) { Name = f.Value.Category }; var command = new DummyCommand(f.Details.Category) { ChildrenCommands = new List <IToolbarCommand>() }; dict.Add(f.Details.Category, command); } (dict[f.Details.Category].ChildrenCommands as List <IToolbarCommand>).Add( new FunctionOrConstantCommand(f, expressionTextProvider, scriptingTextProvider, customFunctionsTextProvider, sharedViewState, mouseButtonsProvider, showFunctionDetails)); } return(dict.Values.ToList()); }
public FunctionDetailsBasedCommand(string name, Dictionary <string, string> KeyAndNameOfCommandCollection, ITextProvider expressionTextProvider, IScriptProvider scriptingTextProvider, IScriptProvider customFunctionsTextProvider, ISharedViewState sharedViewState, IAutocompleteProvider autocompleteProvider, IClickedMouseButtonsProvider mouseButtonsProvider, IShowFunctionDetails showFunctionDetails) : base(name) { var childrenCommands = new List <IToolbarCommand>(); foreach (var keyValue in KeyAndNameOfCommandCollection) { childrenCommands.Add(new DummyCommand(keyValue.Value) { ChildrenCommands = BuildFunctionsOrConstantsCommands(keyValue.Key, expressionTextProvider, scriptingTextProvider, customFunctionsTextProvider, sharedViewState, autocompleteProvider, mouseButtonsProvider, showFunctionDetails) }); } ChildrenCommands = childrenCommands; }
public AutocompleteController(ILogger <CalculateController> logger, IAutocompleteProvider autocompleteProvider) { _logger = logger; _autocompleteProvider = autocompleteProvider; }
private IEnumerable <ICandidate> GetSuggestions(IAutocompleteProvider provider, string passage) { provider.Train(passage); return(provider.GetWords("th")); }
private IEnumerable <ICandidate> GetBasicSuggestions(IAutocompleteProvider provider) { return(GetSuggestions(provider, "The thing that I was thinking that was third in the thingamagij is a thinking cap.")); }