using System.Reactive.Linq; using System; using ICSharpCode.AvalonEdit.Editing; using System.Windows.Input; using ICSharpCode.AvalonEdit; namespace ScriptPad.Editor { static class CodeEditorReactiveExtensions { public static IObservable GetTextEnterings(this TextArea textArea) { return Observable.FromEventPattern(textArea, nameof(textArea.TextEntering)) .Select(p => p.EventArgs); } public static IObservable GetTextEntereds(this TextArea textArea) { return Observable.FromEventPattern(textArea, nameof(textArea.TextEntered)) .Select(p => p.EventArgs); } public static IObservable GetTextChangeds(this TextEditor editor) { return Observable.FromEventPattern(editor, nameof(editor.TextChanged)) .Select(p => p.EventArgs); } } }