commandlineparser / commandlineparser/commandline

Announcing CommandLineParser v2.9.0-preview1

未关闭
#670 2 条评论 4 个 reaction 已指派 0 人 在 GitHub 查看
announcement
主要语言
C#
星标
4.8k
派生
478
PR 合并指标
30 天内没有已合并 PR

描述

CommandLineParser `v2.9.0-preview1` is releases Today (july 24, 2020) with new features.
The package can be downloaded from:

C#: https://www.nuget.org/packages/CommandLineParser/2.9.0-preview1
F#: https://www.nuget.org/packages/CommandLineParser.Fsharp/2.9.0-preview1

What is new in that version, read [Changelog](https://github.com/commandlineparser/commandline/blob/develop/CHANGELOG.md#290-preview1---2020-7-24)

The new features:
- Multi-instance option support.
option can be repeated as:
```$ myprog -t value1 -t value2 -t value3```
Configure Parser as:
```cs
var parser= new Parser(with =>{
with.AllowMultiInstance =true;
});
```
- Move Errors and Value up to the abstract class definition.
you can extract Options object or Parser Errors from ResultSet:
```cs
var result = parser.ParseArguments(args);
//extract Options object and errors
Options options= result.Value;
var Errors = result.Errors;
```
- Add support for flags enums.
see [wiki](https://github.com/commandlineparser/commandline/wiki/Enum-Flags)
- Implement verb aliases.
```cs
[Verb("copy", aliases: new string[] { "cp", "cpy" }, HelpText = "Copy some stuff")]
public class CopyVerb
{
//....
}
```
You can use verb alias:
```
$ myprg copy -f file.txt
$ myprg cp -f file.txt # use alias
$ myprg cpy -f file.txt # use alias
```
- New Unparsing Extension method is added: `FormatCommandLineArgs` to return array of strings.
see [wiki](https://github.com/commandlineparser/commandline/wiki/Unparsing#unparsing-to-array-of-strings)
- New string extension method `SplitArgs` to split commandline string with handling double quote with/o keeping the double quote and ignoring the extra spaces in the string.
```cs
var myargs="-a xyz --name \"path to file\" -b 123";
string[] args =myargs.SplitArgs(); //return {"-a","xyz","--name","path to file", "-b", "123"}
string[] args =myargs.SplitArgs(true); //keep quote and return {"-a","xyz","--name","\"path to file\"", "-b", "123"}
```
- Allow single dash as a value, now it's allowed: `-a - --filename -` .

贡献指南

这个仓库没有索引到贡献指南

调研方向

从 CHANGELOG.md 中的 2.9.0-preview1 条目以及链接的 Enum Flags 和 unparsing wiki 页面开始。Issue 列出了此版本的功能,但没有指出尚待完成的更改,也没有给出可测试的完成定义。

由索引模型根据 Issue 内容生成。

评估

技术栈
csharp, fsharp
领域
documentation, release
Issue 类型
文档
难度
1/5
预计耗时
1 小时以内
活跃度
停滞
描述清晰度
需要澄清
新手友好度
20/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。