private void ParseWordFromDictionary(Word.Selection selection) { ExtendSelectionLeft(selection, Word.WdUnits.wdCharacter); ExtendSelectionLeft(selection, Word.WdUnits.wdWord); var text = selection.Text; if (text.Length == 0) { CollaseSelection(selection); return; } var lastCharacter = text.Last().ToString(); text = text.Remove(text.Length - 1); var result = _spellChecker.CheckSpell(text.Trim()); if (!string.IsNullOrWhiteSpace(result)) { selection.Text = result + lastCharacter; } CollaseSelection(selection); }
private void CorrectWords(Words words) { foreach (Range range in words) { var value = range.Text.ToString(); var spacesFromStart = value.TakeWhile(Char.IsWhiteSpace).Count(); var spacesFromEnd = value.Reverse().TakeWhile(c => Char.IsWhiteSpace(c) || c == '.').Count(); range.Start += spacesFromStart; range.End -= spacesFromEnd; if (string.IsNullOrEmpty(range.Text)) { continue; } var replacementText = _spellChecker.CheckSpell(range.Text); if (!string.IsNullOrEmpty(replacementText)) { range.Text = replacementText; } } }