Haskell,optparse-generic 中未标记命令行参数的文档
Haskell, documentation for unlabeled command line arguments in optparse-generic
我正在使用 optparse-generic 来解析名为 example
的程序的命令行参数。我有一个带有未命名字段的数据类型。例如:
data Unlabeled = Unlabeled String deriving (Generic, Show)
这将生成一个可以按如下方式调用的程序:./exmaple "foo"
。但是,对于用户而言,没有关于 String
参数的文档。特别是,./example --help
没有提供关于 String
参数 ./example
期望的任何有价值的信息。
使用命名数据类型(记录语法),可以向数据类型添加文档。例如
data Labeled = Labeled {name :: String <?> "Select the foo"} deriving (Generic, Show)
这会生成程序的帮助文本。比如调用./example --help
,就会显示--name STRING Select the foo
.
如何以与记录语法数据类型相同的方式向未命名数据类型添加文档?
数据Labeled = Labeled (String <?> "Select the foo")
会给你
...
STRING Select the foo
...
在 --help
消息中。也许需要澄清的是, <?>
只是一个类型构造函数,它在语法上只是一个运算符。也许有趣的事实:你也可以写 data X = X (Int `Either` Bool)
。
我正在使用 optparse-generic 来解析名为 example
的程序的命令行参数。我有一个带有未命名字段的数据类型。例如:
data Unlabeled = Unlabeled String deriving (Generic, Show)
这将生成一个可以按如下方式调用的程序:./exmaple "foo"
。但是,对于用户而言,没有关于 String
参数的文档。特别是,./example --help
没有提供关于 String
参数 ./example
期望的任何有价值的信息。
使用命名数据类型(记录语法),可以向数据类型添加文档。例如
data Labeled = Labeled {name :: String <?> "Select the foo"} deriving (Generic, Show)
这会生成程序的帮助文本。比如调用./example --help
,就会显示--name STRING Select the foo
.
如何以与记录语法数据类型相同的方式向未命名数据类型添加文档?
数据Labeled = Labeled (String <?> "Select the foo")
会给你
...
STRING Select the foo
...
在 --help
消息中。也许需要澄清的是, <?>
只是一个类型构造函数,它在语法上只是一个运算符。也许有趣的事实:你也可以写 data X = X (Int `Either` Bool)
。