internal static CommandRunData CreateCommandRunData( Command command, Register register, int? count = null, MotionRunData motionRunData = null) { var countOpt = count != null ? FSharpOption.Create(count.Value) : FSharpOption<int>.None; var motion = motionRunData != null ? FSharpOption.Create(motionRunData) : FSharpOption<MotionRunData>.None; return new CommandRunData( command, register, countOpt, motion); }
private CommandRunData CreateCommand( Func<FSharpOption<int>, Register, CommandResult> func = null, KeyInputSet name = null, CommandFlags? flags = null, int? count = 0, MotionRunData motionRunData = null, VisualSpan visualRunData = null) { name = name ?? KeyInputSet.NewOneKeyInput(KeyInputUtil.CharToKeyInput('c')); var flagsRaw = flags ?? CommandFlags.None; var countRaw = count.HasValue ? FSharpOption.Create(count.Value) : FSharpOption<int>.None; var funcRaw = func.ToFSharpFunc(); var cmd = Command.NewSimpleCommand( name, flagsRaw, func.ToFSharpFunc()); return new CommandRunData( cmd, new Register('c'), countRaw, motionRunData != null ? FSharpOption.Create(motionRunData) : FSharpOption<MotionRunData>.None, visualRunData != null ? FSharpOption.Create(visualRunData) : FSharpOption<VisualSpan>.None); }