Skip to content

Commit 762917e

Browse files
committed
Add MordantHelpFormatter.renderAttachedOptionValue
1 parent a28953a commit 762917e

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
# Changelog
2+
## Unreleased
3+
### Added
4+
- Added `MordantHelpFormatter.renderAttachedOptionValue` that you can override to change how option values are shown, e.g. if you want option to show as `--option <value>` instead of `--option=<value>`. ([#416](https://github.com/ajalt/clikt/issues/416))
5+
26
## 4.0.0
37
### Added
48
- Added `Context.errorEncountered` which is true if parsing has continued after an error was encountered.

clikt/src/commonMain/kotlin/com/github/ajalt/clikt/output/MordantHelpFormatter.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,18 +312,20 @@ open class MordantHelpFormatter(
312312

313313
protected open fun renderOptionalMetavar(metavar: String): String = "[$metavar]"
314314
protected open fun renderRepeatedMetavar(metavar: String): String = "$metavar..."
315+
protected open fun renderAttachedOptionValue(metavar: String) = "=$metavar"
315316

316317
protected open fun renderOptionValue(option: ParameterHelp.Option): String {
317318
if (option.metavar == null) return ""
318319
var metavar = option.metavar.trim { it in "[]<>" }
319320
if ('|' !in metavar) metavar = normalizeParameter(metavar)
320321
metavar = styleMetavar(metavar)
321322
if (option.nvalues.last > 1) metavar = renderRepeatedMetavar(metavar)
322-
metavar = "=$metavar"
323+
metavar = renderAttachedOptionValue(metavar)
323324
if (option.nvalues.first == 0) metavar = renderOptionalMetavar(metavar)
324325
return metavar
325326
}
326327

328+
327329
protected open fun renderDefinitionTerm(row: DefinitionRow): Widget {
328330
val termPrefix = when {
329331
row.marker.isNullOrEmpty() -> " "

samples/helpformat/src/main/kotlin/com/github/ajalt/clikt/samples/helpformat/main.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ class PanelHelpFormatter(context: Context) : MordantHelpFormatter(context) {
3131
// Print metavars like INT instead of <int>
3232
override fun normalizeParameter(name: String): String = name.uppercase()
3333

34+
// Print option values like `--option VALUE instead of `--option=VALUE`
35+
override fun renderAttachedOptionValue(metavar: String): String = " $metavar"
36+
3437
// Put each parameter section in its own panel
3538
override fun renderParameters(
3639
parameters: List<HelpFormatter.ParameterHelp>,

0 commit comments

Comments
 (0)