private void FastColoredTextBox1OnPasting(object sender, TextChangingEventArgs args) { LogLine("Pasting " + args.InsertingText); Console.WriteLine("Pasting " + args.InsertingText); }
private void FastColoredTextBox1OnTextChanging(object sender, TextChangingEventArgs args) { LogLine("TextChanging " + args.InsertingText); Console.WriteLine("TextChanging " + args.InsertingText); if (args.InsertingText != null && args.InsertingText.Length == 1) { char c = args.InsertingText[0]; if (c == '{') { lastCharIsOpenBracket = true; // TODO: Ignore when we are inside a string doCompletionOnEnter = false; } else if (c == '\n' && lastCharIsOpenBracket) { if (this.hasPosition && this.caretPosition == this.fastColoredTextBox1.Selection.Start) { // only do bracket completion on enter when the caret position is the same lastCharIsOpenBracket = false; // don't trigger again doCompletionOnEnter = true; } this.hasPosition = false; this.caretPosition = Place.Empty; // do stuff, but do it in the Changed /* args.InsertingText += "\n}"; lastCharIsOpenBracket = false; // don't trigger again // because we added more text the caret will be placed at the end of that, make sure we put the caret position back resetPosition = true; caretPosition = this.fastColoredTextBox1.Selection.Start; */ } else { lastCharIsOpenBracket = false; doCompletionOnEnter = false; } } }