private void tmrCheckCompletion_Tick(object sender, EventArgs e) { if (Options.TimeGoal != null) { _status = _startTime.Add(Options.TimeGoal.Value).Subtract(DateTime.Now).TotalMinutes.ToString("N0") + " minutes left"; if (DateTime.Now > _startTime.Add(Options.TimeGoal.Value)) { tmrCheckCompletion.Stop(); GoalFinished(); } } if (Options.WordGoal != null) { var wordCount = CompletionUtils.GetWordCount(textBox.Text, Options.ExcludeGibberish); _status = $"{Options.WordGoal - wordCount} words left"; if (wordCount >= Options.WordGoal) { tmrCheckCompletion.Stop(); GoalFinished(); } } }
public void TriggerCompletion() { var caretPosition = -1; var lineTextUpToCaret = string.Empty; var script = string.Empty; Execute.OnUIThread(() => { caretPosition = _textArea.Caret.Offset; // Get the text from the line which the caret is placed var line = _textArea.Document.GetLineByOffset(caretPosition); lineTextUpToCaret = _textArea.Document.GetText(line); script = _textArea.Document.Text; }); if (CompletionUtils.IsInCommentArea(caretPosition, _textArea) || CompletionUtils.IsInStringArea(caretPosition, _textArea)) { Logger.DebugFormat("Is in comment area, skip."); return; } var completionWord = GetWordNextToCaret(lineTextUpToCaret, lineTextUpToCaret.Length - 1); /*var token = default(Token); * if ((token = IsPreviousTokenCommand(caretPosition)) != null) * { * // ReSharper disable once AssignmentInConditionalExpression * if (_completionProvider.IsRunbook(token)) * { * // We need to retrieve completion for runbook parameters * Task.Factory.StartNew(() => * { * Interlocked.Increment(ref _triggerTag); * * _completionProvider.GetParameterCompletionData(token, completionWord, _triggerTag); * }); * * return; * } * }*/ //var runbookToken = IsPreviousTokenCommand(caretPosition); var runbookToken = GetCommandFromCaretPosition(caretPosition); if (runbookToken != null && !_completionProvider.IsRunbook(runbookToken)) { runbookToken = null; } Task.Factory.StartNew(() => { Interlocked.Increment(ref _triggerTag); _completionProvider.GetCompletionData(completionWord, script, lineTextUpToCaret, null, runbookToken, caretPosition, null, _triggerTag); }); }
public void Initialize(ExtendedRichTextBox textBox, Func <string> getStatus) { _textBox = textBox; _getStatus = getStatus; _textBox.TextChanged += (sender, e) => { lblWordCount.Text = $"Words: {CompletionUtils.GetWordCount(_textBox.Text, false)}"; }; }