private int calcLongOptionColumnWidth() { int max = 0; IOptionRenderer optionRenderer = new DefaultOptionRenderer(false, " "); for (OptionSpec option : commandSpec.options()) { Text[][] values = optionRenderer.render(option, parameterLabelRenderer(), colorScheme); int len = values[0][3].length; if (len < Help.defaultOptionsColumnWidth - 3) { max = Math.max(max, len); } } IParameterRenderer paramRenderer = new DefaultParameterRenderer(false, " "); for (PositionalParamSpec positional : commandSpec.positionalParameters()) { Text[][] values = paramRenderer.render(positional, parameterLabelRenderer(), colorScheme); int len = values[0][3].length; if (len < Help.defaultOptionsColumnWidth - 3) { max = Math.max(max, len); } } return max + 3; }
@Test public void testDefaultParameterRenderer_rendersSpacePrefixForParametersWithZeroArity() { @Command(requiredOptionMarker = '*') class Optional { @Parameters(arity = "0..1", description = "optional") String optional; } Help help = new Help(new Optional()); Help.IParameterRenderer renderer = help.createDefaultParameterRenderer(); Help.IParamLabelRenderer parameterRenderer = Help.createMinimalParamLabelRenderer(); PositionalParamSpec param = help.positionalParameters().get(0); Text[][] row1 = renderer.render(param, parameterRenderer, help.colorScheme()); assertEquals(1, row1.length); assertArrayEquals(Arrays.toString(row1[0]), textArray(help, "", "", "", "<optional>", "optional"), row1[0]); }
@Test public void testDefaultParameterRenderer_rendersSpacePrefixByDefaultForParametersWithPositiveArity() { class Required { @Parameters(description = "required") String required; } Help help = new Help(new Required()); Help.IParameterRenderer renderer = help.createDefaultParameterRenderer(); Help.IParamLabelRenderer parameterRenderer = Help.createMinimalParamLabelRenderer(); PositionalParamSpec param = help.positionalParameters().get(0); Text[][] row1 = renderer.render(param, parameterRenderer, help.colorScheme()); assertEquals(1, row1.length); assertArrayEquals(Arrays.toString(row1[0]), textArray(help, " ", "", "", "<required>", "required"), row1[0]); }
private int calcLongOptionColumnWidth() { int max = 0; IOptionRenderer optionRenderer = new DefaultOptionRenderer(false, " "); for (OptionSpec option : commandSpec.options()) { Text[][] values = optionRenderer.render(option, parameterLabelRenderer(), colorScheme); int len = values[0][3].length; if (len < Help.defaultOptionsColumnWidth - 3) { max = Math.max(max, len); } } IParameterRenderer paramRenderer = new DefaultParameterRenderer(false, " "); for (PositionalParamSpec positional : commandSpec.positionalParameters()) { Text[][] values = paramRenderer.render(positional, parameterLabelRenderer(), colorScheme); int len = values[0][3].length; if (len < Help.defaultOptionsColumnWidth - 3) { max = Math.max(max, len); } } return max + 3; }
@Test public void testDefaultParameterRenderer_rendersSpecifiedMarkerForParametersWithPositiveArity() { @Command(requiredOptionMarker = '*') class Required { @Parameters(description = "required") String required; } Help help = new Help(new Required()); Help.IParameterRenderer renderer = help.createDefaultParameterRenderer(); Help.IParamLabelRenderer parameterRenderer = Help.createMinimalParamLabelRenderer(); PositionalParamSpec param = help.positionalParameters().get(0); Text[][] row1 = renderer.render(param, parameterRenderer, help.colorScheme()); assertEquals(1, row1.length); assertArrayEquals(Arrays.toString(row1[0]), textArray(help, "*", "", "", "<required>", "required"), row1[0]); }
@Test public void testDefaultParameterRenderer_rendersSpacePrefixForParametersWithZeroArity() { @Command(requiredOptionMarker = '*') class Optional { @Parameters(arity = "0..1", description = "optional") String optional; } Help help = new Help(new Optional()); Help.IParameterRenderer renderer = help.createDefaultParameterRenderer(); Help.IParamLabelRenderer parameterRenderer = Help.createMinimalParamLabelRenderer(); PositionalParamSpec param = help.positionalParameters().get(0); Text[][] row1 = renderer.render(param, parameterRenderer, help.colorScheme()); assertEquals(1, row1.length); assertArrayEquals(Arrays.toString(row1[0]), textArray(help, "", "", "", "<optional>", "optional"), row1[0]); }
@Test public void testDefaultParameterRenderer_rendersSpacePrefixByDefaultForParametersWithPositiveArity() { class Required { @Parameters(description = "required") String required; } Help help = new Help(new Required()); Help.IParameterRenderer renderer = help.createDefaultParameterRenderer(); Help.IParamLabelRenderer parameterRenderer = Help.createMinimalParamLabelRenderer(); PositionalParamSpec param = help.positionalParameters().get(0); Text[][] row1 = renderer.render(param, parameterRenderer, help.colorScheme()); assertEquals(1, row1.length); assertArrayEquals(Arrays.toString(row1[0]), textArray(help, " ", "", "", "<required>", "required"), row1[0]); }
/** * Delegates to the {@link #parameterRenderer parameter renderer} of this layout * to obtain text values for the specified {@linkplain PositionalParamSpec positional parameter}, and then calls * {@link #layout(CommandLine.Model.ArgSpec, CommandLine.Help.Ansi.Text[][])} to write these text values into the correct cells in the TextTable. * @param param the positional parameter * @param paramLabelRenderer knows how to render option parameters * @since 3.0 */ public void addPositionalParameter(PositionalParamSpec param, IParamLabelRenderer paramLabelRenderer) { Text[][] values = parameterRenderer.render(param, paramLabelRenderer, colorScheme); layout(param, values); } /** Returns the section of the usage help message accumulated in the TextTable owned by this layout. */
@Test public void testDefaultParameterRenderer_rendersSpecifiedMarkerForParametersWithPositiveArity() { @Command(requiredOptionMarker = '*') class Required { @Parameters(description = "required") String required; } Help help = new Help(new Required()); Help.IParameterRenderer renderer = help.createDefaultParameterRenderer(); Help.IParamLabelRenderer parameterRenderer = Help.createMinimalParamLabelRenderer(); PositionalParamSpec param = help.positionalParameters().get(0); Text[][] row1 = renderer.render(param, parameterRenderer, help.colorScheme()); assertEquals(1, row1.length); assertArrayEquals(Arrays.toString(row1[0]), textArray(help, "*", "", "", "<required>", "required"), row1[0]); }
/** * Delegates to the {@link #parameterRenderer parameter renderer} of this layout * to obtain text values for the specified {@linkplain PositionalParamSpec positional parameter}, and then calls * {@link #layout(CommandLine.Model.ArgSpec, CommandLine.Help.Ansi.Text[][])} to write these text values into the correct cells in the TextTable. * @param param the positional parameter * @param paramLabelRenderer knows how to render option parameters * @since 3.0 */ public void addPositionalParameter(PositionalParamSpec param, IParamLabelRenderer paramLabelRenderer) { Text[][] values = parameterRenderer.render(param, paramLabelRenderer, colorScheme); layout(param, values); } /** Returns the section of the usage help message accumulated in the TextTable owned by this layout. */