private void OnStartup(object sender, StartupEventArgs ea) { InitializeSettings(); if (UserSettings == null || AlreadyEditingFile()) { Shutdown(); return; } Activated += OnActivated; _spellingService = new SpellingService(); var spellCheckProvider = new SpellCheckProvider(_spellingService); var snippetManager = new SnippetManager(); var mainWindow = new MainWindow(spellCheckProvider, snippetManager); var windowPlacementSettings = mainWindow.GetWindowPlacementSettings(); if (windowPlacementSettings.UpgradeSettings) { windowPlacementSettings.Upgrade(); windowPlacementSettings.UpgradeSettings = false; windowPlacementSettings.Save(); } MainWindow = mainWindow; MainWindow.Show(); }
private void ExecuteAddToDictionary(object sender, ExecutedRoutedEventArgs ea) { var word = (string)ea.Parameter; SpellCheckProvider.Add(word); SpellCheck = !SpellCheck; SpellCheck = !SpellCheck; }
protected override void OnViewLoaded(object view) { SpellCheckProvider.Initialise((DocumentView)view); PairedCharsHighlightProvider.Initialise((DocumentView)view); SearchProvider.Initialise((DocumentView)view); base.OnViewLoaded(view); NotifyOfPropertyChange(() => View); }
private void CheckAndCloseView() { if (SpellCheckProvider != null) { SpellCheckProvider.Disconnect(); } var disposableSiteContext = MarkpadDocument.SiteContext as IDisposable; if (disposableSiteContext != null) { disposableSiteContext.Dispose(); } }
// Spell Check private void SpellCheckSuggestions(ContextMenu contextMenu) { if (SpellCheckProvider != null) { int offset; if (_appsKeyDown || IsAlternateAppsKeyShortcut) { _appsKeyDown = false; offset = EditBox.SelectionStart; } else { var editorPosition = EditBox.GetPositionFromPoint(Mouse.GetPosition(EditBox)); if (!editorPosition.HasValue) { return; } offset = EditBox.Document.GetOffset(editorPosition.Value.Line, editorPosition.Value.Column); } var errorSegments = SpellCheckProvider.GetSpellCheckErrors(); var misspelledSegment = errorSegments.FirstOrDefault(segment => segment.StartOffset <= offset && segment.EndOffset >= offset); if (misspelledSegment == null) { return; } // check if the clicked offset is the beginning or end of line to prevent snapping to it // (like in text selection) with GetPositionFromPoint // in practice makes context menu not show when clicking on the first character of a line var currentLine = EditBox.Document.GetLineByOffset(offset); if (offset == currentLine.Offset || offset == currentLine.EndOffset) { return; } var misspelledText = EditBox.Document.GetText(misspelledSegment); var suggestions = SpellCheckProvider.GetSpellCheckSuggestions(misspelledText); foreach (var item in suggestions) { contextMenu.Items.Add(SpellSuggestMenuItem(item, misspelledSegment)); } contextMenu.Items.Add(new MenuItem { Header = "Add to Dictionary", Command = EditingCommands.IgnoreSpellingError, CommandParameter = misspelledText }); contextMenu.Items.Add(new Separator()); } }
void EditorContextMenuOpening(object sender, ContextMenuEventArgs e) { // don't show menu if we bail out with return e.Handled = true; if (SpellCheckProvider == null) { return; } // Bail out if the mouse isn't over the markdownEditor var editorPosition = Editor.GetPositionFromPoint(Mouse.GetPosition(Editor)); if (!editorPosition.HasValue) { return; } var offset = Editor.Document.GetOffset(editorPosition.Value.Line, editorPosition.Value.Column); var errorSegments = SpellCheckProvider.GetSpellCheckErrors(); var misspelledSegment = errorSegments.FirstOrDefault(segment => segment.StartOffset <= offset && segment.EndOffset >= offset); if (misspelledSegment == null) { return; } // check if the clicked offset is the beginning or end of line to prevent snapping to it (like in text selection) with GetPositionFromPoint // in practice makes context menu not show when clicking on the first character of a line var currentLine = Document.GetLineByOffset(offset); if (offset == currentLine.Offset || offset == currentLine.EndOffset) { return; } var misspelledWord = editor.Document.GetText(misspelledSegment); var contextMenuItems = new List <object>(SpellCheckProvider.GetSpellcheckSuggestions(misspelledWord)); contextMenuItems.Add(new Separator()); contextMenuItems.Add(new DelegateCommand("Add to dictionary", obj => { SpellCheckProvider.AddWordToCustomDictionary(misspelledWord); Editor.TextArea.TextView.Redraw(); })); EditorContextMenu.ItemsSource = contextMenuItems; EditorContextMenu.Tag = misspelledSegment; e.Handled = false; }
public void ToggleSpellCheck(bool enable) { if (this.SpellCheckProvider != null) { this.SpellCheckProvider.ClearSpellCheckErrorsAndInvalidateLayer(); } if (enable) { this.SpellCheckProvider = new SpellCheckProvider(this.SpellingService); this.SpellCheckProvider.Connect(this.Editor.TextArea.TextView); this.SpellCheckProvider.DoSpellCheck(); return; } if (this.SpellCheckProvider != null) { this.SpellCheckProvider.Disconnect(); this.SpellCheckProvider = null; } }
private void OnStartup(object sender, StartupEventArgs ea) { InitializeSettings(); Activated += OnActivated; var commonmarkConverter = new CommonMarkConverter(); var githubMarkdownConverter = new GitHubMarkdownConverter(); _spellingService = new SpellingService(); var spellCheckProvider = new SpellCheckProvider(_spellingService); var snippetManager = new SnippetManager(); var mainWindow = new MainWindow(commonmarkConverter, githubMarkdownConverter, spellCheckProvider, snippetManager); var windowPlacementSettings = mainWindow.GetWindowPlacementSettings(); if (windowPlacementSettings.UpgradeSettings) { windowPlacementSettings.Upgrade(); windowPlacementSettings.UpgradeSettings = false; windowPlacementSettings.Save(); } MainWindow = mainWindow; MainWindow.Show(); }
public void OpenUserDictionary() => Utility.EditFile(SpellCheckProvider.CustomDictionaryFile());