Skip to content

Commit cd7446f

Browse files
committed
Nonexclusive flags implemented via an array of enum cases are now separate ArgumentInfoV0 instances, instead of different names for the same ArgumentInfoV0.
Signed-off-by: Ross Goldberg <[email protected]>
1 parent 4242db2 commit cd7446f

File tree

2 files changed

+3
-37
lines changed

2 files changed

+3
-37
lines changed

Sources/ArgumentParser/Usage/DumpHelpGenerator.swift

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -52,41 +52,6 @@ extension BidirectionalCollection where Element == ParsableCommand.Type {
5252
}
5353
}
5454

55-
extension ArgumentSet {
56-
fileprivate func mergingCompositeArguments() -> ArgumentSet {
57-
var arguments = ArgumentSet()
58-
var slice = self[...]
59-
while var argument = slice.popFirst() {
60-
if argument.help.isComposite {
61-
// If this argument is composite, we have a group of arguments to
62-
// merge together.
63-
let groupEnd =
64-
slice
65-
.firstIndex { $0.help.keys != argument.help.keys }
66-
?? slice.endIndex
67-
let group = [argument] + slice[..<groupEnd]
68-
slice = slice[groupEnd...]
69-
70-
switch argument.kind {
71-
case .named:
72-
argument.kind = .named(group.flatMap(\.names))
73-
case .positional, .default:
74-
break
75-
}
76-
77-
argument.help.valueName =
78-
group.map(\.valueName).first { !$0.isEmpty } ?? ""
79-
argument.help.defaultValue = group.compactMap(\.help.defaultValue).first
80-
argument.help.abstract =
81-
group.map(\.help.abstract).first { !$0.isEmpty } ?? ""
82-
argument.help.discussion = group.compactMap(\.help.discussion).first
83-
}
84-
arguments.append(argument)
85-
}
86-
return arguments
87-
}
88-
}
89-
9055
extension ToolInfoV0 {
9156
init(commandStack: [ParsableCommand.Type]) {
9257
self.init(command: CommandInfoV0(commandStack: commandStack))
@@ -123,7 +88,6 @@ extension CommandInfoV0 {
12388
let arguments =
12489
commandStack
12590
.allArguments()
126-
.mergingCompositeArguments()
12791
.compactMap(ArgumentInfoV0.init)
12892

12993
self = CommandInfoV0(

Tests/ArgumentParserUnitTests/Snapshots/testBase_Fish().fish

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ complete -c 'base-test' -n '__base-test_should_offer_completions_for "base-test"
7474
complete -c 'base-test' -n '__base-test_should_offer_completions_for "base-test"' -l path1 -rF
7575
complete -c 'base-test' -n '__base-test_should_offer_completions_for "base-test"' -l path2 -rF
7676
complete -c 'base-test' -n '__base-test_should_offer_completions_for "base-test"' -l path3 -rfka 'c1_fish c2_fish c3_fish'
77-
complete -c 'base-test' -n '__base-test_should_offer_completions_for "base-test"' -l one -l two -l three
77+
complete -c 'base-test' -n '__base-test_should_offer_completions_for "base-test"' -l one
78+
complete -c 'base-test' -n '__base-test_should_offer_completions_for "base-test"' -l two
79+
complete -c 'base-test' -n '__base-test_should_offer_completions_for "base-test"' -l three
7880
complete -c 'base-test' -n '__base-test_should_offer_completions_for "base-test"' -l kind-counter
7981
complete -c 'base-test' -n '__base-test_should_offer_completions_for "base-test"' -l rep1 -rfka ''
8082
complete -c 'base-test' -n '__base-test_should_offer_completions_for "base-test"' -s r -l rep2 -rfka ''

0 commit comments

Comments
 (0)