private void btnIgnore_Click(object sender, EventArgs e) { if (LanguageFeature.SupportsFeature(this.textView.Language, "Spellcheck.Check") == false) { return; } this.selectionStart = this.textView.SelectionStart + this.textView.SelectionLength; this.GotoNext(); }
private void btnAddWord_Click(object sender, EventArgs e) { if (LanguageFeature.SupportsFeature(this.textView.Language, "Spellcheck.AddWord")) { if (String.IsNullOrEmpty(this.textView.SelectedText)) { Bridge.Get().Error(Strings.Spellchecking_CannotAddEmptyWord, Strings.Spellchecking_Title); return; } var state = new LFSValueAsync <string>(this.textView.SelectedText); state.Done += state_Done; LanguageFeature.FeaturePerform(this.textView.Language, "Spellcheck.AddWord", state); } }
private void btnReplace_Click(object sender, EventArgs e) { if (LanguageFeature.SupportsFeature(this.textView.Language, "Spellcheck.Check") == false) { return; } var diff = this.tbxReplaceWith.Text.Length - this.textView.SelectionLength; Tag = new object(); this.textView.SelectedText = this.tbxReplaceWith.Text; Tag = null; this.selectionStart += diff; this.GotoNext(); }
protected override void OnShown(EventArgs e) { base.OnShown(e); if (this.textView.TextLength == 0) { Bridge.Get().Error(Strings.Spellchecking_TextControlIsEmpty, Strings.Spellchecking_Title); return; } if (this.language == null) { Bridge.Get().Error(@"There was no language for the cultureinfo, so cannot spellcheck for it.", @"Internal error"); Close(); return; } if (LanguageFeature.SupportsFeature(this.language, "Spellcheck.Check") == false && LanguageFeature.SupportsFeature(this.language, "Synonym") == false) { var question = String.Format(Strings.Spellchecking_LexiconsAreNotInstalled_AskDownload, this.language.Name); if (Bridge.Get <IBDialogs>().AskYesNo(question, Strings.Spellchecking_Title)) { this.ShowGetAddtionalSpellcheckResources(); if (Bridge.Get <IBDialogs>().AskYesNo(Strings.Languages_Download_RestartRequired, Strings.Spellchecking_Title)) { Application.Restart(); } } Close(); return; } this.selectionStart = this.textView.SelectionStart; this.cbxEnableInlineSpellcheck.Checked = SpellcheckSettings.InlineEnabled; this.cbxIgnoreAllCaps.Checked = SpellcheckSettings.IgnoreAllCaps; this.cbxIgnoreWordsWithNumbers.Checked = SpellcheckSettings.IgnoreWithNumbers; this.cbxIgnoreWordsWithAsianChars.Checked = SpellcheckSettings.IgnoreWithAsian; this.tbxLinesWithPrefix.Text = SpellcheckSettings.LinesWithPrefix; this.GotoNext(); }
private void btnIgnoreWord_Click(object sender, EventArgs e) { if (LanguageFeature.SupportsFeature(this.textView.Language, "Spellcheck.Check") == false) { return; } foreach (var ignoredWord in SpellcheckSettings.IgnoredWords) { if (ignoredWord.Equals(this.textView.SelectedText, StringComparison.CurrentCultureIgnoreCase) == false) { SpellcheckSettings.AddIgnoreWord(this.textView.SelectedText); } } this.selectionStart = this.textView.SelectionStart + this.textView.SelectionLength; this.GotoNext(); }
private bool GotoNext() { if (LanguageFeature.SupportsFeature(this.textView.Language, "Spellcheck.Check") == false) { return(false); } var searchFrom = Math.Max(0, this.selectionStart); var regex = new Regex(InvariantStrings.REGEX_WORD_BARRIER_STRICT + "([\\w'-]+?)" + InvariantStrings.REGEX_WORD_BARRIER_STRICT); var text = this.textView.TextGet(); while (true) { var match = regex.Match(text, searchFrom); if (match.Success == false) { break; } var value = match.Groups[2]; // Check for unwanted match characters, and abort if so is instructed. if (SpellcheckSettings.CheckIfWordIsValid(value.Value, this.textView.GetLineText(this.textView.GetLineFromCharIndex(searchFrom))) == false) { searchFrom += value.Length; continue; } var spellcheckValid = false; foreach (var check in LanguageFeature.FeatureFetchMultiple <bool>(this.textView.Language, "Spellcheck.Check", new LFSString(value.Value))) { spellcheckValid = check; if (spellcheckValid) { break; } } if (spellcheckValid == false) { this.lbxSuggestions.Items.Clear(); Tag = new object(); this.textView.SelectionStart = this.selectionStart = value.Index; this.textView.SelectionLength = this.selectionLength = value.Length; this.textView.ScrollToCaret(); Tag = null; foreach (string suggestion in LanguageFeature.FeatureFetchMultiple <string>(this.textView.Language, "Spellcheck.Suggest", new LFSString(value.Value))) { this.lbxSuggestions.Items.Add(suggestion); } if (this.lbxSuggestions.Items.Count == 0) { this.tbxReplaceWith.Clear(); this.tbxReplaceWith.Focus(); } else { this.lbxSuggestions.SelectedIndex = 0; } return(true); } searchFrom += value.Length; } Bridge.Get().Info(Strings.Spellchecking_EndOfText_Success, Strings.Spellchecking_Title); return(false); }