Пример #1
0
        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();
            }
        }
Пример #2
0
        public void ChangeComplete(DocumentChangeEventArgs e)
        {
            if (_lineNumberRemoved > -1)
            {
                _bookmarkManager.AdjustLineOffsets(AdjustTypes.Deleted, _lineNumberRemoved, e.RemovalLength);
                _lineNumberRemoved = -1;
            }

            _bookmarkManager.RecalculateOffsets(_textArea, BookmarkType.Breakpoint, 1);
        }