in Sources/ArgumentParser/Usage/UsageGenerator.swift [162:213]
func makeErrorMessage() -> String? {
switch error {
case .helpRequested, .versionRequested, .completionScriptRequested, .completionScriptCustomResponse, .dumpHelpRequested:
return nil
case .unsupportedShell(let shell?):
return unsupportedShell(shell)
case .unsupportedShell:
return unsupportedAutodetectedShell
case .notImplemented:
return notImplementedMessage
case .invalidState:
return invalidState
case .unknownOption(let o, let n):
return unknownOptionMessage(origin: o, name: n)
case .missingValueForOption(let o, let n):
return missingValueForOptionMessage(origin: o, name: n)
case .unexpectedValueForOption(let o, let n, let v):
return unexpectedValueForOptionMessage(origin: o, name: n, value: v)
case .unexpectedExtraValues(let v):
return unexpectedExtraValuesMessage(values: v)
case .duplicateExclusiveValues(previous: let previous, duplicate: let duplicate, originalInput: let arguments):
return duplicateExclusiveValues(previous: previous, duplicate: duplicate, arguments: arguments)
case .noValue(forKey: let k):
return noValueMessage(key: k)
case .unableToParseValue(let o, let n, let v, forKey: let k, originalError: let e):
return unableToParseValueMessage(origin: o, name: n, value: v, key: k, error: e)
case .invalidOption(let str):
return "Invalid option: \(str)"
case .nonAlphanumericShortOption(let c):
return "Invalid option: -\(c)"
case .missingSubcommand:
return "Missing required subcommand."
case .userValidationError(let error):
switch error {
case let error as LocalizedError:
return error.errorDescription
default:
return String(describing: error)
}
case .noArguments(let error):
switch error {
case let error as ParserError:
return ErrorMessageGenerator(arguments: self.arguments, error: error).makeErrorMessage()
case let error as LocalizedError:
return error.errorDescription
default:
return String(describing: error)
}
}
}