private void OnTextEntered(object sender, TextCompositionEventArgs e) { var ch = e.Text[0]; // Set last key stroke _codeViewModel.LastKeyStroke = DateTime.Now; // Notify our language context that the document is dirty and needs a reparsing _languageContext.IsDirty = true; // Update any parse errors to account for the new text inserted var caretOffset = _textArea.Caret.Offset; var lineText = _textArea.Document.GetText(_textArea.Document.GetLineByOffset(caretOffset)); Task.Run(() => { _bookmarkManager.RecalculateOffsets(_textArea, BookmarkType.ParseError, caretOffset, e.Text.Length); _bookmarkManager.RecalculateOffsets(_textArea, BookmarkType.AnalyzerInfo, caretOffset, e.Text.Length); _bookmarkManager.RecalculateOffsets(_textArea, BookmarkType.AnalyzerWarning, caretOffset, e.Text.Length); }); //if ((IsCodeCompletionTrigger(ch) || char.IsLetter(ch)) && _completionWindow == null) if (_completionWindow == null && (IsCodeCompletionTrigger(ch) || string.IsNullOrEmpty(lineText.Trim())))// || IsCompletionPosition(caretOffset)) { TriggerCompletion(); } }
public void ChangeComplete(DocumentChangeEventArgs e) { if (_lineNumberRemoved > -1) { _bookmarkManager.AdjustLineOffsets(AdjustTypes.Deleted, _lineNumberRemoved, e.RemovalLength); _lineNumberRemoved = -1; } _bookmarkManager.RecalculateOffsets(_textArea, BookmarkType.Breakpoint, 1); }