/// <summary> /// Sets the parameter usage for a method parameter. /// </summary> /// <param name="parameterIndex">first parameter has index 1</param> public static void SetMethodParameterUsage(this ASTContext context, string className, string methodName, int parameterCount, int parameterIndex, ParameterUsage usage) { if (parameterIndex <= 0) { throw new ArgumentException("parameterIndex"); } var @class = context.FindCompleteClass(className); Method method; if (parameterCount >= 0) { method = @class.Methods.Find(m => m.Name == methodName && m.Parameters.Count == parameterCount); } else { method = @class.Methods.Find(m => m.Name == methodName); } if (method == null) { throw new ArgumentException("methodName"); } if (method.Parameters.Count < parameterIndex) { throw new ArgumentException("parameterIndex"); } method.Parameters[parameterIndex - 1].Usage = usage; }
private static string GetParameterUsage(ParameterUsage usage) { switch (usage) { case ParameterUsage.Out: return("out "); case ParameterUsage.InOut: return("ref "); default: return(string.Empty); } }
/// <summary> /// Sets the parameter usage for a function parameter. /// </summary> /// <param name="parameterIndex">first parameter has index 1</param> public static void SetFunctionParameterUsage(this ASTContext context, string functionName, int parameterIndex, ParameterUsage usage) { if (parameterIndex <= 0) throw new ArgumentException("parameterIndex"); foreach (var function in context.FindFunction(functionName)) { if (function.Parameters.Count < parameterIndex) throw new ArgumentException("parameterIndex"); function.Parameters[parameterIndex - 1].Usage = usage; } }
public void Generate_The_Correct_Prefix_For_BooleanSwitches() { // arrange var mock = new Mock <IInlineSequence>(); mock.SetupAllProperties(); var builder = DefaultBuilder.CreateDefaultBuilder(); var parameter = new BooleanSwitch(builder.Context.ParserRepository.Get("util"), 'v', "value", o => { }); parameter.Help.ValueAlias = "val"; var vm = new ParameterViewModel(parameter, Theme.Default); var usage = new ParameterUsage { ViewModel = vm }; // act // assert usage.GenerateValueAlias(parameter).Should().Be(""); }
public void Generate_The_Correct_Output_For_A_Single_Value_Switch() { // arrange var mock = new Mock <IInlineSequence>(); mock.SetupAllProperties(); var builder = DefaultBuilder.CreateDefaultBuilder(); var parameter = new SingleValueSwitch(builder.Context.ParserRepository.Get("util"), 'v', "value", (o, s) => { }); var vm = new ParameterViewModel(parameter, Theme.Default); var usage = new ParameterUsage { ViewModel = vm }; // act usage.GenerateSequence(mock.Object); // assert usage.StringBuilder.ToString().Should().Be("[-v, --value v]"); }
public void Generate_The_Correct_Prefix_For_Positionals() { // arrange var mock = new Mock <IInlineSequence>(); mock.SetupAllProperties(); var builder = DefaultBuilder.CreateDefaultBuilder(); var parameter = new Positional(builder.Context.ParserRepository.Get("util"), (o, strings) => { }, 1, 1); parameter.Help.ValueAlias = "val"; var vm = new ParameterViewModel(parameter, Theme.Default); var usage = new ParameterUsage { ViewModel = vm }; // act usage.GenerateSequence(mock.Object); // assert usage.StringBuilder.ToString().Should().Be("[val]"); }
public void Generate_The_Correct_Output_For_A_Separated_Switch_With_No_Word() { // arrange var mock = new Mock <IInlineSequence>(); mock.SetupAllProperties(); var builder = DefaultBuilder.CreateDefaultBuilder(); var parameter = new SeparatedSwitch(builder.Context.ParserRepository.Get("util"), 'v', null, (o, s) => { }); parameter.Help.ValueAlias = "val"; var vm = new ParameterViewModel(parameter, Theme.Default); var usage = new ParameterUsage { ViewModel = vm }; // act usage.GenerateSequence(mock.Object); // assert usage.StringBuilder.ToString().Should().Be("[-v:val]"); }
public void Generate_The_Correct_Prefix_For_Switches() { // arrange var mock = new Mock <IInlineSequence>(); mock.SetupAllProperties(); var builder = DefaultBuilder.CreateDefaultBuilder(); var parameter = new ValuesSwitch(builder.Context.ParserRepository.Get("util"), 'v', "value", (o, strings) => { }, 1, 3); parameter.Help.ValueAlias = "val"; var vm = new ParameterViewModel(parameter, Theme.Default); var usage = new ParameterUsage { ViewModel = vm }; // act usage.GenerateSequence(mock.Object); // assert usage.GeneratedText.Should().Be("[-v, --value val1..val3]"); }
/// <summary> /// Sets the parameter usage for a method parameter. /// </summary> /// <param name="parameterIndex">first parameter has index 1</param> public static void SetMethodParameterUsage(this ASTContext context, string className, string methodName, int parameterIndex, ParameterUsage usage) { if (parameterIndex <= 0 ) throw new ArgumentException("parameterIndex"); var @class = context.FindCompleteClass(className); var method = @class.Methods.Find(m => m.Name == methodName); if (method == null) throw new ArgumentException("methodName"); if (method.Parameters.Count < parameterIndex) throw new ArgumentException("parameterIndex"); method.Parameters[parameterIndex - 1].Usage = usage; }
/// <summary> /// Sets the parameter usage for a method parameter. /// </summary> /// <param name="parameterIndex">first parameter has index 1</param> public static void SetMethodParameterUsage(this ASTContext context, string className, string methodName, int parameterIndex, ParameterUsage usage) { SetMethodParameterUsage(context, className, methodName, -1, parameterIndex, usage); }
/// <summary> /// Sets the parameter usage for a method parameter. /// </summary> /// <param name="parameterIndex">first parameter has index 1</param> public static void SetMethodParameterUsage(this ASTContext context, string className, string methodName, int parameterIndex, ParameterUsage usage) { if (parameterIndex <= 0) { throw new ArgumentException("parameterIndex"); } foreach (var @class in context.FindClass(className)) { var method = @class.Methods.Find(m => m.Name == methodName); if (method == null) { throw new ArgumentException("methodName"); } if (method.Parameters.Count < parameterIndex) { throw new ArgumentException("parameterIndex"); } method.Parameters[parameterIndex - 1].Usage = usage; } }
public PackedInteger_10_6 this[ParameterUsage usage] { get { return(Values[(int)usage]); } set { Values[(int)usage] = value; } }